3

I've created a semi-functional IRC bot in python from the following sample code:

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)

Just as a test, what these does is search for the book "save the cat" in the ebooks channel. It works, and I get the following showing up in my received text log:

['', 'Search!Search@ihw-4q5hcb.dyn.suddenlink.net NOTICE NoobBot ', '\x031,9\x16\x02<>\x02\x16 Your search for "\x0312,9save the cat\x031,9" has been accepted. Searching...\r\n\''] ['', 'Search!Search@ihw-4q5hcb.dyn.suddenlink.net NOTICE NoobBot ', '\x031,9\x16\x02<>\x02\x16 Your search for "\x0312,9save the cat\x031,9" returned 55 matches. Sending results to you as\x0312 SearchBot_results_for_ save the cat.txt.zip\x031,9. Search took 0.33 seconds.\r\n\''] ['', 'Search!Search@ihw-4q5hcb.dyn.suddenlink.net NOTICE NoobBot ', 'DCC Send SearchBot_results_for_ save the cat.txt.zip (173.80.26.71)\r\n', 'Search!Search@ihw-4q5hcb.dyn.suddenlink.net PRIVMSG NoobBot ', "\x01DCC SEND SearchBot_results_for__save_the_cat.txt.zip 2907707975 3107 3966\x01\r\n'"]

If I were running this in mIRC, I would be able to click the link to download the file, however I don't see the link to the actual file anywhere in this text. I'm new to IRC bots, so an example would be helpful.

I basically am just trying to make my own small client in python so that I can input searches and the client will download the resulting search text file when it's sent.

Any help is really appreciated

Slat
  • 31
  • 2

1 Answers1

0

You will need to be able to handle CTCP in order to use DCC. This will require you to implement both protocols yourself, or make use of an existing library that has already done that work for you.

If you opt for the former, you'll want to peruse these documents to get started:

Best of luck.

ZeroKnight
  • 518
  • 3
  • 17