【问题标题】:Simple Python IRC bot for reporting to a channel用于向频道报告的简单 Python IRC 机器人
【发布时间】:2014-10-05 04:14:27
【问题描述】:

我正在尝试找出最简单的方法来报告 IRC 频道中的一些数据。我的机器人不需要接收任何命令或处理任何输入。它只是收集数据并将其简单地输出到 IRC 频道的不同程序的一部分。我查看了O'Reilly 的代码,想知道是否可以跳过while 部分。但是,没有什么可以让机器人保持活动状态并始终登录。我如何让它保持登录状态并基本上剥离接收处理代码?

编辑:我也看过 Willie,但对于我想要的用例来说,这似乎很可怕。是否有任何精简版可以仅用于 IRC 通信?

【问题讨论】:

    标签: python bots irc


    【解决方案1】:

    您需要多久发送一次数据? 如果不是那么频繁,您可以这样做:

    import sys
    import socket
    import string
    
    HOST="irc.freenode.net"
    PORT=6667
    NICK="MauBot"
    IDENT="maubot"
    REALNAME="MauritsBot"
    
    def sendData(dataString):
        s=socket.socket( )
        s.connect((HOST, PORT))
        s.send("NICK %s\r\n" % NICK)
        s.send("USER %s %s bla :%s\r\n" % (IDENT, HOST, REALNAME))
        s.send("%s\r\n" % dataString)
        s.close()
    

    当你有来自另一个脚本的新数据时,你可以调用 sendData 函数并将数据作为字符串传递。 Die 函数打开套接字发送数据并关闭套接字。

    【讨论】:

    • 每隔几分钟。我不认为每次都打开/关闭连接是值得的(会产生大量的登录/注销消息)。我真的很想让机器人始终保持登录状态,但在不听取一些输入的情况下看不到如何做到这一点。
    【解决方案2】:

    这正是我写simple_irc 的原因。它将处理必要的读取以使您进入通道并保持连接处于活动状态,但可以异步发送消息。试试看!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-06-17
      • 2011-08-27
      • 2011-07-28
      • 2014-03-31
      • 2011-02-27
      • 1970-01-01
      • 2016-05-03
      • 2020-08-25
      相关资源
      最近更新 更多