def _record_who(bot, channel, user, host, nick, account=None, away=None, modes=None): nick = Identifier(nick) channel = Identifier(channel) if nick not in bot.users: usr = User(nick, user, host) bot.users[nick] = usr else: usr = bot.users[nick] # check for & fill in sparse User added by handle_names() if usr.host is None and host: usr.host = host if usr.user is None and user: usr.user = user if account == '0': usr.account = None else: usr.account = account usr.away = away priv = 0 if modes: mapping = {'+': sopel.module.VOICE, '%': sopel.module.HALFOP, '@': sopel.module.OP, '&': sopel.module.ADMIN, '~': sopel.module.OWNER} for c in modes: priv = priv | mapping[c] if channel not in bot.channels: bot.channels[channel] = Channel(channel) bot.channels[channel].add_user(usr, privs=priv) if channel not in bot.privileges: bot.privileges[channel] = dict() bot.privileges[channel][nick] = priv
def track_join(bot, trigger): if trigger.nick == bot.nick and trigger.sender not in bot.channels: bot.privileges[trigger.sender] = dict() bot.channels[trigger.sender] = Channel(trigger.sender) _send_who(bot, trigger.sender) bot.privileges[trigger.sender][trigger.nick] = 0 user = bot.users.get(trigger.nick) if user is None: user = User(trigger.nick, trigger.user, trigger.host) bot.channels[trigger.sender].add_user(user) if len(trigger.args) > 1 and trigger.args[1] != '*' and ( 'account-notify' in bot.enabled_capabilities and 'extended-join' in bot.enabled_capabilities): user.account = trigger.args[1]
def track_join(bot, trigger): if trigger.nick == bot.nick and trigger.sender not in bot.channels: bot.privileges[trigger.sender] = dict() bot.channels[trigger.sender] = Channel(trigger.sender) _send_who(bot, trigger.sender) bot.privileges[trigger.sender][trigger.nick] = 0 user = bot.users.get(trigger.nick) if user is None: user = User(trigger.nick, trigger.user, trigger.host) bot.users[trigger.nick] = user bot.channels[trigger.sender].add_user(user) if len(trigger.args) > 1 and trigger.args[1] != '*' and ( 'account-notify' in bot.enabled_capabilities and 'extended-join' in bot.enabled_capabilities): user.account = trigger.args[1]