【问题标题】:How to receive files with python IRC bot?如何使用 python IRC bot 接收文件?
【发布时间】:2018-02-25 23:42:13
【问题描述】:

我通过以下示例代码在 python 中创建了一个半功能 IRC 机器人:

import socket
import time
import random
import os

def stringToBytes(s):
    blit = ""
    for char in s:
        blit += char
    return bytes(blit, "UTF-8")

server = "irc.irchighway.net"  # settings
channel = "#ebooks"
botnick = "NoobBot"

irc = socket.socket(socket.AF_INET, socket.SOCK_STREAM)  # defines the socket

irc.connect((server, 6667))  # connects to the server
irc.send(stringToBytes("USER " + botnick + " " + botnick + " " + botnick + " :This is a fun bot!\n"))  # user authentication
irc.send(stringToBytes("NICK " + botnick + "\n"))  # sets nick
irc.send(stringToBytes("PRIVMSG nickserv :iNOOPE\r\n"))  # auth
time.sleep(4)
irc.send(stringToBytes("JOIN " + channel + "\n"))  # join the channel
irc.send(stringToBytes("PRIVMSG #ebooks @search save the cat\r\n")) 

while 1:  # puts it in a loop
    text = irc.recv(2040)  # receive the text
    text2 = str(text)[2:]
    text3 = text2.split(":")
    print(text3)

作为一个测试,它们的作用是在电子书频道中搜索“拯救猫”这本书。它有效,并且我收到的文本日志中显示以下内容:

['', 'Search!Search@ihw-4q5hcb.dyn.suddenlink.net NOTICE NoobBot ', '\x031,9\x16\x02\x02\x16 您的搜索 “\x0312,9救猫\x031,9”已被接受。 正在搜索...\r\n\''] ['', 'Search!Search@ihw-4q5hcb.dyn.suddenlink.net NOTICE NoobBot ', '\x031,9\x16\x02\x02\x16 您的搜索 "\x0312,9save the cat\x031,9" 返回 55 个匹配项。发送结果 给你作为\x0312 SearchBot_results_for_保存 cat.txt.zip\x031,9。 搜索耗时 0.33 秒。\r\n\''] ['', 'Search!Search@ihw-4q5hcb.dyn.suddenlink.net NOTICE NoobBot ', 'DCC 发送 SearchBot_results_for_ 保存 cat.txt.zip (173.80.26.71)\r\n', '搜索!Search@ihw-4q5hcb.dyn.suddenlink.net PRIVMSG NoobBot ', "\x01DCC 发送 SearchBot_results_for__save_the_cat.txt.zip 2907707975 3107 3966\x01\r\n'"]

如果我在 mIRC 中运行它,我将能够单击链接下载文件,但是我在本文的任何地方都看不到指向实际文件的链接。我是 IRC 机器人的新手,所以举个例子会很有帮助。

我基本上只是想用python制作我自己的小客户端,这样我就可以输入搜索,客户端会在发送时下载生成的搜索文本文件。

非常感谢任何帮助

【问题讨论】:

    标签: python bots irc


    【解决方案1】:

    您需要能够处理CTCP 才能使用DCC。这将需要您自己实现这两个协议,或者使用已经为您完成这项工作的现有库。

    如果您选择前者,则需要仔细阅读这些文档以开始使用:

    祝你好运。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-09
      • 2014-01-12
      • 2012-10-15
      • 1970-01-01
      • 1970-01-01
      • 2010-12-12
      • 2021-05-28
      • 2014-10-16
      相关资源
      最近更新 更多