Do not repeat JOIN when already in the channel, +1 other

Automatically run WHO on JOIN
This commit is contained in:
Nova Cat 2024-12-08 22:28:45 -08:00
parent d09649a93d
commit 8c1aee5be6

View file

@ -77,6 +77,10 @@ def session(connection, client):
if text.split(" ")[0].upper() == "JOIN":
channel = text.split(" ")[1]
success = True
if channel in channels_list:
if pending in channels_list[channel]:
success=False
print(f"{pending} is already in {channel} , ignoring JOIN request.")
if success:
try:
if channel in channels_list:
@ -91,6 +95,12 @@ def session(connection, client):
nickname_list[i].sendall(bytes(f":{pending}!~{username}@{client[0]} JOIN {channel}\r\n","UTF-8"))
except:
pass
# Code re-used in the WHO command
if channel in channels_list:
if pending in channels_list[channel]:
users = " ".join(channels_list[channel])
connection.sendall(bytes(f":{server} 353 {pending} = {channel} :{users}\r\n","UTF-8"))
connection.sendall(bytes(f":{server} 366 {pending} {channel} :End of /NAMES list.\r\n","UTF-8"))
elif text.split(" ")[0].upper() == "PART":
channel = text.split(" ")[1]
for i in channels_list[channel]: