Mercurial Hosting > chat
comparison src/heartbeat.js.luan @ 30:f4708943f29e
add heartbeat
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Sat, 09 Nov 2024 19:17:21 -0700 |
parents | |
children | e2b7f6393dab |
comparison
equal
deleted
inserted
replaced
29:5beadcd541aa | 30:f4708943f29e |
---|---|
1 local Luan = require "luan:Luan.luan" | |
2 local error = Luan.error | |
3 local String = require "luan:String.luan" | |
4 local to_number = String.to_number or error() | |
5 local Time = require "luan:Time.luan" | |
6 local time_now = Time.now or error() | |
7 local Io = require "luan:Io.luan" | |
8 local Http = require "luan:http/Http.luan" | |
9 local User = require "site:/lib/User.luan" | |
10 local current_user = User.current or error() | |
11 local Logging = require "luan:logging/Logging.luan" | |
12 local logger = Logging.logger "heartbeat.js" | |
13 | |
14 | |
15 return function() | |
16 local last_update = Http.request.parameters.last_update or error() | |
17 last_update = to_number(last_update) or error() | |
18 local user = current_user() or error() | |
19 local user_last_update = user.last_update() | |
20 local now = time_now() | |
21 if now - user_last_update < 10000 or last_update >= user_last_update then | |
22 logger.info "ok" | |
23 return | |
24 end | |
25 logger.info "update" | |
26 Io.stdout = Http.response.text_writer() | |
27 %> | |
28 resync(<%=user_last_update%>); | |
29 <% | |
30 end |