irc: Add rename function to NICK command (and cleanup a bit)
patch d5ab5ead428630cada7cd85c04d2a91afdd00c28
Author: E. Bosch <presidev@AT@gmail.com>
Date: Tue Feb 9 00:04:54 CET 2021
* irc: Add rename function to NICK command (and cleanup a bit)
add reply_command() for covering all replies to commands
hunk ./irc.py 20
+SRV = None
hunk ./irc.py 128
+ ni = nick.lower()
hunk ./irc.py 130
- await self.reply_code(user, 'ERR_ERRONEUSNICKNAME', (nick,), '*')
- elif nick.lower() in self.users.keys():
+ await self.reply_code(user, 'ERR_ERRONEUSNICKNAME', (nick,), '*')
+ elif ni in self.users.keys():
hunk ./irc.py 134
+ if user.registered:
+ # rename
+ for usr in [x for x in self.users.values() if x.stream]:
+ await self.reply_command(usr, user, 'NICK', (nick,))
+ del self.users[user.irc_nick.lower()]
hunk ./irc.py 140
- self.users[nick.lower()] = user
-
- if user.irc_nick in self.iid_to_tid:
- tid = self.iid_to_tid[user.irc_nick]
- self.tg.tid_to_iid[tid] = nick
- self.iid_to_tid[nick] = tid
-
+ self.users[ni] = user
hunk ./irc.py 229
+ async def reply_command(self, user, prfx, comm, params):
+ if prfx == SRV:
+ prefix = self.hostname
+ else:
+ prefix = prfx.get_irc_mask()
+ p = len(params)
+ if p == 1:
+ fstri = ':{} {} {}'
+ else:
+ fstri = ':{} {}' + ((p - 1) * ' {}') + ' :{}'
+ await self.send_irc_command(user, fstri.format(prefix, comm, *params))
+