我正在寻找一个新的项目来让我的脚湿透。我有一个IRC频道,并希望有一个维护日志的机器人,并在提示时吐出x行消息,但我不知道从哪里开始写这样的东西。
我看到this教程,我认为这将让我开始使用机器人本身,但我不知道下一步的日志记录功能。有人能指出我正确的方向吗?
答案 0 :(得分:1)
假设您已经编写了一个调度函数,它为每种消息调用适当的处理程序,以及一个格式化和发送消息的发送函数。
处理程序看起来像这样:
MAX_LINES = 100
channel_logs = defaultdict(list)
def handle_public_message(user, channel, msg):
log = logs[channel]
log.append((user, msg))
if len(log) > MAX_LINES:
log.pop(0)
if msg.partition(' ')[0].lower() == 'dumplog':
dumplog(log, channel)
def handle_private_message(user, channel, msg):
if msg.partition(' ')[0].lower() == 'dumplog':
dumplog(logs[channel], channel, user)
def dumplog(log, channel, user=None):
for line in log:
send_msg(line, channel, user)
这就是它的全部内容。
如果你想得到想象,你可以编写一个包含“仅保留最后100个追加”的列表的类,使其成为存储到磁盘的直写缓存,添加一种方式来请求只需20线而不是100等
您还可以添加更多特定于机器人的功能,例如以更标准化的方式处理命令。但实际上,你最好为它获得一个机器人框架。
事实上,我强烈建议你不要开始处理原始套接字和命令解析的第一个项目。你将花费更多的时间来调试繁琐烦人的问题,而不是处理你的实际代码。其他选项包括: