Я кодирую простой IRC-бот в Python. Фактически, он может подключаться к определенному каналу, читать сообщения и отправлять ответ, но он не может различать сообщения канала и личные сообщения.Python IRC Bot, отличаться от сообщений канала и личных сообщений
Пример:
Джон, подключен к тому же каналу, отправить личное сообщение для чат бота, как, «поздороваться!» Бот должен отправить «привет» в тот же чат, только для Джона.
Вместо этого, когда бот читает «! Hello» на доске канала, нужно отправить «привет» на канал.
Мой код:
ircmsg = connection.ircsock.recv(2048)
ircmsg_clean = ircmsg.strip(str.encode('\n\r'))
if ircmsg.find(str.encode("!say")) != -1:
try:
parts = ircmsg_clean.split()
content = parts[4]
connection.sendMsg(channel, content)
except IndexError:
connection.sendMsg(channel, "Invalid syntax")
файл соединения:
def sendmsg(channel, msg):
ircsock.send(str.encode("PRIVMSG " + channel +" :" + msg + "\n"))
Я знаю, как отправить сообщение конкретному пользователю:
def sendPrivateMsg(username, msg):
ircsock.send(str.encode("PRIVMSG " + username + " :" + msg + "\n"))
Но должны знать откуда ge, канал или пользователь и отправить соответствующий ответ.
Извините за мой плохой английский.