我正在寻找开始一个新项目来让我的脚湿透 Python。我有一个 IRC 频道,希望有一个机器人来维护日志并在出现提示时吐出 x 行消息,但我不知道从哪里开始写这样的东西。
我看到了本教程,我认为这将使我开始使用机器人本身,但我不确定下一步该去哪里获取日志记录功能。有人可以指出我正确的方向吗?
假设您已经编写了一个调度函数,它为每种消息调用适当的处理程序,以及一个适当地格式化和发送消息的发送函数。
处理程序可能看起来像这样:
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等
您还可以放入更多特定于机器人的功能,例如以更标准化的方式处理命令。但实际上,您最好为此获得一个机器人框架。
事实上,我强烈建议您不要开始处理原始套接字和命令解析的第一个项目。您将花费更多的时间来调试繁琐和烦人的问题,而不是处理您的实际代码。其他选项包括: