3
0
mirror of https://github.com/jlu5/PyLink.git synced 2024-12-30 14:42:50 +01:00
Commit Graph

974 Commits

Author SHA1 Message Date
James Lu
5f9365a521 relay, inspircd: add support for blockhighlight +V 2017-12-21 21:18:20 -08:00
James Lu
d01b9aaa23 relay: improve fallback KNOCK notices
- Show the network that the /knock originated from (it is *not* obvious when we have a user with no relay client)
- Specifically hint that users with no relay client cannot be invited directly because there is no client to actually /invite!
- Prefer sending the notice to %#channel when halfops are available, as they usually have the power to /invite
2017-12-21 01:57:43 -08:00
James Lu
2df608307d relay: block sending STATUSMSG messages to IRCds not supporting them 2017-12-21 01:41:01 -08:00
James Lu
d81a9cd5c3 relay: differentiate between PRIVMSG vs. NOTICE via a blacklist
This is so that P10 WALL* commands are forwarded correctly as notices instead of privmsgs.
2017-12-21 01:27:34 -08:00
James Lu
63f3cdaea8 relay: add knock forwarding support 2017-12-21 00:19:09 -08:00
James Lu
ab91acb2f7 relay_clientbot: rename isRelayClient => is_relay_client() 2017-12-18 13:23:53 -08:00
James Lu
954f4f9886 relay: capitalize constants related to modes 2017-12-18 13:23:16 -08:00
James Lu
0104462782 relay: whitelist cmodes kicknorejoin, kicknorejoin_insp, repeat, repeat_insp
Closes #559.
2017-12-18 13:17:05 -08:00
James Lu
9a5072824d relay: stop lowercasing modedelta args, as that can break things like unreal +f 2017-12-14 13:40:47 -08:00
James Lu
f908e407d4 relay: also ignore clientbot networks in modedelta
TODO: abstract all these checks out!
2017-12-14 13:26:43 -08:00
James Lu
923795719f relay: drop all list and prefix modes in modedelta 2017-12-14 13:07:00 -08:00
James Lu
57a2132d5d relay: always enforce modedelta modes, and prevent them from being unset 2017-12-14 12:46:25 -08:00
James Lu
b2270ca3eb relay: move claim enforcement routines outside the mode/kick loops
This prevents claim responses from being sent multiple times.
2017-12-14 12:15:19 -08:00
James Lu
59c12ff354 relay: merge in modedelta branch, port to latest 2.x relay
Merge remote-tracking branch 'origin/wip/relay-modedelta' into devel

Conflicts:
	plugins/relay.py
