JustAnotherArchivist
a27bc20340
Add support for INVITE after getting KICKed from a channel
2 years ago
JustAnotherArchivist
7c3707aeed
Fix NameError crash on quitting
2 years ago
JustAnotherArchivist
471c308c1f
Fix maxrequestsize config check logic
2 years ago
JustAnotherArchivist
9c90ee443d
Revert "Only rebind web server on host/port changes"
This was a todo item from irclog, which has an extra value in config['web'] whose changes do not require a rebind.
This reverts commit 69e9daddec
.
2 years ago
JustAnotherArchivist
3cc32cbc41
Add configurable request size limit
2 years ago
JustAnotherArchivist
619089f071
Validate nickname against RFC 2812 rules
2 years ago
JustAnotherArchivist
454b9acc2d
Add DeprecationWarning for auth
2 years ago
JustAnotherArchivist
69e9daddec
Only rebind web server on host/port changes
2 years ago
JustAnotherArchivist
33dfff166c
Let modules suppress messages by returning None
2 years ago
JustAnotherArchivist
ecfa851eed
Fix crash on attempting to send to an unjoined channel
2 years ago
JustAnotherArchivist
86301905a6
Gracefully handle channel bans and other join errors
2 years ago
JustAnotherArchivist
b66657b3e6
Separate POST and GET auth
Backwards-incompatible change: setting either of these to `false` means that all POST or GET requests are denied. (In practice, supporting unauthenticated requests were a bad idea anyway.)
2 years ago
JustAnotherArchivist
f6bb9374a7
Add support for listening to channel activity via GET
2 years ago
JustAnotherArchivist
a21b87dd00
Refactor auth/path handling in preparation for GET stream
2 years ago
JustAnotherArchivist
bdb396caff
Merge changes from irclog
Port to ircstates/irctokens, more capabilities, IRC family config, fix various small bugs
2 years ago
JustAnotherArchivist
a775c2a0f1
Fix crash due to missing time import
3 years ago
JustAnotherArchivist
007c50fbc8
Add /status endpoint for monitoring (cf. irclog commit 5b809b1b)
3 years ago
JustAnotherArchivist
899cc26dd3
Fix crash if the data is split between CR and LF (cf. irclog commit 68c577bc)
3 years ago
JustAnotherArchivist
1548246b08
Fix memory leak due to asyncio tasks not being cancelled (cf. irclog commit 50a8b798)
3 years ago
JustAnotherArchivist
e8b54c6ec0
Fix missing f-string marker
3 years ago
JustAnotherArchivist
4f2d8c6cb5
Log exception type on process errors
4 years ago
JustAnotherArchivist
e34772fb70
Fix crash in IRCClientProtocol.send_messages due to missing overlongmode in unconfirmedMessages
4 years ago
JustAnotherArchivist
f1275fc7ca
Evaluate module paths relative to the config file or the code path
4 years ago
JustAnotherArchivist
b9b2eedcaf
Evaluate client cert paths relative to config file
4 years ago
JustAnotherArchivist
98f8821fda
Add option to truncate overlong messages instead of splitting them
4 years ago
JustAnotherArchivist
4d0a4c8c8e
Log request body
4 years ago
JustAnotherArchivist
6c358a207c
Clean up duplicate encoding
4 years ago
JustAnotherArchivist
609829bf55
Track usermask and account for it in the message splitting
Since the ircd will prefix each message with the origin usermask when broadcasting to the other users, it will have to split or truncate the message sent by the user. Charybdis and ratbox silently truncate it.
4 years ago
JustAnotherArchivist
46d48a480c
Tighten length limit for channel names according to RFC 1459
4 years ago
JustAnotherArchivist
843775e948
Crash loudly if an IRC message is too long despite all the checks and splits
4 years ago
JustAnotherArchivist
8f8e7cb0ed
Ensure that everything fits into IRC's line length limit or split up accordingly
4 years ago
JustAnotherArchivist
8f84c2a81c
Handle various possible error messages from the IRC server
4 years ago
JustAnotherArchivist
aa375f81c0
Validate IRC channel name
4 years ago
JustAnotherArchivist
383637ec05
Validate maps
4 years ago
JustAnotherArchivist
471290356d
Switch from CertFP to the more reliable and secure SASL EXTERNAL
4 years ago
JustAnotherArchivist
ffee32980d
Clean up logging
4 years ago
JustAnotherArchivist
d00c59e6bc
Add a way to pass additional arguments into the module
4 years ago
JustAnotherArchivist
a91e61b84c
Add support for transformation/translation modules that do arbitrary request processing to generate the message
Fixes #3
4 years ago
JustAnotherArchivist
ca525c6b84
Support web server config changes
4 years ago
JustAnotherArchivist
7fcf7d5f0e
Make logging configurable through config file
4 years ago
JustAnotherArchivist
5077db0a6b
Fix InvalidStateError in MessageQueue when the IRC server closes the connection
4 years ago
JustAnotherArchivist
859146621a
Get rid of the SimpleNamespace for configuration since it complicates config change detection
SimpleNamespace's documentation does not say anything about equality tests, which is why the update_config methods checked the relevant values using a tuple instead. But as more config values are added, this makes the comparisons unnecessarily long. A dict simplifies this. As a side-effect, the constraints of the maps keys being a valid identifier are no longer relevant either.
4 years ago
JustAnotherArchivist
8f069ccac1
Catch config errors on reload
4 years ago
JustAnotherArchivist
a888c9b9cb
Wait for connection registration before trying to join channels and send messages
4 years ago
JustAnotherArchivist
86746f55a0
Handle prefixed messages from the server
4 years ago
JustAnotherArchivist
03dfcf3e79
Add CertFP support
4 years ago
JustAnotherArchivist
542cdb7140
Use plain text message payloads instead of JSON
4 years ago
JustAnotherArchivist
abe75596c8
Fix usage string
4 years ago
JustAnotherArchivist
8e5fbe765d
Confirm message delivery by periodic PINGs
This assumes that a PONG response from the server means the connection is still intact. The messages could still have been dropped for weird reasons, but short of using a second client to confirm the delivery directly, there is no better option to test this.
RFC 1459 actually specifies that "servers should not respond to PING commands". However, this recommendation has been removed in RFC 2812, and in practice, all common IRC servers seem to respond to PINGs.
4 years ago
JustAnotherArchivist
e9a7780450
Refactor into more flexible tool supporting multiple endpoints and channels (nodeping2irc -> http2irc) with no-downtime config changes using a TOML config file and SIGUSR1 to reload and adapt accordingly
4 years ago