add motd numeric (375, 372) support

This commit is contained in:
jesopo 2020-03-12 20:46:54 +00:00
parent d14a0557e1
commit 28d67df80a
3 changed files with 24 additions and 0 deletions

View File

@ -23,6 +23,7 @@ class Server(Named):
self.nickname = ""
self.modes: List[str] = []
self.motd: List[str] = []
self._encoder = StatefulEncoder()
self._decoder = StatefulDecoder()
@ -102,6 +103,14 @@ class Server(Named):
def handle_ISUPPORT(self, line: Line):
self.isupport.tokens(line.params[1:-1])
@line_handler("375")
def handle_375(self, line: Line):
self.motd.clear()
@line_handler("375")
@line_handler("372")
def handle_372(self, line: Line):
self.motd.append(line.params[1])
@line_handler("NICK")
def handle_NICK(self, line: Line):
new_nickname = line.params[0]

View File

@ -1,3 +1,4 @@
from .channel import *
from .nickname import *
from .mode import *
from .motd import *

14
test/motd.py Normal file
View File

@ -0,0 +1,14 @@
import unittest
import ircstates, irctokens
class MOTDTest(unittest.TestCase):
def test(self):
server = ircstates.Server("test")
server.parse_tokens(irctokens.tokenise("001 nickname"))
server.parse_tokens(irctokens.tokenise("375 * :start of motd"))
server.parse_tokens(irctokens.tokenise("372 * :first line of motd"))
server.parse_tokens(irctokens.tokenise("372 * :second line of motd"))
self.assertEqual(server.motd, [
"start of motd",
"first line of motd",
"second line of motd"])