2017-12-14 11:56:41 -08:00
James Lu
d54bf0d06c relay: also log the extban prefix strings being readded 2017-12-07 11:38:27 -08:00
James Lu
a2cb4daa46 relay: mangle the mode name when forwarding extban->cmode so that +b syntax filters don't trigger
This should allow bidirectional forwarding between UnrealIRCd +b ~T:block:<glob> and InspIRCd +g <glob> to work.
(#557)
2017-12-07 11:26:16 -08:00
James Lu
8fcb5f9df0 relay: ignore static extbans when looking up dynamic extban prefixes
This fixes #560, which was caused by relay confusing ban_all_registered ($a) with ban_account ($a:), since $a:account also starts with $a.
2017-12-07 11:05:39 -08:00
James Lu
6adeada598 relay: add more complete debug logging in extban handlers 2017-12-07 11:04:26 -08:00
James Lu
d30eca77e9 relay: add more channel modes to the whitelist
* blockcaps: inspircd +B, elemental-ircd +G
* exemptchanops: inspircd +X
* filter: inspircd +g
* hidequits: nefarious +Q, snircd +u
* history: inspircd +H
* largebanlist: ts6 +L
* noamsg: snircd/nefarious +T
2017-12-05 12:01:57 -08:00
James Lu
52f40ad7a2 networks.remote: don't clobber command switches for other commands
This also moves the --service argument to before the network name to prevent ambiguity with argparse.REMAINDER.

Closes #538.
2017-11-14 18:14:23 -08:00
James Lu
03e02dda51 relay: replace garbage locking code with proper filtering in relay_joins
I'm not even going to start on how much time I spent working on this...

Closes #548, #529
2017-11-12 11:58:36 -08:00
James Lu
48ea58c1fb bots: remove use of deprecated utils.isNick() 2017-11-07 19:19:11 -08:00
James Lu
15a231a371 global: ignore empty "global:" configuration blocks 2017-11-06 12:07:33 -08:00
James Lu
b6af6dddc5 relay: fix RuntimeError on handle_part for clientbot networks 2017-11-05 01:18:42 -08:00
James Lu
26b8292564 relay_clientbot: handle errors if the relay: or clientbot_styles: blocks are empty 2017-10-21 13:19:31 -07:00
James Lu
1470e7691f relay_clientbot: add support for showing prefix modes
This adds a new expansion $mode_prefix, and adds it to the default formats for MESSAGE and ACTION.
Closes #540
2017-10-15 01:42:07 -07:00
James Lu
aa44bc15a3 classes: fix backwards sorting in Channel.sort_prefixes()
Also remove various workaround code added to address this.
2017-10-15 01:29:42 -07:00
James Lu
fe4fb9c84c stats: use a simpler /stats c format 2017-10-07 22:27:43 -07:00
James Lu
39b1e28061 Remove plugins/example_service, it is out of date and broken with 2.x
Closes #532.
2017-10-05 19:08:28 -07:00
James Lu
8443de4701 servermaps: display hopcount in 'map' for local servers 2017-09-23 22:36:49 -07:00
James Lu
b52082ed05 relay: various cleanup
- Raise desync-related state checks to warning
- Rename get_remote_sid to get_relay_server_sid - it's less ambiguous
- Clarify and add some missing function docstrings
2017-09-23 20:43:21 -07:00
James Lu
6cbb6617ef relay: don't forward simple bans as text to clientbot links if modesync is on
Closes #528.
2017-09-23 14:39:26 -07:00
James Lu
a60e6e7f22 relay: add missing comment to last commit 2017-09-23 14:09:28 -07:00
James Lu
b667bed1e6 relay: only allow one thread to run initialize_channel at a time
Closes #529.
2017-09-23 13:58:15 -07:00
James Lu
f27b179211 Merge branch 'master' into devel
Conflicts:
	plugins/automode.py
	protocols/clientbot.py
2017-09-05 18:57:24 -07:00
James Lu
7188081511 networks: throw a proper error in 'remote' if the remote network isn't connected 2017-09-05 18:55:19 -07:00
James Lu
f4c51cde00 automode: don't send empty mode lines if no users match the ACL 2017-09-05 18:36:37 -07:00
James Lu
0136ac9e41 relay: fix potential irc.channels KeyErrors in get_prefix_modes and handle_join 2017-09-02 21:35:21 -07:00
James Lu
afd4558531 relay: bind handle_messages at a higher priority than fantasy
This fixes #123, where responses for fantasy commands are relayed before the original message if the Fantasy plugin is loaded before Relay.
2017-09-02 21:17:54 -07:00
James Lu
5c14a9c8c2 relay: add iterate_all_present to condense network iteration code
Closes #471.
2017-08-31 14:19:30 -07:00
James Lu
450718cce6 relay: don't block on client spawning
Just fail instantly if the remote isn't ready.
2017-08-31 12:27:52 -07:00
James Lu
85a7dd3dff example, relay_cb: migrate to irc.is_channel 2017-08-30 21:22:19 -07:00
James Lu
36d6581bba automode, bots: migrate to irc.is_channel 2017-08-30 21:20:19 -07:00
James Lu
979d5a48f1 relay: migrate away from deprecated utils.isHostmask 2017-08-30 21:09:19 -07:00
James Lu
9380336948 relay: fall back to the current time on TS-less servers if the remote channel doesn't exist 2017-08-30 21:08:54 -07:00
James Lu
43b6566aa8 Move getDatabaseName from utils to conf (#476) 2017-08-28 20:27:39 -07:00
James Lu
ff8587736f fantasy, relay: migrate to irc.is_* 2017-08-28 20:14:14 -07:00
James Lu
1031aaa320 relay: add checks for channel presence 2017-08-25 02:29:10 -07:00
James Lu
579bfecdb4 relay: improve logging related to extban handling 2017-08-23 23:23:02 -07:00
James Lu
11d63e19cd relay: allow adding back multiple extban prefixes (#498)
This fixes inbound relaying of modes such as +q $a:test, which are eventually converted into double extbans on InspIRCd and UnrealIRCd.
2017-08-23 22:29:14 -07:00
James Lu
de1a6379df Add (experimental) support for matching extbans (#498) 2017-08-23 21:18:57 -07:00
James Lu
96c89b13b1 opercmds: send KILL hook payloads from the calling user
This is so that Relay's kill warnings, etc. can be actually be routed back to the sender.
2017-08-22 23:55:53 -07:00
James Lu
29bb4c3dfd relay_clientbot: bump default startup delay to 20 seconds 2017-08-21 23:16:38 -07:00
James Lu
83183b366a exec: import all of pylinkirc for convenience 2017-08-21 23:12:42 -07:00
James Lu
89699051d5 Services API rework
- Move nick/ident/host/gecos fetching from services_support into functions
- Remove the unused 'ident' argument from ServiceBot
- Rename the 'nick' argument in ServiceBot to 'default_nick'
- Define default nicks for the PyLink, Automode, and Games services
2017-08-21 21:51:45 -07:00
James Lu
ffc734d8e2 relay: only send RAW_MODES payloads to networks without can-spawn-clients 2017-08-18 15:51:14 -07:00
James Lu
15be760b19 relay: send RELAY_RAW_MODE payloads to the *remote* channel name 2017-08-18 13:30:17 -07:00
James Lu
8563556850 relay: fix relaying between channels not matching their lowercase (DB) name
This rewrites get_relay() to be case insensitive by taking the IRC object instead of a string name.
This fixes a regression introduced by 32249ac (case-insensitive channel state)
2017-08-18 12:42:47 -07:00
James Lu
d679859d7d relay: explain/comment the code for extban handling 2017-08-12 17:12:56 -07:00
James Lu
d2466dd33c relay: support relaying channel mode changes as text
Closes #389.

This adds a new internal hook RELAY_RAW_MODE, which is called once on every relayed network but with the mode list from the source network.
2017-08-11 19:22:14 -07:00
James Lu
e17837cbb1 relay: add nickflood (inspircd +F) to whitelisted cmodes 2017-08-11 13:32:04 -07:00
James Lu
5250e41a94 relay: reformat whitelisted mode lists 2017-08-11 13:29:45 -07:00
James Lu
4a6f94f8fc relay: add workarounds for u-lined servers
- Allow ulines to join with modes (this status gets forwarded as part of relay_joins()), but *ignore* this status when checking for claim
    - For U-lined clients to set modes properly and kick, they be on the claim list
- Allow ulines to set modes on ulined clients including itself. These changes are ignored: not forwarded, not bounced, but just left there.
- Ignore uline attempts to set non-list modes - this is mostly for compatibility with Anope's DEFCON, as it would otherwise lead to a mode flood.

This requires commit 9113b34b46, i.e. the get_server() update.
2017-08-11 13:15:03 -07:00
James Lu
00f70a9432 opercmds: remove extra newline in 'massbanre' help 2017-08-08 21:28:27 -07:00
Austin Ellis
fa0dd100e5 plugins/automode: fix SETACC example
Small fix to plugins/automode SETACC example given in help output.
2017-08-08 22:12:23 -05:00
James Lu
17ba9be238 exec.threadinfo: use case-insensitive sort 2017-08-08 00:30:47 -07:00
James Lu
8b771f6d28 exec: add 'threadinfo' command 2017-08-08 00:22:57 -07:00
James Lu
8558a4e56d stats: treat stats characters case-insensitively 2017-08-08 00:00:12 -07:00
James Lu
7d26ce4ab5 stats: log to INFO attempts to call unknown /stats 2017-08-07 23:58:30 -07:00
James Lu
29fc73193f stats: removed unused code 2017-08-07 23:55:53 -07:00
James Lu
be41f57795 PyLink 2.0-dev, now with /stats support!
Closes #131.
2017-08-07 23:52:16 -07:00
James Lu
29458c8e47 commands, opercmds: remove explicit to_lower usage
Closes #500 - I'm going to skip relay and automode because DataStore doesn't do case normalization yet.
2017-08-07 21:47:31 -07:00
James Lu
716bb6da5e opercmds: exempt service bots from masskill/massban 2017-08-07 17:24:44 -07:00
James Lu
90eee9f5cb opercmds: skip opers by default in masskill/massban 2017-08-07 17:22:56 -07:00
James Lu
a080fd253f opercmds: log massban and masskill results to INFO 2017-08-07 17:15:23 -07:00
James Lu
1597c78089 opercmds: fix wrong counting in 'masskill' if a user gets kicked from multiple channels 2017-08-07 16:55:00 -07:00
James Lu
7266f09879 opercmds: add masskillre variant
Closes #499.
2017-08-07 16:50:15 -07:00
James Lu
8987b91845 opercmds: fix --force-kb check on masskill 2017-08-07 16:50:04 -07:00
James Lu
187ca11946 commands: show an error if 'echo' is called without a text argument. 2017-08-07 00:48:28 -07:00
James Lu
f3acb3c21d networks: support more specific 'remote' permissions by target network, service, and command
Closes #457.
2017-08-07 00:46:53 -07:00
James Lu
6e0145c3b7 networks: use nargs='+' instead of manual verification in 'networks' 2017-08-07 00:38:59 -07:00
James Lu
075b746f32 opercmds: add a note to 'remote' in 'masskill' 2017-08-07 00:37:09 -07:00
James Lu
d10da72545 opercmds: reword docs/errors and add a separate permission for --force-kb 2017-08-07 00:34:03 -07:00
James Lu
f0a82859a0 opercmds: apply claim checks to massban as well 2017-08-07 00:33:01 -07:00
James Lu
8b4e73e0ed opercmds: show failed kills in 'masskill' due to claim 2017-08-07 00:18:56 -07:00
James Lu
6dc41ca15a opercmds: join reason fields in massban/masskill properly 2017-08-07 00:18:11 -07:00
James Lu
aca78b52cf opercmds: add masskill command (#499) 2017-08-06 23:49:09 -07:00
James Lu
9e97dd0b75 opercmds: rename hook payloads to be more consistent 2017-08-06 20:03:20 -07:00
James Lu
a72f710a69 Add regex variants to checkban and massban 2017-08-06 20:02:20 -07:00
James Lu
d12f12ae22 Add a 'massban' command
Closes #174.
2017-08-06 19:21:55 -07:00
James Lu
cb36e29b92 opercmds: migrate to irc.match_all() 2017-08-06 17:56:27 -07:00
James Lu
f4da1fc94c Merge branch 'master' into devel
Conflicts:
	VERSION
	classes.py
	docs/faq.md
	example-conf.yml
	protocols/p10.py
	pylink
	world.py
2017-08-05 22:11:22 -07:00
James Lu
b456966dd3 relay: move ban-style and whitelist checks to earlier in get_supported_cmodes 2017-08-05 22:03:58 -07:00
James Lu
ffde2c6b32 relay: add in muteban relaying on InspIRCd and UnrealIRCd 2017-08-05 22:03:51 -07:00
James Lu
b9a58670ef relay: cleanup code flow in handle_mode 2017-08-05 21:13:39 -07:00
James Lu
d734fc3280 servprotect: bump default conf up to 10 hits/10 seconds 2017-08-03 10:10:28 -07:00
James Lu
a639efa93e relay: allow overriding tag_nicks per network
Closes #494.

(cherry picked from commit 1d6b692e14)

Conflicts:
	example-conf.yml
2017-08-03 09:55:29 -07:00
James Lu
4379ef68ef Migrate coremods.permissions to snake case 2017-08-02 22:24:23 +08:00
James Lu
d42eb82b62 bots: remove obsolete "Admin-only" tags from command help 2017-08-02 22:10:04 +08:00
James Lu
76b8932eeb bots: remove duplicate nick_to_uid call 2017-08-02 22:09:48 +08:00
James Lu
529d1d84be opercmds: remove obsolete "Oper/admin only" tags from commands
These have been long superseded by the permissions API.
2017-08-02 22:06:08 +08:00
James Lu
1d6b692e14 relay: allow overriding tag_nicks per network
Closes #494.
2017-08-02 21:57:48 +08:00
James Lu
def1c0bfd9 opercmds: use irc.reply() instead of irc.msg(source, ...) 2017-08-02 21:48:05 +08:00
James Lu
acceb4e714 opercmds: reword checkban docs 2017-08-02 21:45:20 +08:00
James Lu
bf495a0aae opercmds.checkban: make maxresults configurable, up to a cap of 200 2017-08-02 21:44:17 +08:00
James Lu
47f3977554 Move NetworkCore.parse_protocol_command to IRCNetwork.parse_irc_command
Also add a stub for handle_events.
2017-07-31 11:09:08 +08:00
James Lu
02bd2035e4 opercmds: refactor checkban to use IRCParser, and implement --channel
--channel is really just a wrapper around the $and and $channel exttargets, but it exists separately for convenience. Closes #491.
2017-07-30 01:12:02 +08:00
James Lu
9b271efc89 opercmds: use %r instead of '%s' in formatting 2017-07-30 00:37:27 +08:00
Mitchell Cooper
d1b321310e opercmds: add chghost, chgident, chgname commands (#488)
Closes #481.
2017-07-15 07:41:16 +08:00
James Lu
716ffd389b classes: mark reply_lock, init_vars as private 2017-07-14 05:22:05 -07:00
James Lu
561319bc57 networks: explicitly log successful network disconnects 2017-07-12 22:22:08 -07:00
Mitchell Cooper
c92bb1e33b relay: add server-specific server_suffix (closes #462) (#484) 2017-07-12 14:10:36 -07:00
James Lu
654df0889d relay: rename checkSendKey -> _check_send_key 2017-07-12 07:51:34 -07:00
James Lu
508253af7e relay: switch to Channel.is_op_plus() 2017-07-11 02:23:13 -07:00
James Lu
f203abdeb0 relay: move iteration over all networks into a wrapper function
First part of #471.
2017-07-10 23:09:00 -07:00
James Lu
a43076e815 relay: rename isRelayClient to is_relay_client 2017-07-10 22:38:25 -07:00
James Lu
2f87aa63e9 relay: remove double iteration when firing the PYLINK_RELAY_JOIN hook 2017-07-10 22:36:43 -07:00
James Lu
bd19468825 automode: rename internal functions to snake case 2017-07-10 22:10:55 -07:00
James Lu
4df101c40c automode: fix alias definitions 2017-07-10 22:10:47 -07:00
James Lu
79db7b2124 automode: fix $ircop exttarget name in setacc examples
(cherry picked from commit 24caf36230)
2017-07-10 22:07:11 -07:00
James Lu
59a4ecdcb9 automode: rewrap help for SET
(cherry picked from commit 499e94e0a5)
2017-07-10 22:07:09 -07:00
James Lu
24caf36230 automode: fix $ircop exttarget name in setacc examples 2017-07-10 22:06:41 -07:00
James Lu
499e94e0a5 automode: rewrap help for SET 2017-07-10 22:06:08 -07:00
James Lu
bf24bac9c9 ServiceBot: replace 'alias' option with 'aliases' & condense multiple add_cmds calls into one 2017-07-10 21:59:29 -07:00
Mitchell Cooper
100089f6b8 add alias argument where appropriate in plugins 2017-07-09 21:19:08 -04:00
James Lu
f7dfc38688 relay: only initialize channels that are relevant to the called network in initialize_all()
Previously, this would quite often hit channel names that simply don't exist on the target network.
2017-07-07 14:20:24 -07:00
James Lu
3b091f9e20 relay: remove a useless logging line 2017-07-07 13:43:30 -07:00
James Lu
d2d76baad8 relay: more detailed logging when the spawn_* condition times out 2017-07-07 13:32:04 -07:00
James Lu
990a928602 relay: re-add 'CLAIM #channel -'
This was mistakenly removed in d51c399351 due to a merge conflict, oops...

(cherry picked from commit 62669c085d)
2017-07-02 22:07:58 -07:00
James Lu
62669c085d relay: re-add 'CLAIM #channel -'
This was mistakenly removed in d51c399351 due to a merge conflict, oops...
2017-07-02 22:06:50 -07:00
James Lu
f0fab0c0ad games: remove 'fml'
This is a blocking command which can potentially freeze the server given enough network interruption.
It will likely be reintroduced later on in some sort of "Websites" plugin, possibly in the contrib repository.
2017-07-02 21:18:32 -07:00
James Lu
f800c9f7c2 Merge branch 'wip/irc-explosion-2' into devel (#475)
This brings in a major refactor of the IRC/protocol stack, to start off 2.0-dev.
2017-07-02 21:16:06 -07:00
James Lu
f2b644e2bb relay: be more verbose in 'grabbing spawnlocks' messages 2017-07-02 12:36:33 -07:00
James Lu
60788e4ba5 relay_clientbot: remove dark blue from the random colours list
It's difficult to read on clients configurated to use a dark background. Reported by @MrBenC
2017-07-01 18:06:50 -07:00
James Lu
a204d2b2db core: convert IrcUser calls to User 2017-06-30 21:44:31 -07:00
James Lu
7d68c03101 various: convert sortPrefixes/getPrefixModes calls to snake case 2017-06-30 21:40:05 -07:00
James Lu
61ed209abb coremods, plugins: migrate to snake case for protocol communication 2017-06-30 21:30:20 -07:00
James Lu
0c7fb861f1 classes, relay, ircs2s_c: tweak/remove various debug statements 2017-06-29 23:19:21 -07:00
James Lu
10bca676fc coremods, plugins: migrate to snake case 2017-06-29 23:01:39 -07:00
James Lu
85fbc9ea9d relay_clientbot: use isinstance(obj, dict) & cleanup imports (#410) 2017-06-29 18:08:41 -07:00
James Lu
8eebcb0b06 relay_clientbot: drop colour from network names by default 2017-06-29 18:07:40 -07:00
James Lu
4696519bad plugins: migrate irc.proto calls to irc 2017-06-25 02:09:59 -07:00
James Lu
60a0bcdc7a Rename config option log:stdout -> log:console
Closes #386.
2017-06-02 08:42:32 -07:00
James Lu
76ecc60675 servprotect: only track kills and saves to PyLink clients
why wasn't this done before...
2017-05-20 15:02:04 -07:00
James Lu
89f9b46ec0 relay: demote "PM from server" warnings to debug
InspIRCd's m_chanlog.so sends these on purpose, so it's best not to warn about this "feature" endlessly...
2017-05-15 21:32:41 -07:00
James Lu
a5b3011ea4 networks: clear the 'remote command used' state and break if overriding account/reply target fails 2017-05-12 19:58:03 -07:00
James Lu
084f58b499 automode: remove extraneous +'s from mode lists
Closes #447.
2017-05-12 19:41:55 -07:00
James Lu
04f88df385 Actually use 'irc' in main() and die() as a keyword argument (per docs) 2017-05-12 19:19:52 -07:00
James Lu
24b5fd92ef relay: don't error if the pylink service is gone (e.g. during shutdown) 2017-05-07 13:58:11 -07:00
James Lu
5c7752a203 relay: stop execution if spawn lock acquire fails
Also, make the lock timeout a consistent, global variable.

(partial merge of commit e24bc54bbcefc40bf73a197de2dc24f7cd42cf79)
2017-05-04 21:18:02 -07:00