diff --git a/README.md b/README.md index e282ffa..528f4de 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ retr0chat is the lightweight, no-dependencies, runs-anywhere solution for when l * tries to be irssi * zero dependencies on python 2.6, 2.7, 3.x * supports telnet, netcat, /dev/tcp, TLS clients -* is not an irc server, but can bridge to/from irc servers +* is not an irc server, but can [bridge to/from irc servers](#irc) * [modem-aware](https://ocv.me/r0c-2400.webm); comfortable at 1200 bps * fallbacks for inhumane conditions * linemode @@ -31,6 +31,7 @@ retr0chat is the lightweight, no-dependencies, runs-anywhere solution for when l * 1980: [TVI 920C](https://a.ocv.me/pub/g/nerd-stuff/r0c-tvi-920c.jpg) * 1987: [IBM 3151](https://a.ocv.me/pub/g/nerd-stuff/r0c-ibm-3151.jpg) (also [video](https://a.ocv.me/pub/g/nerd-stuff/r0c-ibm-3151.webm)), using gnu-screen to translate VT100 sequences +* 1993: [windows 3.11](https://a.ocv.me/pub/g/nerd-stuff/r0c-for-workgroups.png) ## features @@ -48,7 +49,7 @@ technical: * history of sent messages (arrow-up/down) * bandwidth-conservative (push/pop lines instead of full redraws; scroll-regions) * fast enough; 600 clients @ 750 msgs/sec, or 1'000 cli @ 350 msg/s -* bridge several irc channels from several networks into one r0c channel +* [bridge](#irc) several irc channels from several networks into one r0c channel ## windows clients @@ -108,6 +109,22 @@ you can run it as a service so it autostarts on boot: * on alpine / gentoo: [openrc service](docs/openrc/r0c) * on windows: [nssm](https://nssm.cc/) probably +## irc + +if you want to connect your r0c instance to an irc network and bridge channels between them, you can do that: + +![screenshot of a r0c channel being bridged to an irc channel](docs/r0c-irc.png) + +```bash +python3 r0c.py --ircn a,127.0.0.1,6667,r0c --ircb a,chat,g +``` + +run that command to start r0c with irc bridging enabled; r0c will then connect to an irc server (which we nicknamed `a`) on `127.0.0.1:6667` with the irc-nick `r0c` and bridge the irc-channel `#chat` with the r0c-channel `#g` + +if you then start an irc server locally, for example [miniircd](https://github.com/jrosdahl/miniircd/blob/master/miniircd) by running `python3 miniircd --verbose` then you're all set, people can now join r0c by connecting via irc + +to bridge additional channels on the same network, add more `--ircb` args, for example `--ircb a,tech,tech` like in the screenshot, and optionally add more networks with `--ircn` + ## firewall rules skip this section if: diff --git a/docs/r0c-irc.png b/docs/r0c-irc.png new file mode 100644 index 0000000..40754bf Binary files /dev/null and b/docs/r0c-irc.png differ diff --git a/r0c/__version__.py b/r0c/__version__.py index 69ad225..43dd8fb 100644 --- a/r0c/__version__.py +++ b/r0c/__version__.py @@ -1,5 +1,5 @@ -VERSION = (1, 6, 0) -BUILD_DT = (2024, 4, 4) +VERSION = (1, 6, 1) +BUILD_DT = (2024, 4, 27) S_VERSION = u".".join(map(str, VERSION)) S_BUILD_DT = u"{0:04d}-{1:02d}-{2:02d}".format(*BUILD_DT) diff --git a/r0c/user.py b/r0c/user.py index 9720867..ae606cd 100644 --- a/r0c/user.py +++ b/r0c/user.py @@ -149,7 +149,7 @@ class User(object): # the messy version text = u""" `1;30m______ `37m_`30m ______ -`1;30m\\\\\\\\\\\\\\ `37m/ \\ `30m/////// `0mret`1mr0c`22mhat r0c_ver `36m----- +`1;30m\\\\\\\\\\\\\\ `37m/ \\ `30m/////// `0mret`1mr0c`22mhat r0c_ver `36m--- `1;30m\\\\ `36m/`37m^^ | | `36m/^`0;36m^`1;30m // `0mgithub.com/9001/r0c `1;30m\\ `0;36m| `1m\\_/ `0;36m\\__ `1;30m/ `0;36m------b. r0c_build `0m """ diff --git a/test/stress.py b/test/stress.py index 130eeca..81fcf91 100644 --- a/test/stress.py +++ b/test/stress.py @@ -4,7 +4,6 @@ from __future__ import print_function import builtins import multiprocessing -import threading import socket import struct import signal @@ -179,6 +178,10 @@ class Client(object): util.Daemon(self.rx_loop) util.Daemon(self.tx_loop) + def close(self): + self.stopping = True + self.sck.close() + def send_status(self, txt): if False: print(txt)