James Lu
18bc1942e5
antispam: implement text filters with optional PM spam checks
...
Also refactor the _punish code to account for events without a channel attached.
Closes #359 .
2018-06-08 17:49:26 -07:00
James Lu
8cc838e5ca
relay: allow "relay.link.force_ts" as an alternate permission to 'link --force'
2018-06-08 15:56:42 -07:00
James Lu
06d57a5b28
relay: rename 'link --force' to 'link --force-ts' to better reflect its purpose
...
Also mention explicitly that this option does not bypass LINKACL and other channel restrictions (e.g. the Clientbot one)
2018-06-07 13:48:38 -07:00
James Lu
d4bf407c5d
relay: oops, the op check in 'link' should be specific to clientbot
2018-06-07 13:44:37 -07:00
James Lu
b202954be4
relay: check permissions before clientbot op status to prevent arbitrary join triggering
...
This mirrors the fix in 1.x: commit 141e941fcd
2018-06-07 13:39:16 -07:00
James Lu
fee64ece04
relay: fix clientbot op requirement not being checked if the sender is in the target channel
...
Also, show a slightly different error when using the command with 'remote', since the clientbot client gets overridden to be the message sender.
This mirrors the fix in 1.x: commit 9578fd5ac3
2018-06-07 13:38:52 -07:00
James Lu
b120e2d701
antispam: allow individual punishments to fail gracefully when not supported
2018-06-02 00:31:14 -07:00
James Lu
e65d84960a
antispam: make punishments method-specific
2018-06-02 00:06:21 -07:00
James Lu
83aa3d262c
antispam: allow masshighlight blocking to be disabled
2018-06-01 23:48:22 -07:00
James Lu
62fcdf880c
relay: support setting freeform channel descriptions for LINKED
...
Closes #576 .
2018-06-01 23:03:31 -07:00
James Lu
32acc27967
relay: tweak the "wrong network" error message for claim, modedelta
2018-06-01 22:48:13 -07:00
James Lu
c8b2a676fd
relay: rename CHANNEL_DELINKED_PARTMSG -> CHANNEL_DELINKED_MSG
2018-05-30 12:45:20 -07:00
James Lu
08a7b5c837
relay: remove our persistent channels on unload
2018-05-30 12:43:59 -07:00
James Lu
f20fa5e995
Add User.get_fields(), and rework plugins to fix $nick broken expansions
...
User.nick is no longer a writable attribute since a085aed924
, so it won't show up in __dict__ now.
get_fields() replaces the User.__dict__ hack various plugins used and also provides some new expansion variables:
- $sid and $server expand to the server ID and name respectively
- $modes and $channels are now preformatted strings
- $netname expands to the network name
$manipulatable and $_irc were removed since their values aren't quite meaningful as strings
2018-05-26 02:12:38 -07:00
James Lu
2df3dc280c
commands.showuser: show home server and TS as "N/A" if they are spoofed values
2018-05-26 01:14:32 -07:00
James Lu
ec3a94c4ca
Move U:line checking into core as PyLinkNCWUtils.is_privileged_server()
...
Closes #604 .
2018-05-26 00:14:04 -07:00
James Lu
73261a31bd
opercmds: forbid killing the main PyLink client
2018-05-21 02:37:53 -07:00
James Lu
c9c937e7a7
relay: block networks not on the claim list from merging in modes when relinking
...
This can cause channels to be inadvertently set modes that it shouldn't be on a relink (e.g. modes set by services DEFCON), since relay ignores modes from defined u-lines instead of bouncing them.
2018-05-21 00:09:57 -07:00
James Lu
1fb2a90580
relay: log rejected links due to LINKACL to WARNING
...
Closes #609 .
2018-05-20 22:17:23 -07:00
James Lu
0ac5d424d8
core: implement text wrapping in irc.msg()
...
Closes #153 .
2018-05-11 14:38:21 -07:00
James Lu
741e2c8ece
relay: allow claim to be disabled by default on new channels
...
Closes #581 .
2018-05-11 13:26:13 -07:00
James Lu
fc275cfdca
relay: remove service bots joined persistently when the home network disconnects
2018-05-11 13:21:16 -07:00
James Lu
aa4cedd945
relay: allow default LINKACL mode to be configured as an option ( #394 )
2018-05-11 13:09:54 -07:00
James Lu
fb6aa88d83
Merge branch 'relay-linkacl-whitelist' into devel
...
Closes #394 .
2018-05-11 12:58:45 -07:00
James Lu
613e6412a2
networks.remote: properly error if the target service is not available on the target network
...
Closes #554 .
2018-05-10 16:06:16 -07:00
James Lu
30c1980b59
relay: consistently use bold instead of repr in LINKACL output
2018-05-09 23:33:00 -07:00
James Lu
0ae4aea133
relay: add a whitelist mode for LINKACL ( #394 )
2018-05-09 23:29:56 -07:00
James Lu
64a98120bf
relay: remove references to deprecated irc.proto
2018-05-09 22:44:17 -07:00
James Lu
b50ae89acc
relay: check service bot status before remote user presence
...
add_persistent_channels() is usable regardless of whether the service bot is ready, so we do not need to break if the remote copy of the service bot doesn't exist.
Closes #606 .
2018-05-09 21:44:04 -07:00
James Lu
f3c2149d7a
relay: fix variable confusion when managing service bots
...
We should be checking for service bot presence locally, and applying changes on the *remote* network.
2018-05-09 21:34:17 -07:00
James Lu
0c19b3719e
automode: clarify comments to main() slightly
2018-05-09 21:29:20 -07:00
James Lu
2f6c8d2938
Revert "relay: shortcut get_remote_user some more; only grab spawn lock if the user doesn't exist"
...
This seems to have caused sporadic duplicate user spawns once more (#602 )
This reverts commit 0bc24c94b2
.
2018-05-05 23:17:24 -07:00
James Lu
5a0cb9a4ff
automode: add/remove persistent channels on set/del/clearacc
2018-05-05 21:51:27 -07:00
James Lu
8aa67b93fa
automode: also rejoin DB channels on reload
2018-05-05 21:10:08 -07:00
James Lu
bf4863eb6d
relay, ServiceBot: remove dead code
2018-05-05 13:20:55 -07:00
James Lu
72c2fa38e9
relay: consistently use "Channel delinked." as part message for service bots too
2018-05-05 13:19:57 -07:00
James Lu
61d7bf18d3
relay: also attempt to part the PyLink service bot on delink
2018-05-05 13:15:17 -07:00
James Lu
92be421fad
relay: attempt to remove persistent channels on delink as well
...
Also, wrap remove_persistent_channel calls with a try/except when they may fail.
2018-05-05 12:57:17 -07:00
James Lu
8994811f54
relay: further fixes for persistent channels
...
Also, merge the 'relay_local' and 'relay_remote' namespaces into one.
2018-05-05 12:52:00 -07:00
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