James Lu
8ffd787075
global: call match_text() on the target network object
...
Technically this will only make a difference if a server object overrides match_text(), but this is the more correct solution.
2020-03-16 19:07:18 -07:00
James Lu
b4d7883a71
global: ignore networks that don't have .pseudoclient set
...
This is the case for e.g. the control network object in pylink-discord.
2020-03-16 19:06:28 -07:00
James Lu
b083b6dede
commands.version: replace license notice with (a much more useful) Python version
2020-01-26 13:48:43 -08:00
James Lu
b9561500fd
relay: simplify clientbot forcepart/kick formatting
2019-11-29 23:52:19 -08:00
James Lu
41497a8a13
automode: mangle channels to "#chanid" on networks where they're stored as int
...
This allows the bulk of automode's commands to actually function.
2019-10-14 09:57:47 -07:00
James Lu
d28a9681ac
automode: disable on networks where IRC modes aren't supported
...
Closes #638 .
2019-10-10 22:24:44 -07:00
James Lu
f99be51515
changehost: add enable and enforce as network specific options.
...
Closes #611 .
2019-10-10 21:45:18 -07:00
James Lu
da67d6c42f
changehost: port most options to get_service_option(s) ( #611 , #642 )
2019-10-10 21:04:15 -07:00
James Lu
1623462b73
relay: use get_service_options() to combine clientbot styles options ( #642 )
2019-10-10 19:16:58 -07:00
James Lu
72e96156b5
changehost: listen for services account changes
...
This allows for consistent account based hostmasks for SASL gateways, etc.
2019-10-09 20:32:47 -07:00
James Lu
4095eea3a7
changehost: simplify _changehost() syntax
2019-10-09 20:30:53 -07:00
James Lu
452a47d4f1
relay: handle acting extbans for +e too
...
InspIRCd acting extbans and UnrealIRCd ~m are both used in theis context.
2019-08-22 18:40:23 -07:00
James Lu
07d8c8828a
relay: fix incorrect variable when logging invalid channels in LINK
...
Where on earth is c even defined?
2019-08-04 11:41:28 -07:00
James Lu
80188c3673
Sort imports via isort
2019-07-14 15:12:29 -07:00
James Lu
19d794a6f5
relay_clientbot: refactor 'rpm' to handle duplicate nicks & nicks containing spaces
...
Closes #650 .
2019-07-14 13:21:47 -07:00
James Lu
6ac2daebfa
commands: improvements to the 'showuser' command
...
- Indent output lines for each specific user
- Skip showing Home server / Nick TS line if neither is available
- Handle nicks with spaces in them
- Show user modes after basic details
2019-07-14 13:21:47 -07:00
James Lu
edd27eea41
relay: format KILL sources when relaying local kills
...
Kill reason formatting was changed in #520 .
2019-07-01 14:18:35 -07:00
James Lu
4bd334e2b8
antispam: read nicks from userdata when handling QUITs ( #617 )
...
get_hostmask() doesn't work on someone who has already quit.
2019-07-01 14:18:31 -07:00
James Lu
35b38dfb05
antispam: add part / quit message filtering for plugins like Relay
...
Closes #617 .
2019-06-27 13:07:04 -07:00
James Lu
19c7dce931
commands: add a 'shownet' command
...
Basic info available to everyone include network name, protocol module, and encoding.
For those with the commands.shownet.extended permission, this also allows looking up disconnected networks defined in the config, and shows configured IP:port, PyLink hostname, SID, and SID range.
Closes #578 .
2019-06-26 13:54:32 -07:00
James Lu
9a74626d62
relay: consistency fixes for the hideoper setting
...
- Don't enforce +H on /oper when the hideoper option is disabled
- Skip relaying -H if the hideoper option is enabled - closes #629
2019-06-26 13:18:32 -07:00
James Lu
caa94f983f
relay: mangle <( to [ and >) to ] for better displays
2019-06-24 15:08:13 -07:00
James Lu
1852ff5774
relay: passthrough nicks in normalize_nick() on server supporting freeform-nicks
2019-06-23 17:48:15 -07:00
James Lu
30f7a77d18
Revert most of 1c0ea24acd
...
1c0ea24acd
"relay_clientbot: normalize sender names to the senders' home networks"
In the future we hope to remove nick restrictions in Clientbot entirely, and just use freeform nicks for virtual users.
2019-06-23 17:48:08 -07:00
James Lu
957697d275
networks: don't allow disconnecting servers marked virtual-server
2019-06-23 17:43:12 -07:00
James Lu
ed4404bf4b
relay: fake revert mode changes we couldn't bounce ( #23 )
...
This allows services to revert mode changes CLAIM was not happy with, instead of causing another mode war during this process.
2019-06-21 15:38:49 -07:00
James Lu
dcab011673
relay: pretend mode reverts on SJOIN always succeed ( #23 )
...
This prevents remote services from bypassing CLAIM, since the end result of a mode war is that they remained opped.
2019-06-21 15:28:52 -07:00
James Lu
94cd1d8f22
relay: implement kick/mode/topic war prevention ( #23 )
...
This adds cachetools as a dependency for Relay.
2019-06-21 14:57:43 -07:00
James Lu
042d11d7ba
relay: remove extraneous variable
2019-06-21 14:03:21 -07:00
James Lu
74566c3aab
antispam, changehost: remove references to ircmatch ( #636 )
2019-06-21 12:51:12 -07:00
James Lu
0836845ff9
Merge relay showchan/showuser info into commands.py
...
This makes error handling easier and is needed to support duplicate nicks anyways.
2019-06-16 11:22:36 -07:00
James Lu
dfc4e4954a
commands: remove explicit cutoff of 20 users/line in showchan
...
irc.reply() in PyLink 2.0+ handles line wrapping automatically.
2019-06-16 11:20:26 -07:00
James Lu
fe95a4a571
commands: rework showuser to better handle duplicate nicks
...
This is freely allowed on Discord, for example.
2019-06-16 11:19:19 -07:00
James Lu
fc4a16eda1
bots, opercmds: handle cases where target nick is disambiguous
2019-06-16 11:04:07 -07:00
James Lu
3b07f8ab2b
fantasy: accept "@servicebot" as fantasy trigger prefix
...
For platforms like Discord where this form of address is the norm.
Closes https://github.com/PyLink/pylink-discord/issues/17
2019-06-15 23:56:55 -07:00
James Lu
3d039b78e2
relay: use [] as altchars for Base64 fallback
...
This ensures that mangled nicks can be reversed more easily (by removing leading _'s and replacing - with =)
2019-06-15 23:48:46 -07:00
James Lu
1c0ea24acd
relay_clientbot: normalize sender names to the senders' home networks
...
This should work for most messages, except NICK changes and MODE targets.
2019-05-18 19:44:45 -07:00
James Lu
ec379a6e81
servprotect: migrate to cachetools (but leave expiringdict as fallback)
...
Closes #445 .
2019-05-13 16:59:57 +08:00
James Lu
ad9a51fc33
commands.showuser: properly handle numeric-type UIDs and channels
2019-04-09 19:10:20 -07:00
James Lu
13be40e08b
changehost: only send a host change if new host != original
2019-04-09 19:01:53 -07:00
James Lu
41cbd455d6
relay: only check _invisible flag on actual users
2019-04-02 21:22:40 -07:00
James Lu
71353a29c2
relay: add support for hiding users marked invisible or offline
...
First part of https://github.com/PyLink/pylink-discord/issues/19
2019-03-28 20:14:58 -07:00
James Lu
63d63c0137
relay: allow trailing .'s in subserver names
2019-03-20 21:14:12 -07:00
James Lu
88f45fb1d5
relay: whitelist ~ in idents
2019-03-20 21:08:55 -07:00
James Lu
c9176a06fc
relay: check for nicks starting with numbers or - after removing Unicode
2019-03-20 21:08:21 -07:00
James Lu
9d459fab92
relay: fixes to support IDs as channel name
...
- Don't enforce local channel validity rules on the remote channel name
- Normalize channels to str before looking them up in the DB
2019-02-16 16:35:47 -08:00
James Lu
96815a0a32
relay: sanitize idents before mirroring them to IRC
2019-02-12 15:55:14 -08:00
James Lu
a9f59307c9
relay: use base64 as fallback if unidecode returns an empty string for nick
...
This is the case for e.g. nicks that are only an emoji.
2019-02-12 14:17:53 -08:00
James Lu
11b65ee809
relay: rework nick normalization with optional unidecode support
...
This will attempt to translate UTF-8 nicks to ASCII ones instead of doing the ugly '||||' replace.
Also, the fallback character for disallowed nick characters is now "-" instead of "|".
TODO: document relay::use_unidecode
Closes #561 .
2019-02-12 00:58:20 -08:00
James Lu
11e7589304
relay_clientbot: fix previous commit
2019-02-10 14:35:34 -08:00