diff 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
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/lib/Online.luan	Sat Mar 08 20:26:19 2025 -0700
@@ -0,0 +1,29 @@
+local Luan = require "luan:Luan.luan"
+local error = Luan.error
+local ipairs = Luan.ipairs or error()
+local to_string = Luan.to_string or error()
+local Time = require "luan:Time.luan"
+local time_now = Time.now or error()
+local Thread = require "luan:Thread.luan"
+local User = require "site:/lib/User.luan"
+
+
+local Online = {}
+
+local glob = Thread.global_map("online")
+
+function Online.set(user)
+	glob[user.id] = time_now()
+end
+
+function Online.get(user)
+	local online = {}
+	local ids = user.chatting_with_ids()
+	ids[#ids+1] = user.id
+	for _, user_id in ipairs(ids) do
+		online[to_string(user_id)] = glob[user_id]
+	end
+	return online
+end
+
+return Online