Простой клиент IRC (Internet Relay Chat), написанный на Python 2.
Особая благодарность Илие Чебану (https://github.com/NotQuiteMelvin) за версию Python 3.
Чтобы присоединиться к любому каналу (на Freenode) с выбранным именем пользователя, просто запустите irc_client.py и укажите желаемое имя пользователя в качестве первого аргумента, а затем имя канала (с последующим # или без него):
./irc_client.py myusername channeltojoin
или
./irc_client.py myusername #channeltojoin // actually not working :)
Кажется, что передача имени канала со следующим # сценарием разрыва, поскольку Python рассматривает # как начало комментария?
Вот как это выглядит сейчас (левая консоль: irc_client.py, правая консоль: irssi):
Я добавил версию, скомпилированную в файл байт-кода Python (с расширением .pyc). Компиляция осуществляется командой:
$ python -m compileall irc_client.py
Возможно, было бы полезно получить двоичную версию вместо исходного кода.
многострочные сообщения не работают (связано с отсутствием ответа от сервера, когда другой пользователь не отправляет сообщение)
вывод иногда искажается сообщениями сервера (например, PING)
отсутствие UX - можно отправлять только простые однострочные сообщения :)
irc.freenode.net (сервер) и порт 6667 жестко запрограммированы, но их можно легко добавить в качестве аргументов.
имя канала должно быть передано без начала #
красочный вывод (TBD)
https://en.wikipedia.org/wiki/Internet_Relay_Chat
RFC 1459 (протокол интернет-релейного чата)
https://tools.ietf.org/html/rfc1459
Справочник по кодам ответов IRC-сервера
https://www.alien.net.au/irc/irc2numerics.html
RFC 2812 (Интернет-релейный чат: клиентский протокол):
https://tools.ietf.org/html/rfc2812
Другие ресурсы:
http://chi.cs.uchicago.edu/chirc/irc_examples.html
http://books.msspace.net/mirrorbooks/irchacks/059600687X/irchks-CHP-13-SECT-2.html