James Lu
e9fe15bd7d
[WIP] Further revise the persistent channels implementation
...
- Make dynamic_channels per plugin as well as per network to work around relay-service conflicts (#265 )
- Introduce ServiceBot.(add|remove)_persistent_channel() to add/remove persistent channels and optionally join/part them
- Introduce ServiceBot.part(), which checks remaining persistent channels list and parts a channel only if it is still not marked persistent
- Refactor automode to autojoin channels on ENDBURST instead of plugin load
- Refactor relay to manage persistent channels on join/part/(de)init, both locally (namespace 'relay_local') and remotely (namespace 'relay_remote')
2018-05-04 22:52:26 -07:00
James Lu
af744123e6
automode: join channels regardless of whether they're empty
2018-04-20 19:35:06 -07:00
James Lu
281ac7aa31
antispam: add a workaround for clientbot support ( #359 )
2018-04-14 11:40:19 -07:00
James Lu
47052a3bba
antispam: use kick+ban as default punishment
2018-04-13 22:18:41 -07:00
James Lu
3e07239db4
antispam: don't kill users if they quit after previous punishments
2018-04-13 22:18:03 -07:00
James Lu
dd8f9411b6
antispam: filter protection-triggering messages from reaching other plugins ( #359 )
2018-04-13 22:15:24 -07:00
James Lu
3825b93dee
Initial pass of a mass-highlight blocking plugin ( #359 )
2018-04-13 22:08:37 -07:00
James Lu
4cdc19ac78
relay: fix is_internal_client call
2018-04-13 20:31:56 -07:00
James Lu
2f12a5b710
Initial work on dynamic service bot joining / parting ( #265 )
2018-04-12 12:45:33 -07:00
James Lu
2cb4a06e64
commands: report times in showuser, showchan in UTC
...
XXX: we could perhaps use abstraction to this since we're repetitively chaining commands
XXX: 'ts' is not type-safe yet, some protocol modules are storing it as a string?!
2018-04-12 10:58:09 -07:00
James Lu
f75b1eb356
Rename servers::<netname>::server_suffix -> servers::<netname>::relay_server_suffix
2018-04-03 17:43:02 -07:00
James Lu
9d21a5269f
relay: speed up shutdowns by not manually splitting off every relay server
...
The connection will soon be gone anyways, so this is fairly pointless.
2018-03-30 12:06:45 -07:00
James Lu
c978e1c52f
relay: fix a typo: CLIENTBOT_WHITELISTED_UMODES -> CLIENTBOT_WHITELISTED_CMODES
2018-03-30 12:01:38 -07:00
James Lu
0bc24c94b2
relay: shortcut get_remote_user some more; only grab spawn lock if the user doesn't exist
2018-03-24 00:31:15 -07:00
James Lu
bbb36cd956
relay: reuse get_relay_server_sid output when bursting groups of users
2018-03-24 00:25:05 -07:00
James Lu
ec8f744449
relay: only look up nick once in normalize_nick
2018-03-22 22:45:40 -07:00
James Lu
180bfa9917
relay: don't spam ulines with "notice failed" errors
2018-03-17 10:27:56 -07:00
James Lu
5bffe67416
relay: bandaid patch for freezes on startup when there are a ton of networks
...
The side effect of this patch is that it makes large bursts *really* CPU intensive. A proper fix for this will hopefully be introduced in the future.
2018-03-11 21:26:37 -07:00
James Lu
b7b49769e0
relay: silently abort if a network splits while we try to spawn a server or client
2018-03-11 21:25:42 -07:00
James Lu
5733418380
relay_cb: bandaid fix to prevent STATUSMSG messages from being interpreted as non-channel specific
2018-03-10 19:54:33 -08:00
James Lu
b6bac994c6
servermaps: show the uplink server name for Clientbot links
2018-03-07 22:28:34 -08:00
James Lu
c49147f232
stats: route permission error replies to notice and not privmsg
...
This prevents "unknown command" flood loops with stats services which poll these on link.
2018-03-04 12:11:50 -08:00
James Lu
57f77c676d
relay: don't show the network name when routing kicks through a server
...
This is redundant, as relay has always spawned subservers for quite some time now.
2018-03-02 21:42:25 -08:00
James Lu
d172831805
conf: rename methods to snake case ( #523 )
2018-03-02 20:23:48 -08:00
James Lu
87fdb1dde1
opercmds: migrate from utils.isServerName to irc.is_server_name
2018-03-02 20:23:47 -08:00
James Lu
3e656cd943
utils: mark reset_module_dirs, load_plugin, get_protocol_module as private
2018-03-02 20:23:47 -08:00
James Lu
1cdf16f5c9
various: migrate utils.loadPlugin, getProtocolModule, resetModuleDirs calls to snake-case ( #523 )
2018-03-02 20:23:47 -08:00
James Lu
bea2ea8ebd
plugins, coremods: migrate (un)registerService calls to snake case ( #523 )
2018-03-02 20:23:47 -08:00
James Lu
1c3f71ac1b
servermaps: assign servermaps.localmap to all opers
2018-03-02 16:18:55 -05:00
James Lu
d5d94f86e8
servermaps: split into two perms (servermaps.map and servermaps.localmap)
2018-03-02 16:14:04 -05:00
James Lu
e8e26daf05
ctcp: fix wrong logging format for unknown CTCPs
2018-03-01 02:48:04 -05:00
James Lu
5d25b3c105
ctcp: remove extraneous keyword argument
...
private is not defined in irc.msg()
2018-02-25 14:29:19 -05:00
James Lu
3c0809dce0
ctcp: don't use irc.reply in hook functions
...
This is undefined behaviour because nothing in this stack actually updates the 'last caller' variables irc.reply() use.
2018-02-24 14:19:57 -05:00
James Lu
5c9639b4a9
opercmds: alias 'trace' to checkban
2018-02-21 00:12:08 -08:00
James Lu
9cdb224c02
Replace use of conf.conf['bot'] with conf.conf['pylink']
2018-02-18 23:26:39 -08:00
James Lu
c40250330d
ctcp: log the service bot receiving CTCP messages
2018-02-18 23:13:44 -08:00
James Lu
e68db3689d
Rewrite the CTCP plugin
...
- Extend CTCP replies to all service bots - closes #468 .
- Use a generic hook handler instead of wrapping around the commands handler (#407 ).
This code takes advantage of the hook suppression feature introduced in 2e66b9bde6
(#547 ).
2018-02-18 23:11:36 -08:00
James Lu
4a01948647
relay: oops, multiple STATUSMSG prefixes should pick the lowest, not highest ( #570 )
...
This behaviour really isn't consistent across IRCds though...
- Unreal, Hybrid, and charybdis mangle messages at the server side to use the lowest prefix
- InspIRCd throws a "No such nick/channel" error
- Nefarious silently drops messages with multiple prefixes?
2018-02-18 22:29:16 -08:00
James Lu
81bd1e8474
relay: add basic support for STATUSMSG ( #570 )
...
So far, this code only knows about changing prefixes while keeping mode characters as-is.
A complete but longer solution would be to actually go through irc.cmodes, but I don't
think doing so is necessary given how little STATUSMSG is actually used in production.
2018-02-18 22:03:12 -08:00
James Lu
3f7e2328fe
relay: make endburst delay configurable
...
Also, raise the default to 10 seconds.
2018-02-10 15:53:49 -08:00
James Lu
a425f873b5
relay, inspircd: move endburst delay code to a private API
...
This is a very specific hack that shouldn't be extended across the protocol module spec. So far, all other protocol modules ignore the endburst_delay option anyways.
2018-02-10 15:34:07 -08:00
James Lu
ccbd79a95c
relay: fix KeyError when a local client is kicked from a claimed channel
...
Fixes #572 .
2018-02-10 15:12:40 -08:00
James Lu
28a62f629a
automode: replace assert usage with proper exceptions
2018-01-22 08:17:20 -08:00
James Lu
09c8b03705
automode: fix handling of channels with multiple #'s in them
2018-01-22 08:15:04 -08:00
James Lu
5fd216c720
commands: fix 'showchan' displaying status prefixes in reverse
2018-01-22 08:10:55 -08:00
James Lu
8000d51453
Split the 'raw' command into a new plugin
...
Closes #565 .
2018-01-21 13:50:37 -08:00
James Lu
7a51220309
relay: match P10 WALL* commands as notices
2018-01-08 20:56:06 -08:00
James Lu
ec9063b9e8
Revert "relay: differentiate between PRIVMSG vs. NOTICE via a blacklist"
...
This reverts commit d81a9cd5c3
.
2018-01-08 20:56:06 -08:00
James Lu
60c05af9ed
relay: allow defining server-specific nicks to always tags
...
Closes #564 .
2017-12-30 01:22:24 -08:00
James Lu
c62580d228
bots: don't allow 'spawnclient' on protocols where it is stubbed
2017-12-22 12:28:27 -08:00