【问题标题】:IRC Client in Python; not a IRC BotPython 中的 IRC 客户端;不是 IRC 机器人
【发布时间】:2013-11-30 10:52:18
【问题描述】:

我对此进行了广泛搜索,只找到了特定于机器人的客户端。我知道它们基本上是一样的,但是对于我想要做什么我就是想不通。

我正在尝试编写一个 python 客户端,它表面上是纯粹而简单的。例如,当从命令行运行时,它会立即隐形连接,并在建立连接后打印“say:”。 (用户名、服务器等已设置)它将等到用户按下 -return/enter- 然后发送消息,然后检索它已记录到数组的消息并打印最后 8 行/数组值。

因此用户将只能看到频道上的消息,并且能够发送消息。我的问题是弄清楚如何剥离除消息之外的所有内容。如果我看起来想要有人为我做这件事,我很抱歉。我看了又看,但我无法弄清楚。我必须使用 IRC 模块吗?我很确定我最终会以某种方式使用正则表达式,但我很难过。感谢大家阅读我的愚蠢问题!

import sys
import socket
import string

HOST="irc.freenode.net"
PORT=6667
NICK="MauBot"
IDENT="maubot"
REALNAME="MauritsBot"
readbuffer=""

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

while 1:
    readbuffer=readbuffer+s.recv(1024)
    temp=string.split(readbuffer, "\n")
    readbuffer=temp.pop( )

    for line in temp:
        line=string.rstrip(line)
        line=string.split(line)

        if(line[0]=="PING"):
            s.send("PONG %s\r\n" % line[1])

【问题讨论】:

  • 很难“隐形”连接到任何东西。
  • 我无法让它工作。它找不到模块“setuptools”。感谢您的超快速回复! ^-^
  • 我的意思是当我说隐形时,用户不会看到 MOTD、PONG 等。 =)
  • 如果找不到setuptools,也可以从pypi获取:pypi.python.org/pypi/setuptools

标签: python regex multithreading module irc


【解决方案1】:

您可以使用Telnet 连接到 IRC 服务器。
Python 中有一些库可以实现这一点。

查看这些链接了解更多信息:

> Python Telnet connection

> Using Telnet in Python

> Python Doco: 20.14. telnetlib — Telnet client

连接到 IRC 服务器后,您可以:

  1. 在 telnet 会话中输出您需要的任何命令(例如登录凭据)。
  2. 加入频道。
  3. 写出你需要的行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-13
    • 2011-07-28
    • 1970-01-01
    • 2010-11-10
    • 1970-01-01
    • 2018-12-31
    • 2017-05-13
    • 1970-01-01
    相关资源
    最近更新 更多