record messages

This commit is contained in:
xfnw 2022-02-14 10:34:03 -07:00
parent f14ac60439
commit 6f0f9c414e

55
bam.py Normal file
View file

@ -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())