diff options
author | WlodekM <[email protected]> | 2024-09-14 22:09:57 +0300 |
---|---|---|
committer | WlodekM <[email protected]> | 2024-09-14 22:09:57 +0300 |
commit | 43c5346643380756560ef7ba8c4c4d0c44c871fe (patch) | |
tree | b844de06a069dc67b6255064c7897a1d51bc0027 /jsondata.js | |
parent | 496fdda80d4f82ddb2e233b0f0b504826d7a0f0a (diff) |
wip index.js rewrite 2: electric boogaloo
Diffstat (limited to 'jsondata.js')
-rw-r--r-- | jsondata.js | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/jsondata.js b/jsondata.js new file mode 100644 index 0000000..ff1457a --- /dev/null +++ b/jsondata.js @@ -0,0 +1,64 @@ +export default function handleMessage(rawData, user) { + if (rawData.toString().startsWith(":jsonGet")) { + let params = String(rawData).split(" "); + params.shift(); + switch (params[0]) { + case "channels": + socket.send(":json.channels>" + JSON.stringify(this.channels)); + break; + case "users": + socket.send( + ":json.users>" + + JSON.stringify( + Object.values(this.users).map((usr) => { + return { + username: usr.username, + nickname: usr.nickname, + t: usr.t, + channel: user.channel, + displayName: user.name(), + }; + }) + ) + ); + break; + case "usersLocal": + socket.send( + JSON.stringify( + Object.values(this.users) + .filter((usr) => usr.channel == user.channel) + .map((usr) => { + return { + username: usr.username, + nickname: usr.nickname, + t: usr.t, + channel: user.channel, + displayName: user.name(), + }; + }) + ) + ); + break; + + default: + socket.send(`unknown "${params[0]}"`); + break; + } + return true; + } + if (rawData.toString().startsWith(":jsonSubscribe")) { + let params = String(rawData).split(" "); + params.shift(); + switch (params[0]) { + case "users": + user.subscribedToUsers = true; + break; + + default: + socket.send(`unknown "${params[0]}"`); + break; + } + return true; + } + return false +} \ No newline at end of file |