lykoss / lykos

Werewolf, the popular detective/social party game (a theme of Mafia)
https://werewolf.chat
Other
127 stars 62 forks source link

Idling out causes bot to ignore player until game is over #423

Closed ghost closed 4 years ago

ghost commented 4 years ago

When a player idles out, the bot won't respond to them anywhere including PM until the current game ends. If they /part the channel in meantime, it triggers an error which seems to suggest the bot thinks the user isn't in the channel anymore, however if they rejoin after the /part the bot starts responding to them again. Regardless, when the game ends the bot will start responding again without any special actions required.

Traceback (most recent call last):
  File "/src/decorators.py", line 218, in __call__
    return self.func(*args, **kwargs)
  File "/src/decorators.py", line 377, in caller
    return self.func(*args, **kwargs)
  File "/src/hooks.py", line 746, in part_chan
    user = users.get(rawnick, allow_bot=True)
  File "/src/users.py", line 82, in get
    raise KeyError(_arg_msg.format(nick, ident, host, account, allow_bot))
KeyError: "(nick='nyuszika7h', ident='nyuszika7h', host='lykos/dev/nyuszika7h', account=None, allow_bot=True)"

Local variables in all frames (most recent call last):

Local variables from frame #3 (in part_chan):

cli = <oyoyo.client.IRCClient object at 0x7f2298830320>
rawnick = 'nyuszika7h!nyuszika7h@lykos/dev/nyuszika7h'
chan = '##werewolf'
reason = ''
ch = Channel('##werewolf')

Local variables from frame #4 (in get):

