IRC Python Bot: лучший способ

Я хочу создать бота, который в основном делает следующее:

  • Слушает комнату и взаимодействует с пользователями и поощряет их к PM боту.
  • Как только пользователь имеет PMed, бот взаимодействует с клиентом с использованием различных методов AI.

Должен ли я просто использовать библиотеку IRC или Sockets в python или мне нужно больше рамок бота.

Что бы вы сделали?

Спасибо!

Вот код, который я использую в настоящее время, однако, я не получил его работать.

#!/usr/bin/python 
import socket
network = 'holmes.freenet.net'
port = 6667
irc = socket.socket ( socket.AF_INET, socket.SOCK_STREAM )
irc.connect ( ( network, port ) )
irc.send ( 'NICK PyIRC\r\n' )
irc.send ( 'USER PyIRC PyIRC PyIRC :Python IRC\r\n' )
irc.send ( 'JOIN #pyirc\r\n' )
irc.send ( 'PRIVMSG #pyirc :Can you hear me?\r\n' )
irc.send ( 'PART #pyirc\r\n' )
irc.send ( 'QUIT\r\n' )
irc.close()

Ответ 1

Используйте Twisted или Asynchat, если вы хотите иметь разумный дизайн. Можно просто сделать это с помощью сокетов, но зачем делать это с нуля?

Ответ 2

Если вы хотите использовать методы ИИ, я предлагаю вам рассмотреть пакет AIML для Python. Это та же технология, что и боты ALICE.

Ответ 3

Если вы хотите создать часть ИИ, зачем вообще писать весь код, необходимый для подключения IRC?

Я предлагаю использовать SupyBot, и просто напишите свой AI-код в качестве плагина для него. Существует достаточно понятная документация и множество примеров кода для поиска. Кроме того, он поставляется с приличным количеством плагинов для всех видов использования, которые могут дополнять ваш ИИ.

Ответ 4

Как я отвечаю ~ 2 года спустя, я пишу это только для гуглеров: -P

Просто попробуйте мой "Еще один бесполезный IRC Bot" здесь https://github.com/julienpalard/yauib, позволяющий вам кодировать каждую функцию вашего бота, используя любой язык, который вы хотите.

Ответ 5

Я сделал (очень дерьмовый и долгое время рефакторировался) IRC-бот, используя irclib. Документация не соответствует действительности, но она избавляет вас от необходимости делать все, что сокет подключения и т.д., Что я не хочу иметь дело. Тем не менее каждый из них.

Ответ 6

Используйте существующую библиотеку IRC вместо того, чтобы выполнять протокол самостоятельно.