mirror of https://github.com/jesopo/ircstates
parent
e062b7b71f
commit
5a85e53485
|
@ -52,7 +52,5 @@ class Channel(object):
|
|||
if (param is not None and
|
||||
param in self.list_modes[char]):
|
||||
self.list_modes[char].remove(param)
|
||||
if not self.list_modes[char]:
|
||||
del self.list_modes[char]
|
||||
elif char in self.modes:
|
||||
del self.modes[char]
|
||||
|
|
|
@ -195,6 +195,10 @@ class Server(object):
|
|||
channel = self.create_channel(
|
||||
Name(line.params[0], channel_lower)
|
||||
)
|
||||
#TODO: put this somewhere better
|
||||
for mode in self.isupport.chanmodes.a_modes:
|
||||
channel.list_modes[mode] = []
|
||||
|
||||
self.channels[channel_lower] = channel
|
||||
|
||||
self._self_hostmask(line.hostmask)
|
||||
|
@ -534,8 +538,7 @@ class Server(object):
|
|||
channel = self.channels[channel_lower]
|
||||
if mode in channel._list_modes_temp:
|
||||
mlist = channel._list_modes_temp.pop(mode)
|
||||
for mask in mlist:
|
||||
channel.add_mode(mode, mask, True)
|
||||
channel.list_modes[mode] = mlist
|
||||
|
||||
@line_handler(RPL_BANLIST)
|
||||
def _handle_banlist(self, line: Line) -> Emit:
|
||||
|
|
|
@ -46,10 +46,16 @@ class ModeTestChannelList(unittest.TestCase):
|
|||
server = ircstates.Server("test")
|
||||
server.parse_tokens(irctokens.tokenise("001 nickname *"))
|
||||
server.parse_tokens(irctokens.tokenise(":nickname JOIN #chan"))
|
||||
server.parse_tokens(irctokens.tokenise("MODE #chan +b asd!*@*"))
|
||||
|
||||
channel = server.channels["#chan"]
|
||||
self.assertEqual(channel.list_modes, {"b": []})
|
||||
|
||||
server.parse_tokens(irctokens.tokenise("MODE #chan +b asd!*@*"))
|
||||
self.assertEqual(channel.list_modes, {"b": ["asd!*@*"]})
|
||||
|
||||
server.parse_tokens(irctokens.tokenise("MODE #chan -b asd!*@*"))
|
||||
self.assertEqual(channel.list_modes, {"b": []})
|
||||
|
||||
def test_remove(self):
|
||||
server = ircstates.Server("test")
|
||||
server.parse_tokens(irctokens.tokenise("001 nickname *"))
|
||||
|
|
Loading…
Reference in New Issue