2016-10-02 2 views
0

Я пытаюсь сделать irc бот. Он подключается, но не отправляет полное сообщение. Если я хочу отправить «привет мир», он отправляет «привет». Он просто отправляет все до первого места.Розетки irc бот не отправляет полное сообщение

В этой программе, если вы наберете привет в irc, бот должен отправить миру привет. Но он только посылает привет.

import socket 

channel = "#bots" 
server = "chat.freenode.org" 
nickname = "my_bot" 


class IRC: 
    irc = socket.socket() 

    def __init__(self): 
     self.irc = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 

    def send(self, chan, msg): 
     self.irc.send("PRIVMSG " + chan + " " + msg + "\n") 

    def connect(self, server, channel, botnick): 
     # defines the socket 
     print("connecting to: " + server) 
     self.irc.connect((server, 6667)) # connects to the server 

     self.irc.send("NICK %s\n" % botnick) 
     self.irc.send("USER %s %s Ibot :%s\n" % (botnick, botnick, botnick)) 
     self.irc.send("JOIN %s\n" % channel) 
     self.irc.send("PRIVMSG %s :Hello Master\n" % channel) 

    def get_text(self): 
     text = self.irc.recv(2040) # receive the text 

     if text.find('PING') != -1: 
      self.irc.send('PONG ' + text.split()[1] + 'rn') 

     return text 

irc = IRC() 

irc.connect(server, channel, nickname) 

while True: 
    text = irc.get_text().strip() 

    if "hello" in text.lower(): 
     irc.send(channel, "hello world") 

    print text 

ответ

2

Вы забыли: перед сообщением. Это должно работать:

def send(self, chan, msg): 
    self.irc.send("PRIVMSG " + chan + " :" + msg + "\n") 
Смежные вопросы