Mercurial Hosting > chat
comparison src/lib/Online.luan @ 73:a63faf49e1d7
last seen
| author | Franklin Schmidt <fschmidt@gmail.com> |
|---|---|
| date | Sat, 08 Mar 2025 20:26:19 -0700 |
| parents | |
| children | 7b339b1ccd11 |
comparison
equal
deleted
inserted
replaced
| 72:bce0480721c1 | 73:a63faf49e1d7 |
|---|---|
| 1 local Luan = require "luan:Luan.luan" | |
| 2 local error = Luan.error | |
| 3 local ipairs = Luan.ipairs or error() | |
| 4 local to_string = Luan.to_string or error() | |
| 5 local Time = require "luan:Time.luan" | |
| 6 local time_now = Time.now or error() | |
| 7 local Thread = require "luan:Thread.luan" | |
| 8 local User = require "site:/lib/User.luan" | |
| 9 | |
| 10 | |
| 11 local Online = {} | |
| 12 | |
| 13 local glob = Thread.global_map("online") | |
| 14 | |
| 15 function Online.set(user) | |
| 16 glob[user.id] = time_now() | |
| 17 end | |
| 18 | |
| 19 function Online.get(user) | |
| 20 local online = {} | |
| 21 local ids = user.chatting_with_ids() | |
| 22 ids[#ids+1] = user.id | |
| 23 for _, user_id in ipairs(ids) do | |
| 24 online[to_string(user_id)] = glob[user_id] | |
| 25 end | |
| 26 return online | |
| 27 end | |
| 28 | |
| 29 return Online |
