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

3194 Commits

Author SHA1 Message Date
James Lu
5a00454a8d _parse_modes: apply modes to a temporary mode list as we parse them
Fixes #573.

Old, broken behaviour:
irc.parse_modes('#test', '+b-bb *!*@new.ban *!*@nonexistent.ban *!*@new.ban')
=> [('+b', '*!*@new.ban')]

Fixed:
irc.parse_modes('#test', '+b-bb *!*@new.ban *!*@nonexistent.ban *!*@new.ban')
=> [('+b', '*!*@new.ban'), ('-b', '*!*@new.ban')]
2018-03-02 20:57:16 -08:00
James Lu
f12318b5dc classes: add an is_channel argument to _parse_modes
This is required for the following commit.
2018-03-02 20:56:59 -08:00
James Lu
1413aa6042 _apply_modes: don't add prefix modes to mode sets even when prefixmodes=None 2018-03-02 20:47:41 -08:00
James Lu
054680c806 classes: split apply_modes into two functions 2018-03-02 20:43:25 -08:00
James Lu
9cca695d14 classes: split parse_modes into core and wrapper functions 2018-03-02 20:43:25 -08:00
James Lu
d172831805 conf: rename methods to snake case (#523) 2018-03-02 20:23:48 -08:00
James Lu
03103bea14 conf: use a more informative description for validate() 2018-03-02 20:23:47 -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
9e212fc0a4 protocols: migrate utils.wrapArguments, splitHostmask use to camel case (#523) 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
9e3f412f0b log: rename methods to snake case (#523) 2018-03-02 20:23:47 -08:00
James Lu
ad5a11bf34 control: skip networks that fail to initialize on rehash
This follows the launcher fix in 8321485315.
2018-03-02 20:23:47 -08:00
James Lu
a2783d74c5 unreal: bump protocol version to 4017 (no changes needed) 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
6a90e99de4 IRCNetwork: do not break on socket BlockingIOError
On non-blocking sockets, recv() raises BlockingIOError instead of blocking when there's no data to be read.
The correct behaviour is to wait and try again instead of breaking the connection.
2018-03-01 12:52:41 -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
50f8cde694 classes: make _to_lower_core and _expandPUID type-safe 2018-02-24 14:19:57 -05:00
James Lu
2aca4e39c1 RELNOTES: fill in release dates for 1.2.0, 1.2.1, 2.0-alpha1
[skip ci]
2018-02-24 01:48:26 -08:00
James Lu
a2e793755f RELNOTES: first batch of 2.0-alpha3 changes 2018-02-24 01:44:04 -08:00
James Lu
5c9639b4a9 opercmds: alias 'trace' to checkban 2018-02-21 00:12:08 -08:00
James Lu
390b7a327a example-conf: revise the example servers: section
- Remove "8P#" as a sidrange default - it does not leave adequate room for larger networks
- Move the TS6 example to near the end; it has less demand than Unreal and P10
- Consistently use "must" to describe P10 cloaking options, where any misconfiguration will lead to serious desyncs
- Bumped example autoconnect times from 5 to 10 seconds
- Add the 'netname' option to server blocks that previously didn't include it
- Comment out the 'channels' setting on each server example by default
- Various wording clarifications
2018-02-20 23:42:13 -08:00
James Lu
3d61bfd114 example-conf: revise notes for P10, TS6 servers 2018-02-20 23:26:06 -08:00
James Lu
0c2927fb1e example-conf: sort clientbot ex. options so that cb-specific ones are at the end 2018-02-20 23:23:04 -08:00
James Lu
804791b8af clientbot: support expansions ($nick, etc) in autoperform 2018-02-20 23:19:32 -08:00
James Lu
0b0da2cfe6 launcher: add experimental daemonization support
Closes #187.
2018-02-19 21:05:15 -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
2e66b9bde6 classes: allow hook functions to block further execution by returning False
Closes #547.
2018-02-18 22:42:39 -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
37be73d39c clientbot: add STATUSMSG support (#570) 2018-02-18 22:15:19 -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
1405b01597 ServiceBot: clean up some function descriptions 2018-02-18 19:40:46 -08:00
James Lu
484822e5d7 docs: various fixes pointed out by @MrBenC
- Clarify the project's goals of being an IRC services *framework*
- Briefly mention in the FAQ that the relay plugin is needed for...well, relay!

[skip ci]
2018-02-17 00:50:12 -08:00
James Lu
7114c6942f README: the shared{} requirement for KLINEs likely applies to chatircd too 2018-02-12 11:18:48 -08:00
James Lu
8321485315 launcher: prevent protocol module init errors from aborting execution
This fixes various issues including:
- Networks going missing (the server list is read in a non-deterministic order)
- world.started never being set, causing relay to never work!
2018-02-10 16:17:18 -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
ea84497359 protocols: remove the endburst_delay option from spawn_server
Interestingly, this was never documented in the protocol module spec...
2018-02-10 15:44:09 -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
18c1a277f5 clientbot: remove extraneous use of to_lower() in handle_part 2018-01-31 19:35:24 -08:00
James Lu
74848853ac clientbot: fix KeyError caused by lower() in spawn_server
This affected connections to afternet for example.
2018-01-31 19:33:05 -08:00
James Lu
84f6190478 inspircd: only read METADATA modules changes from the uplink
Closes #567.
2018-01-25 09:52:29 -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