nick = 'nyuszika7h'
ident = 'nyuszika7h'
host = 'lykos/dev/nyuszika7h'
account = None
allow_multiple = False
allow_none = False
allow_bot = True
allow_ghosts = False
sentinel = <object object at 0x7f22989fff20>
temp = User('nyuszika7h', 'nyuszika7h', 'lykos/dev/nyuszika7h', None, {})
potential = []
users = {User('FastLizard4', 'fastlizard', 'wikipedia/pdpc.active.FastLizard4', 'FastLizard4', {Channel('##werewolf'): set(), Channel('#lykos'): set()}), User('Frogging101', '~Frogging', '2600:3c03:e000:12e::f:100f', 'Frogging101', {Channel('##werewolf'): set()}), User('e', 'e', 'freenode/staff/spy.edk', 'edk-', {Channel('##werewolf'): set()}), User('Dabo', '~dabo', 'unaffiliated/dabo', 'Dabo', {Channel('##werewolf'): set()}), User('neemos', 'neemos', 'turing.chaos.hg.tu-darmstadt.de', 'neemos', {Channel('##werewolf'): set()}), User('foophoof', 'sid209755', 'gateway/web/irccloud.com/x-iczyztqymdfqczef', 'foophoof', {Channel('##werewolf'): set()}), User('Cradamy', '~Cradamy', 'ip96.ip-137-74-57.eu', 'Cradamy', {Channel('##werewolf'): set()}), User('Caroline', 'nyuszika7h', 'botters/nyuszika7h/bot/caroline', 'Caroline', {Channel('#lykos'): set(), Channel('##werewolf-ops'): {'o'}}), User('Cysioland', 'itsme', 'cysioland.pl', 'cysioland', {Channel('##werewolf'): set()}), User('Nay`', 'nae', 'gateway/shell/hellomouse/x-lxuvhnnejjywlwyh', 'Nay`', {Channel('##werewolf'): set()}), User('swagiloo', 'sid11717', 'lykos/Iciloo', 'Iciloo', {Channel('##werewolf'): set(), Channel('#lykos'): set()}), User('butlerx', '~butlerx', 'notthe.cloud', 'butlerx', {Channel('##werewolf'): set()}), User('splook', 'splook', 'unaffiliated/splook', 'Splook', {Channel('##werewolf'): {'v'}}), User('Iciloo', 'Iciloo', 'lykos/Iciloo', 'Iciloo', {Channel('##werewolf'): {'v'}, Channel('#lykos'): set()}), User('Nothing4You', 'N4Y', 'nothing4you.w.tf-w.tf', 'N4Y', {Channel('##werewolf'): set()}), User('_moep_', '~moep', 'gateway.moep.name', '_moep_', {Channel('##werewolf'): set()}), User('no-n', 'sid257727', 'gateway/web/irccloud.com/x-lepzntidtnjwseiu', 'no-n', {Channel('##werewolf'): set()}), User('Radon', 'wolfy1339', 'hellomouse/dev/wolfy1339', 'wolfy1339', {Channel('##werewolf'): set()}), User('chauffer', '~chauffer', 'unaffiliated/chauffer', 'ChauffeR', {Channel('##werewolf'): set()}), User('kitties', '~kitties', 'unaffiliated/kitties', 'kitties', {Channel('##werewolf'): set()}), User('RyanKnack', 'RyanKnack', 'unaffiliated/ryanknack', 'RyanKnack', {Channel('##werewolf'): {'v'}}), User('Asorailahd', '~IceChat9', 'trivialand/master/auror', 'Asorailahd', {Channel('##werewolf'): set(), Channel('#lykos'): set()}), User('ecks', 'ecks', 'wookieepedia/administrator/pdpc.active.ecks', 'ecks', {Channel('##werewolf'): set(), Channel('#lykos'): set(), Channel('##werewolf-ops'): {'v'}}), User('[Xeta]', 'Xetalim', 'unaffiliated/xetalim', 'xetalim', {Channel('##werewolf'): set()}), User('ChanServ', 'ChanServ', 'services.', None, {Channel('#lykos'): {'o'}, Channel('##werewolf-ops'): {'o'}}), User('migy', '~migy', 'static.59.240.9.5.clients.your-server.de', 'Migy', {Channel('##werewolf'): set()}), User('yn', '~yano', 'freenode/staff-emeritus/yano', 'yano', {Channel('##werewolf'): set(), Channel('##werewolf-ops'): {'v'}}), User('hax404', '~hax404', 'alfred.summer.hax404.de', 'hax404', {Channel('##werewolf'): set()}), User('emers', '~emers', 'unaffiliated/emers', 'emers', {Channel('##werewolf'): set()}), User('Not-001', 'N4Y', 'national-security.agency', 'Your', {Channel('##werewolf'): set()}), User('i', 'nymeria', 'unaffiliated/misha/bot/i', 'i', {Channel('#lykos'): set(), Channel('##werewolf-ops'): {'v'}}), User('jacob1', 'jacob1', 'Powder/Developer/lykos.jacob1', 'jacob1', {Channel('##werewolf'): {'v'}, Channel('#lykos'): {'v'}, Channel('##werewolf-ops'): {'v'}}), User('GoldenBear', '~gb', '103.208.221.230', 'GoldenBear', {Channel('##werewolf'): set()}), User('JonathanD', '~JonathanD', 'freenode/staff/jonathand', 'JonathanD', {Channel('##werewolf'): set()}), User('ranlvor', '~quassel', '2a01:4f9:2a:1b96:2::2', 'ranlvor', {Channel('##werewolf'): set()}), User('iovoid', 'iovoid', 'hellomouse/dev/iovoid', 'iovoid', {Channel('##werewolf'): set()}), User('tomf', 'tomf', 'b.irthday.party', 'tomf', {Channel('##werewolf'): set()}), User('Satin', '~satina', 'unaffiliated/satin', 'Satin', {Channel('##werewolf'): set()}), User('cpe', '~cpe', 'unaffiliated/cpe', 'cpe', {Channel('##werewolf'): set()}), User('MJ94', 'mj94', 'wikimedia/mj94', 'MJ94', {Channel('##werewolf'): set(), Channel('#lykos'): set()}), User('WFeather', 'sid35111', 'gateway/web/irccloud.com/x-wpjlekmpmjsjuxnp', 'WFeather', {Channel('##werewolf'): set()}), User('denza242', '~denza252', 'sapphire/support/denza252', 'Denza252', {Channel('##werewolf'): set()}), User('Chenzw', '~chenzw', 'wikimedia/Chenzw', 'Chenzw', {Channel('##werewolf'): set()}), User('JD|cloud', 'sid7951', 'wikimedia/Jasper-Deng', 'Jasper_Deng', {Channel('##werewolf'): set()}), User('markasoftware', '~quassel', '2604:180:1:bc0::9999', 'markasoftware', {Channel('##werewolf'): set()}), User('Maker_', '~Maker_', 'pool-71-105-112-20.nycmny.fios.verizon.net', 'Maker_', {Channel('##werewolf'): set()}), User('sujeet', 'sujeet', 'unaffiliated/freeboson', 'freeboson', {Channel('##werewolf'): set()}), User('Mikaela', '~Mikaela', 'unaffiliated/mikaela', 'Mikaela', {Channel('##werewolf'): set()}), User('Starman', 'znc', 'unaffiliated/starman', 'Starman', {Channel('##werewolf'): set()}), User('litschi', '~tk', 'static.88-198-92-130.clients.your-server.de', 'tk1', {Channel('##werewolf'): set()}), User('Nothing4You_', 'N4Y', 'nothing4you.w.tf-w.tf', 'N4Y_', {Channel('##werewolf'): set()}), User('dax', 'dax', 'ubuntu/member/dax', 'dax', {Channel('##werewolf'): set(), Channel('##werewolf-ops'): {'v'}}), User('el', '~el', 'ubuntu/member/el', 'el', {Channel('##werewolf'): set(), Channel('#lykos'): set(), Channel('##werewolf-ops'): {'v'}}), User('Kydon', 'Kydon', 'gateway/shell/hellomouse/x-tdrmzevbytgnqzwx', 'KydonShadow', {Channel('##werewolf'): set()}), User('Leon4', '~Leon4', 'unaffiliated/leon4', 'Leon4', {Channel('##werewolf'): set()}), User('pydsigner', '~pydsigner', 'unaffiliated/pydsigner', 'pydsigner', {Channel('##werewolf'): set()}), User('fool', 'simplexish', 'unaffiliated/simplexish', 'simplexish', {Channel('##werewolf'): {'v'}, Channel('#lykos'): set()}), User('Nightmare', 'ddoscomin', 'unaffiliated/thetfef', 'TheTFEF', {Channel('##werewolf'): set(), Channel('#lykos'): set()}), User('ChrisE', '~chrise', 'patmos.fjru.net', 'chrise', {Channel('##werewolf'): set(), Channel('##werewolf-ops'): {'v'}}), User('axew', '~no', 'unaffiliated/1812112/x-7694985', 'axew', {Channel('##werewolf'): set()}), User('iczero', 'iczero', 'hellomouse/dev/iczero', 'iczero', {Channel('##werewolf'): set()}), User('dfch', '~dfch', 'unaffiliated/dfch', 'dfch', {Channel('##werewolf'): set()}), User('Naia', '~theriwolf', 'unaffiliated/werewolf', 'werewolf', {Channel('##werewolf'): set()}), User('legoktm', '~quassel', 'wikipedia/Legoktm', 'legoktm', {Channel('##werewolf'): set()}), User('eir', 'eir', 'freenode/utility-bot/eir', 'eir', {Channel('##werewolf'): set(), Channel('##werewolf-ops'): {'o'}}), User('Calinou', '~quassel', 'fsf/member/calinou', 'Calinou', {Channel('##werewolf'): set()}), User('grumble', '~grumble', 'freenode/staff/grumble', 'grumble', {Channel('##werewolf'): set(), Channel('#lykos'): set(), Channel('##werewolf-ops'): {'v'}}), User('hexa-', '~hexa-', 'juno.lossy.network', 'hexa-', {Channel('##werewolf'): {'v'}, Channel('#lykos'): set()}), User('ParuNexus', 'parunexus', 'c-73-25-116-162.hsd1.or.comcast.net', 'ParuNexus', {Channel('##werewolf'): set()}), User('abra0', '~abra0', 'unaffiliated/abra0', 'abra0', {Channel('##werewolf'): set()}), User('Faely', '~fae', 'lykos/dev/Faely', 'Vgr255', {Channel('##werewolf'): set(), Channel('#lykos'): {'v'}, Channel('##werewolf-ops'): {'v'}}), User('spookly', 'spookly', 'wookieepedia/spookywilloww', 'spookly', {Channel('##werewolf'): set()}), User('erry', '~erry', 'shadowcat/full-stack-hipster/erry', 'erry', {Channel('##werewolf'): set()}), User('nemrod', '~nemrod', 'unaffiliated/nemrod', 'nemrod', {Channel('##werewolf'): set()}), User('NaviTheFairy', '~Squirrel', 'trivialand/staff/toagac', 'toagac', {Channel('##werewolf'): set()}), User('Kb03', 'uid327488', 'wikimedia/Kb03', 'Kb03', {Channel('##werewolf'): set(), Channel('#lykos'): set()}), User('thomasross', '~thomasros', 'dyn-pppoe-142-51-235-20.vianet.ca', 'thomasross', {Channel('#lykos'): set(), Channel('##werewolf'): set()}), User('eeeeeta', '~eta', 'trainsplorer/developer/eta', 'eta', {Channel('##werewolf'): set()}), User('Campylobacter', '~Campyloba', 'unaffiliated/campylobacter', 'Campylobacter', {Channel('##werewolf'): set()}), User('bttf', '~bttf', '138.68.16.63', 'bttf', {Channel('##werewolf'): set()}), User('azuline', '~azuline', 'unaffiliated/azuline', 'azuline', {Channel('##werewolf'): set()}), User('RandomRaven', 'sid405934', 'gateway/web/irccloud.com/x-eiwsubiqradjoddo', 'RandomRaven', {Channel('##werewolf'): set(), Channel('#lykos'): set()}), User('gqrter543', '~guest3812', '187.119.231.207', 'gqrter543', {Channel('##werewolf'): set()}), User('Quokka', '~Quokka', 'unaffiliated/quokka', 'quokka', {Channel('##werewolf'): set()}), User('BWBellairs', '~bwbellair', 'hellomouse/dev/bwbellairs', 'BWBellairs', {Channel('##werewolf'): set()}), User('PacKetSlayer', 'PacketSlay', 'hellomouse/member/packetslayer', 'PocketKiller', {Channel('##werewolf'): set(), Channel('#lykos'): set()}), User('enchi', '~enchi', 'defocus/yummy/enchilado', 'enchilado', {Channel('##werewolf'): set()}), User('thijseigenwijs', '~freenode', '51.77.200.162', 'thijseigenwijs', {Channel('#lykos'): set()}), User('ilbelkyr', 'ilbelkyr', 'freenode/staff/atheme.ilbelkyr', 'ilbelkyr', {Channel('##werewolf'): set(), Channel('#lykos'): {'v'}, Channel('##werewolf-ops'): {'v'}}), User('moony', 'moony', 'hellomouse/dev/moony', 'MoonyTheDwarf', {Channel('##werewolf'): set()}), User('misha', 'sid11718', 'lykos/werekitten', 'misha', {Channel('##werewolf'): {'v'}, Channel('#lykos'): set(), Channel('##werewolf-ops'): {'v'}}), User('ayush', '~ayush', '183.82.110.23', 'ayush', {Channel('##werewolf'): {'v'}}), User('Shadoozo', '~Shadoozo', 'strawberry.twoopy.nl', 'GewoonYorick', {Channel('##werewolf'): set(), Channel('#lykos'): set()}), User('zoid', '~zoid', 'unaffiliated/taxationistheft', 'zoid', {Channel('##werewolf'): set(), Channel('#lykos'): set()}), User('psycho', 'psycho', 'psycho.rocks', 'psycho', {Channel('##werewolf'): set()}), User('m712', '~annoying', 'unaffiliated/thefam', 'theFam', {Channel('##werewolf'): set()}), User('EvilWerezombie', 'N4Y', 'irc.msg.lol', 'N4Y', {Channel('##werewolf'): set()}), User('Tux[Qyou]', 'TuxQyou]', 'gateway/vpn/privateinternetaccess/tuxqyou/x-46410882', 'Tux[Qyou]', {Channel('##werewolf'): set(), Channel('#lykos'): set()}), User('empty_string', 'emptystrin', 'tjctf/alum/tris', 'empty_string', {Channel('##werewolf'): set(), Channel('#lykos'): set()}), User('Matthew', 'sid55177', 'wikimedia/matthewrbowker', 'matthewrbowker', {Channel('##werewolf'): set(), Channel('#lykos'): set()}), User('xuu', '~xuu', 'dosha.mtr.sour.is', 'xuu', {Channel('##werewolf'): set()}), User('Targaryen', 'sony', 'unaffiliated/sony', 'sony', {Channel('##werewolf'): {'v'}}), User('aismallard', '~quassel', 'lykos/aismallard', 'aismallard', {Channel('##werewolf'): set(), Channel('#lykos'): set()}), User('codebam', '~codebam', 'unaffiliated/codebam', 'codebam', {Channel('##werewolf'): set()}), User('Timson', 'znc', 'unaffiliated/timson', 'Timson', {Channel('##werewolf'): set(), Channel('#lykos'): set()}), User('oYo', 'oyomatrixo', 'gateway/shell/matrix.org/x-qcbinyrinfzngutx', 'jnmtx', {Channel('##werewolf'): set()}), User('hl', '~hl', 'unaffiliated/hl', 'hl', {Channel('##werewolf'): set()}), User('Victor-1', '~Victor-1', 'unaffiliated/victor-1', 'Victor-1', {Channel('##werewolf'): set()}), User('jeans', '~g4vr0che', 'unaffiliated/g4vr0che', 'g4vr0che', {Channel('##werewolf'): set()}), User('[42]', 'N4Y', 'nothing4you.w.tf-w.tf', 'N4Y_', {Channel('##werewolf'): set()}), User('mansel', '~mansel', 'unaffiliated/mansel', 'mansel', {Channel('##werewolf'): set()}), BotUser('lykos', 'lykos', 'lykos/bot', 'lykos', {Channel('##werewolf'): {'o'}, Channel('#lykos'): {'o'}, Channel('##werewolf-ops'): {'o'}}), User('Ramona', '~ramona', 'howbad.ru', 'Ramona', {Channel('##werewolf'): set()}), User('Crackbot', '~sellspowd', 'unaffiliated/jacob1/bot/crackbot', 'Crackbot', {Channel('#lykos'): {'o'}}), User('Writ', '~Writ', 'unaffiliated/writ', 'Writ', {Channel('##werewolf'): set()}), User('noodle', '~noodle', '2600:1f14:45f:7d01:d89f:3ec3:2c4:c50f', 'netwoodle', {Channel('##werewolf'): set()}), User('Empus', '~empus', 'unaffiliated/empus', 'Empus', {Channel('##werewolf'): set(), Channel('#lykos'): set()}), User('Fusl', 'fusl', 'opennic/fusl', 'Fusl', {Channel('##werewolf'): set()}), User('mooo', 'jacob1', 'Powder/Developer/lykos.jacob1', 'jacob1', {Channel('##werewolf'): set()}), User('beaky', '~beaky', '2a03:b0c0:0:1010::17cf:7003', 'beaky', {Channel('##werewolf'): set()}), User('CodeLyoko', 'TheMesquit', 'wikipedia/CodeLyoko', 'CodeLyoko', {Channel('##werewolf'): set()}), User('sling00', '~sling00', '192.241.241.223', 'sling00', {Channel('##werewolf'): set()}), User('noteness', 'uid338666', 'gateway/web/irccloud.com/x-cixqfcjpqlnlpfjq', 'nessessary129', {Channel('##werewolf'): set(), Channel('#lykos'): set()}), User('Mrprocom', 'Mrprocom', 'Powder/Staff/Mrprocom', 'Mrprocom', {Channel('##werewolf'): set(), Channel('#lykos'): set()}), User('langkid1', '~langkid1', '2604:180:0:ce:5f69:7263::', 'langkid1', {Channel('##werewolf'): set()}), User('jacob3', 'jacob2', 'Powder/Developer/lykos.jacob1', 'jacob1', {Channel('##werewolf'): set(), Channel('#lykos'): {'v'}, Channel('##werewolf-ops'): {'v'}}), User('Mariven', '~mariven', 'unaffiliated/mariven', 'Mariven', {Channel('##werewolf'): {'v'}})}
user = User('Mariven', '~mariven', 'unaffiliated/mariven', 'Mariven', {Channel('##werewolf'): {'v'}})