From 05405fa1d657d13f7b158b2726fac206d2eb5abd Mon Sep 17 00:00:00 2001 From: echicken <echicken@bbs.electronicchicken.com> Date: Wed, 14 Apr 2021 04:43:40 +0000 Subject: [PATCH] Changed the format of some messages. --- exec/presence-service.js | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/exec/presence-service.js b/exec/presence-service.js index cda2d69d12..838c02ff6e 100644 --- a/exec/presence-service.js +++ b/exec/presence-service.js @@ -108,33 +108,30 @@ function scanLocal() { if (current[u] === undefined || current[u].sessions[s] === undefined) { delete sessions.local.users[u].sessions[s]; broadcast('logoff', { - system: 'local', user: u, session: s, }); } else { - const updates = {}; + var update = false; if (current[u].xtrn !== sessions.local.users[u].xtrn) { sessions.local.users[u].xtrn = current[u].xtrn; - updates.xtrn = sessions.local.users[u].xtrn; + update = true; } if (current[u].sessions[s].action !== sessions.local.users[u].sessions[s].action) { sessions.local.users[u].sessions[s].action = current[u].sessions[s].action; - updates.sessions = {}; - updates.sessions[s] = { action: sessions.local.users[u].sessions[s].action }; + update = true; } - if (Object.keys(updates).length > 0) { + if (update) { broadcast('update', { - system: 'local', - user: u, - data: updates, + user: sessions.local.users[u], + session: s, }); } delete current[u].sessions[s]; } } if (Object.keys(sessions.local.users[u].sessions).length < 1) delete sessions.local.users[u]; - if (Object.keys(current[u].sessions).length < 1) delete current[u]; + if (current[u] !== undefined && current[u].sessions !== undefined && Object.keys(current[u].sessions).length < 1) delete current[u]; } for (var u in current) { @@ -142,10 +139,8 @@ function scanLocal() { for (var s in current[u].sessions) { sessions.local.users[u].sessions[s] = current[u].sessions[s]; broadcast('logon', { - system: 'local', - user: u, + user: sessions.local.users[u], session: s, - data: sessions.local.users[u], }); } } @@ -168,6 +163,10 @@ function onRemoteLogon(usr, sys) { name: sys.name, users: {} }; + broadcast('system', { + host: sys.host, + name: sys.name + }); } sys.users.forEach(function (e) { @@ -186,17 +185,17 @@ function onRemoteLogon(usr, sys) { sessions.remote[sys.host].users[e.name].sessions[skey] = { action: e.action }; broadcast('logon', { system: sys.name, - user: e.name, + host: sys.host, + user: sessions.remote[sys.host].users[e.name], session: skey, - data: sessions.remote[sys.host].users[e.name], }); } else if (sessions.remote[sys.host].users[e.name].sessions[skey].action !== e.action) { sessions.remote[sys.host].users[e.name].sessions[skey].action = e.action; broadcast('update', { system: sys.name, - user: e.name, + host: sys.host, + user: sessions.remote[sys.host].users[e.name], session: skey, - data: sessions.remote[sys.host].users[e.name], }); } }); @@ -213,6 +212,7 @@ function onRemoteLogoff(usr, sys) { if (!Object.keys(sessions.remote[sys.host].users[usr.name].sessions).length) delete sessions.remote[sys.host].users[usr.name]; broadcast('logoff', { system: sys.name, + host: sys.host, user: usr.name, session: skey, }); @@ -250,7 +250,7 @@ function onClient() { if (idle()) refresh(true); }); sock.once('write', function () { - this.sendline(JSON.stringify(sessions)); + this.sendline(JSON.stringify({ event: 'state', data: sessions })); }); } -- GitLab