user and channel scanning

This commit is contained in:
deathbybandaid 2019-06-07 19:11:02 -04:00
parent 4619dcc546
commit ed260e6626
4 changed files with 39 additions and 5 deletions

View File

@ -129,6 +129,11 @@ class BotChannels():
self.dict['list'][channel.lower()]['users'] = []
self.dict['list'][channel.lower()]['users'] = []
def channel_scan(self, bot):
for channel in bot.channels.keys():
for user in bot.channels[channel].privileges.keys():
self.add_to_channel(channel, user)
def join(self, bot, trigger):
# bot block
if trigger.nick == bot.nick:

View File

@ -50,8 +50,27 @@ class BotUsers():
if nick_id not in self.current.keys():
self.current[nick_id] = {"channels": [], "nick": nick}
def channel_scan(self, bot):
for channel in bot.channels.keys():
for user in bot.channels[channel].privileges.keys():
# Identify
nick_id = self.whois_id(user)
# Verify nick is in the all list
self.add_to_all(user, nick_id)
# Verify nick is in the all list
self.add_to_current(user, nick_id)
# set current nick
self.current[nick_id]["nick"] = user
# add joined channel to nick list
if channel not in self.current[nick_id]["channels"]:
self.current[nick_id]["channels"].append(channel)
# mark user as online
if nick_id not in self.online:
self.online.append(nick_id)
if nick_id in self.offline:
self.offline.remove(nick_id)
def join(self, bot, trigger):
# bot block
if trigger.nick == bot.nick:
for user in bot.channels[trigger.sender].privileges.keys():
# Identify
@ -89,7 +108,6 @@ class BotUsers():
self.offline.remove(nick_id)
def quit(self, bot, trigger):
# bot block
if trigger.nick == bot.nick:
return
# Identify
@ -109,7 +127,6 @@ class BotUsers():
self.offline.append(nick_id)
def part(self, bot, trigger):
# bot block
if trigger.nick == bot.nick:
for nick_id in self.current.keys():
if trigger.sender in self.current[nick_id]["channels"]:
@ -137,7 +154,6 @@ class BotUsers():
def kick(self, bot, trigger):
targetnick = Identifier(str(trigger.args[1]))
# bot block
if targetnick == bot.nick:
for nick_id in self.current.keys():
if trigger.sender in self.current[nick_id]["channels"]:
@ -165,7 +181,6 @@ class BotUsers():
def nick(self, bot, trigger):
newnick = Identifier(trigger)
# bot block
if trigger.nick == bot.nick or newnick == bot.nick:
return
# alias the nick

View File

@ -132,3 +132,10 @@ def channels_users_nick(bot, trigger):
def channels_users_mode(bot, trigger):
SpiceBot.channels.mode(bot, trigger)
# TODO
@sopel.module.event(SpiceBot.events.BOT_CONNECTED)
@sopel.module.rule('.*')
def bot_channelscan(bot, trigger):
while True:
SpiceBot.channels.channel_scan(bot)

View File

@ -43,3 +43,10 @@ def users_nick(bot, trigger):
def users_mode(bot, trigger):
SpiceBot.users.mode(bot, trigger)
# TODO
@sopel.module.event(SpiceBot.events.BOT_CONNECTED)
@sopel.module.rule('.*')
def bot_channelscan_users(bot, trigger):
while True:
SpiceBot.users.channel_scan(bot)