nemubot/nemubot/server
Pierre-Olivier Mercier 6ae1a73f15
Some checks failed
continuous-integration/drone/push Build is failing
server: Replace hand-rolled IRC with irc (jaraco) library
Switch the IRC server implementation from the custom socket-based parser
to the irc Python library (SingleServerIRCBot), gaining automatic
exponential-backoff reconnection, built-in PING/PONG handling, and
nick-collision recovery for free.

- Add IRCLib server (server/IRCLib.py) extending ThreadedServer:
  _IRCBotAdapter wraps SingleServerIRCBot with a threading.Event stop
  flag so shutdown is clean and on_disconnect skips reconnect when
  stopping. subparse() is implemented directly for alias/grep/rnd/cat.
- Add IRCLib printer (message/printer/IRCLib.py) calling
  connection.privmsg() directly instead of building raw PRIVMSG strings.
- Update factory to use IRCLib for irc:// and ircs://; SSL is now
  passed as a connect_factory kwarg rather than post-hoc socket wrapping.
- Add irc to requirements.txt.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-06 21:42:32 +07:00
..
message Try to restaure frm_owner flag 2017-07-19 10:36:27 +02:00
__init__.py server: Replace hand-rolled IRC with irc (jaraco) library 2026-03-06 21:42:32 +07:00
abstract.py In debug mode, display the last stack element to be able to trace 2018-01-14 19:19:02 +01:00
DCC.py Replace logger by _logger in servers 2018-01-14 19:18:59 +01:00
factory_test.py server: Rework factory tests 2018-01-14 19:18:59 +01:00
IRC.py servers: use proxy design pattern instead of inheritance, because Python ssl patch has benn refused 2018-01-14 19:18:59 +01:00
IRCLib.py server: Replace hand-rolled IRC with irc (jaraco) library 2026-03-06 21:42:32 +07:00
Matrix.py matrix: Add Matrix server support via matrix-nio 2026-03-06 15:53:24 +07:00
socket.py Try to connect multiple times (with different servers if any) 2023-01-17 21:55:25 +01:00
test_IRC.py Fix abstract name of to_server_string function 2015-10-19 17:15:42 +02:00
threaded.py server: Add threaded server implementation 2026-03-06 15:47:41 +07:00