From 6f0f9c414e633089341a0ce076e84911ebc9196e Mon Sep 17 00:00:00 2001 From: xfnw Date: Mon, 14 Feb 2022 10:34:03 -0700 Subject: [PATCH] record messages --- bam.py | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 bam.py diff --git a/bam.py b/bam.py new file mode 100644 index 0000000..6441362 --- /dev/null +++ b/bam.py @@ -0,0 +1,55 @@ +import asyncio, time + +from irctokens import build, Line +from ircrobots import Bot as BaseBot +from ircrobots import Server as BaseServer +from ircrobots import ConnectionParams + +from secrets import OPER, NICK, NETWORK, HOST, SECONDS, MAXMSGS, JOIN + + +class Server(BaseServer): + def __init__(self, bot, name): + super().__init__(bot, name) + self.log={} + async def line_read(self, line): + print(f"{self.name} < {line.format()}") + if "on_" + line.command.lower() in dir(self): + asyncio.create_task( + self.__getattribute__("on_" + line.command.lower())(line) + ) + + async def line_send(self, line): + print(f"{self.name} > {line.format()}") + + async def on_001(self, line): + await self.send_raw(OPER) + + async def on_privmsg(self, line): + nick = line.hostmask.nickname + if nick not in self.log: + self.log[nick] = [] + + self.log[nick].append([time.now()] + line.params) + if len(self.log[nick] > MAXMSGS): + self.log[nick].pop(0) + + + + +class Bot(BaseBot): + def create_server(self, name: str): + return Server(self, name) + + +async def main(): + bot = Bot() + + params = ConnectionParams(NICK, host=HOST, port=6697, autojoin=JOIN) + + await bot.add_server(NETWORK, params) + await bot.run() + + +if __name__ == "__main__": + asyncio.run(main())