James Lu
2ca9de2ea8
PyLinkNCWUtils: make the allowAuthed, allowOper options to is_oper no-ops
2018-06-11 23:55:19 -07:00
James Lu
18f108c328
PyLinkNCWUtils: remove check_authenticated() ( #422 )
2018-06-11 23:54:48 -07:00
James Lu
ed5d46e28a
utils: remove deprecated is* functions
2018-06-11 23:48:12 -07:00
James Lu
a30921eeb8
classes: remove irc.conf ( #422 )
2018-06-11 23:44:59 -07:00
James Lu
3bea214cb0
classes: remove irc.botdata ( #422 )
2018-06-11 23:43:57 -07:00
James Lu
2e3317ce07
relay: explicitly mention forwarding in relayed kill messages ( #520 )
2018-06-11 19:26:52 -07:00
James Lu
7d56b30582
opercmds: skip verbose formatting of kill reasons for internal targets ( #520 )
2018-06-11 19:26:51 -07:00
James Lu
5ecbc2750e
exec: fix textwrap error caused by passing the wrong type to reply()
2018-06-11 19:26:51 -07:00
James Lu
1a97a32ef5
ircs2s_common: return just the kill reason as text in kill parsing ( #520 )
2018-06-11 19:26:42 -07:00
James Lu
93fef9b923
relay: use match_text() to check forcetag_nicks globs
2018-06-11 18:51:30 -07:00
James Lu
73d0e153cf
relay: support relaying kills ( #520 )
...
Instead of always bouncing, kills to a relay client are now handled as follows:
1) If the target and source networks are both in any killshare pool, relay the kill entirely
2) Otherwise, iterate over all channels the kill target is in:
3) If the killer has claim access in a channel, forward the KILL as a kick
4) Otherwise, bounce the kill (so far, silently)
TODO: kill messages are currently very cluttered, we should make our parser deliver more concise strings...
* GL|unreal has quit (Killed (chary.relay (KILL from GL/chary: Killed (GL (test)))))
2018-06-11 18:34:52 -07:00
James Lu
9466813ba1
relay: switch to a flexible, pool-based configuration scheme for IP sharing
...
This deprecates the "relay::show_ips" and network-specific "relay_no_ips" options, replacing it with the "relay::ip_share_pools" list.
2018-06-11 17:29:29 -07:00
James Lu
5f9904126a
log: drop client-in-channel requirement for channel logging
2018-06-11 17:26:04 -07:00
James Lu
17ffd1f640
automode: log mass-removals to INFO as well
2018-06-10 14:36:40 -07:00
James Lu
372e7fb405
automode: send delacc confirmations from the right client
...
Also bold some parts of the output for easier viewing.
2018-06-10 14:31:56 -07:00
James Lu
8608c72b16
automode: allow removing entries by entry numbers
...
Closes #506 .
This isn't the most efficient implementation because Automode entry lists are actually unordered...
So far we're relying on consistent sorting of entries between LISTACC and DELACC, and indrectly removing entries by comparing the entry list with remove_range's output.
2018-06-09 23:12:37 -07:00
James Lu
c919c523dc
utils: add remove_range()
...
"""
Removes a range string of (one-indexed) items from the list.
Range strings are indices or ranges of them joined together with a ",":
e.g. "5", "2", "2-10", "1,3,5-8"
See test/test_utils.py for more complete examples.
"""
2018-06-09 17:03:40 -07:00
James Lu
f8e3cfa346
antispam: strip IRC formatting by default before processing
...
Closes #615 .
2018-06-09 16:22:14 -07:00
James Lu
ebf7443d97
antispam: add a "block" verb, and make textfilter use it by default
...
Closes #616 .
2018-06-09 16:22:14 -07:00
James Lu
de62b2e77a
utils: add strip_irc_formatting()
2018-06-09 16:22:14 -07:00
James Lu
f9d21c2b10
UserMapping: fix wrong args to __copy__
2018-06-09 10:44:36 -07:00
James Lu
0ae7eb2563
relay_clientbot: allow overriding clientbot styles by network
...
Closes #455 .
2018-06-08 19:15:47 -07:00
James Lu
b1248524a9
relay: raise an error when trying to delink a leaf channel from another leaf network
...
Previously this would (confusingly) delink the channel from the network the command was called on instead of the intended target.
2018-06-08 18:45:45 -07:00
James Lu
31a0d36990
clientbot: ignore missing args in 324 / RPL_CHANNELMODEIS
...
Fixes #537 .
2018-06-08 18:45:20 -07:00
James Lu
180da83b4e
global: reply with a confirmation
...
We can also use this space to show the number of channels and networks announced to.
2018-06-08 18:28:41 -07:00
James Lu
f82ddb5336
global: allow configuring channels to exempt from announcements
...
Closes #453 .
2018-06-08 18:25:23 -07:00
James Lu
0edbeb7fad
global: do not allow sending empty messages
2018-06-08 18:25:23 -07:00
James Lu
f4de604b7d
classes: split match_host() into match_host() and match_text()
2018-06-08 18:25:23 -07:00
James Lu
6085b21e48
antispam: normalize logging format in handle_masshighlight
2018-06-08 17:54:32 -07:00
James Lu
10416013e8
example-conf: mention how kick, ban, etc. won't work for non-channel specific events
2018-06-08 17:54:03 -07:00
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
b0188dab92
get_friendly_name: strip STATUSMSG prefixes before checking is_channel
2018-06-08 17:26:25 -07:00
James Lu
7b744655ee
Merge branch 'devel' into wip/antispam-textfilters
2018-06-08 15:57:40 -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
6f3813d3a4
UserMapping: add in missing reference to the parent irc instance
2018-06-08 15:54:06 -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
88bd9b2791
relay: oops, the op check in 'link' should be specific to clientbot
...
(cherry picked from commit d4bf407c5d
)
2018-06-07 13:46:01 -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
141e941fcd
relay: check permissions before clientbot op status to prevent arbitrary join triggers
2018-06-07 13:20:30 -07:00
James Lu
9578fd5ac3
relay: fix clientbot op requirement not being checked if the sender is in the target channel
2018-06-07 13:19:53 -07:00
James Lu
1e0b0dbc70
relay: part the PyLink service bot after relaying other parts on 'delink'
...
This prevents these messages from being overriden by the "Clientbot was force parted" one if the IRCd responds too quickly.
2018-06-07 13:07:51 -07:00
James Lu
e76c48f24c
Initial config skeleton for antispam text filters ( #359 )
2018-06-02 01:05:00 -07:00
James Lu
5b94a10c67
example-conf: rewrap antispam section, typo fix
...
[skip ci]
2018-06-02 00:57:26 -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
186b73c72d
example-conf: more wording tweaks
2018-06-02 00:15:26 -07:00
James Lu
df6562dcff
example-conf: add antispam to the available plugins list
2018-06-02 00:09:52 -07:00
James Lu
cb774ac3da
example-conf: document antispam::exempt_level
2018-06-02 00:07:20 -07:00
James Lu
e65d84960a
antispam: make punishments method-specific
2018-06-02 00:06:21 -07:00