James Lu
60c05af9ed
relay: allow defining server-specific nicks to always tags
...
Closes #564 .
2017-12-30 01:22:24 -08:00
James Lu
c62580d228
bots: don't allow 'spawnclient' on protocols where it is stubbed
2017-12-22 12:28:27 -08:00
James Lu
7afe193259
bots: fix KeyError when attempting to join a channel not in the index
2017-12-22 12:28:27 -08:00
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
James Lu
d51c399351
Revert "relay: add locks in db read/writes (thread safety)"
...
Unfortunately, this made relay prone to freezing the entire PyLink server.
This reverts commit 2b4943a780
.
2017-05-04 18:53:07 -07:00
James Lu
79e2d20d9d
commands: remove extraneous private=True from showchan
2017-04-27 07:28:26 -07:00
James Lu
0e6d33a668
networks.remote: suppress errors if restoring remoteirc.pseudoclient.account
...
This should rarely happen, but can be purposely caused by causing the remote network to disconnect through 'remote'.
2017-04-09 15:21:19 -07:00
James Lu
709b1d2ead
commands: show TS on networks without has-ts as well
2017-04-09 14:54:16 -07:00
James Lu
bf1d7812e2
clientbot: track channel modes and TS on join
...
Closes #345 .
2017-04-09 14:49:19 -07:00
James Lu
2e5cccc381
relay: fix incrementing changes to modedelta
2017-04-01 12:50:32 -07:00
James Lu
13be8ff6d0
relay: apply modedelta rules on SJOIN as well
2017-04-01 12:50:32 -07:00
James Lu
4312983ca5
relay: initial modedelta implementation
2017-04-01 12:50:32 -07:00
James Lu
ad4fe1924b
networks: show an error instead of silently failing if the command is empty
2017-03-31 17:13:04 -07:00
James Lu
0749a42ef6
networks.remote: add recursion checks to prevent bad queries from crashing the server
...
For example, 'remote net1 remote net2 echo hi' was problematic if the source network was 'net1'.
It's a good thing this command is restricted by default...
2017-03-31 16:40:26 -07:00
James Lu
9d9b01839c
Split Irc.reply() into _reply() to make 'networks.remote' actually thread-safe
...
Previously, the Irc.reply_lock check was in the reply() function itself: replacing it with another function checking for the same lock would delay execution,
but then run the wrong reply() code if another module used irc.reply() while 'remote' was executing.
2017-03-31 16:25:28 -07:00
James Lu
4cd71d12ef
fantasy: don't trigger when the fantasy prefix is followed by a space
...
This prevents false positives such as "& that", "@ person", etc.
2017-03-28 22:00:41 -07:00
James Lu
d425cb9d47
relay: fix case sensitivity in channel TS check
2017-03-28 08:08:39 -07:00
James Lu
ff0eda1fba
networks: flip **kwargs position to fix Python 3.4 support
...
Reported by @koaxirc.
2017-03-27 15:00:01 -07:00
James Lu
ce0c84266e
fantasy: make responding to nick a per-service configuration option ( #343 )
...
This also renames the "respondtonick" option to "respond_to_nick", deprecating the former name.
2017-03-26 14:03:31 -07:00
James Lu
af3b350498
networks.remote: fix "unknown service" error format
2017-03-24 01:10:56 -07:00
James Lu
6c4e042307
networks.remote: break if the target network is the same as the source ( #437 )
...
_remote_reply() otherwise gets sent into a loop when remoteirc and irc is the same here.
2017-03-24 01:08:01 -07:00
James Lu
490f21ff9f
networks.remote: override remoteirc.reply() to send replies back to the caller
...
Closes #437 .
2017-03-24 00:59:48 -07:00
James Lu
0f472c8959
networks.remote: add an optional --service option to call commands for other services.
2017-03-24 00:25:19 -07:00
James Lu
90d3ac3cf6
relay: skip message prefixing when forwarding a message for a service client ( #403 )
2017-03-23 23:53:48 -07:00
James Lu
f188b29911
plugins: migrate to server capabilities
2017-03-23 23:37:24 -07:00
James Lu
ad00fdfa53
relay: migrate normalizeHost, normalizeNick to protocol capabilities
2017-03-23 23:12:59 -07:00
James Lu
21670a5d51
relay: migrate most protocol checks to protocol capabilities
...
Some things I left out include modesync and op status checking on LINK, since these are pretty specific to Clientbot IRC.
2017-03-23 22:52:11 -07:00
James Lu
3ffbbe60ff
global: configurable output format
2017-03-13 13:39:30 -07:00
James Lu
cfe72e2cd0
global: set loopback=False on messages to prevent duplicating them via relay
2017-03-13 13:29:04 -07:00
James Lu
0a57c084bb
global: only send to connected networks
2017-03-13 13:23:22 -07:00
James Lu
a3dff204d3
global: remove extraneous metadata
...
Core plugins do not need to track authors and version, because git does that for us.
2017-03-13 13:21:11 -07:00
Ken Spencer
7e6ad089c0
plugins: add global notice plugin
2017-03-13 12:30:06 -04:00
James Lu
716ac681b6
exec: add 'pieval' and 'peval' to evaluate expressions pretty-printed
2017-03-11 22:47:30 -08:00
James Lu
bf42109d81
Split fantasy prefix definitions into service-specific blocks
...
Closes #426 .
This makes the pylink::prefix (aka bot::prefix) option only affect the main PyLink bot, and deprecates the pylink::prefixes::<...> options.
As the bot: config block is no longer checked, this commit depends on commit 45ed5b962e215763f7659631d1b98a5031dbab92 (ref #343 ) to alias it to conf::pylink.
2017-03-10 23:47:07 -08:00
James Lu
b09565a723
bots, opercmds: add a "Done" reply to most commands as they finish
2017-03-09 20:50:14 -08:00
James Lu
ebd5b77576
relay: normalize channel case in 'link'
...
(regression from commit 93c9b6289c
)
Reported by @koaxirc.
2017-03-09 20:42:38 -08:00
James Lu
e8bf1d08bc
handlers, fantasy: migrate away from irc.botdata ( #273 )
2017-03-05 00:10:33 -08:00
James Lu
733d7d7c87
exec: add ieval command using the isolated local scope
2017-03-04 22:05:03 -08:00
James Lu
42ba1775d7
exec: add irc, source, and args to isolated locals scopes
...
This allows basic things like irc.reply() to work in 'iexec'.
2017-03-04 21:59:42 -08:00
James Lu
4df8567fa6
Irc: move PYLINK_DISCONNECT firing and connected.clear() into disconnect() ( #421 )
...
This may prevent extra irc.connected.clear() calls from messing with the was_connected state.
2017-02-25 22:06:43 -08:00
James Lu
cd65da75c6
relay: only announce disconnects if the last connection was successful
2017-02-24 21:42:58 -08:00
James Lu
cd3d795296
relay: implement optional network disconnect announcements
...
Closes #421 .
2017-02-24 21:15:40 -08:00
James Lu
c03f2d772c
relay: allow dropping messages from user-less clients
...
This adds two new options, both defaulting to True:
- relay:accept_weird_senders (global)
- servers:<name>:relay_weird_senders (per-server)
Closes #404 .
2017-02-24 19:16:01 -08:00
James Lu
f432f6f082
relay: don't allow linking to channels when the home network is down
...
This check can be overridden via --force, and should stop unreliable TS checks from appearing instead
Closes #419 .
2017-02-21 21:58:32 -08:00
James Lu
93c9b6289c
relay: switch to IRCParser in 'link' and add a --force option to skip TS checks
...
Closes #416 .
2017-02-21 21:52:22 -08:00
James Lu
bf702575be
servprotect: fix a syntax error
2017-02-21 21:49:41 -08:00
James Lu
02faa3fcb6
relay: more verbosity in TS-related link errors
2017-02-21 21:14:03 -08:00
Ken Spencer
a8fe353ba4
servprotect: make length and age configurable ( #417 )
...
Fixes #395
2017-02-21 17:02:26 -08:00
James Lu
0c88602d1f
fantasy: check for nick prefix case insensitively
2017-02-18 21:21:32 -08:00
James Lu
a9d2a2c4bc
relay, handlers: rewrite oper WHOIS replies to show the target's home network
2017-02-18 13:51:45 -08:00
James Lu
3c98ef172e
relay: use the new Irc.getFullNetworkName() where applicable
2017-02-18 13:33:35 -08:00
James Lu
902b246f96
bots: allow specifying channel prefixes (e.g. @+) in 'join'
...
This functionality should really be merged with what ServiceBot does, but whatever...
2017-02-13 17:01:09 -08:00
James Lu
0b0efbaf9f
relay: less ambiguous error if a relay channel doesn't exist on the caller network
2017-02-05 21:47:11 -08:00
James Lu
6e94375ed9
relay: clarify/revise help text for 'claim'
2017-02-05 21:43:53 -08:00
James Lu
18826ad5c6
exec: add 'iexec' to run code in an isolated, persistent local scope
2017-02-05 20:26:40 -08:00
James Lu
a3a5569156
exec: print a "Done" after executing code
2017-02-05 20:14:30 -08:00
James Lu
dcacfb0c10
relay: catch RuntimeError in spawnRelayServer as well
...
This is raised when a network runs out of SIDs, for example.
2017-02-03 18:06:49 -08:00
James Lu
b5cf2e8a4e
stats: add an --all option to 'uptime', and check for disconnected networks
2017-01-30 00:18:50 -08:00
James Lu
efded33f4a
stats: oops, use the right Irc object
2017-01-30 00:08:40 -08:00
James Lu
de99be720e
stats: prettier formatting for the uptime command
...
Closes #381 .
2017-01-30 00:06:42 -08:00
James Lu
1c19d82f53
Merge branch 'wip/stats' into devel
2017-01-29 23:31:43 -08:00
James Lu
8901ed72ee
relay: s/spawnIfMissing/spawn_if_missing/g
2017-01-29 22:18:05 -08:00
James Lu
fa30d3c732
relay: rework fallback message routing to be less annoying ( #384 )
...
- PRIVMSGs from users not spawned on a network are sent via the main PyLink client in the format "<$orignick/$network> <$text>"
- <PyLink> <user/net> blah blah
- NOTICEs from users use the same format above, and are routed from the relay subserver representing the network that the message originated from
- Notice(somenet.relay): <user/net> blah blah
- PRIVMSGs from servers are blocked, because they aren't valid on all IRCds and are fairly obscure anyways (suggestsions/improvements welcome)
- NOTICEs from servers are forwarded as raw text, from the relay subserver representing the origin network
- Notice(somenet.relay): some server announcement
2017-01-29 20:21:45 -08:00
James Lu
e936b9cfd2
relay: add a spawn_if_missing option to get_remote_sid()
2017-01-29 20:20:39 -08:00
James Lu
d6a6d069bc
Move 'mkpasswd' to the commands plugin
2017-01-22 16:42:46 -08:00
James Lu
c20c144222
automode, relay: remove unused imports
2017-01-21 12:01:41 -08:00
James Lu
170738ee10
Revert "automode: bandaid fix for "service already registered" errors on first load"
...
This reverts commit e2a853c98e
.
2017-01-21 11:59:43 -08:00
James Lu
3dd35ba5a1
Add an example services plugin
...
Closes #399 .
2017-01-21 11:59:43 -08:00
James Lu
1fe64cca04
example.py: update to reflect 1.1.x docstring changes ( #307 )
2017-01-21 11:59:43 -08:00
James Lu
d749fbb2ab
ctcp: -that
2017-01-20 22:32:32 -08:00
James Lu
b7470c3c42
ctcp: remove puns
2017-01-20 22:31:46 -08:00
James Lu
b1918f5392
Initial pass at a Stats plugin ( #121 , #381 )
2017-01-11 23:35:35 -08:00
James Lu
a2e7a35998
relay: remove incorrect network name in logging for blocked kicks
2017-01-06 22:51:50 -08:00
James Lu
e0bda6b850
relay: also filter out low TS values in burst relaying
2017-01-06 22:48:11 -08:00
James Lu
3e706366bd
relay: on Clientbot networks, don't relay prefix mode changes for the relayer bot
...
Closes #366 .
2017-01-06 16:45:48 -08:00
James Lu
605d242677
automode: remove repeated "Error:" in error messages
2017-01-02 10:11:55 -08:00
James Lu
a340ab15e1
relay: local channel in 'link' is optional
...
Thanks to Digerati for noticing this.
2016-12-29 08:47:35 -08:00
James Lu
614c029538
relay: add missing 'relay.linked' permissions check
2016-12-25 00:31:38 -08:00
James Lu
ec13bae7e6
opercmds: remove pointless source argument from 'kick' and 'kill'
2016-12-24 10:58:03 -08:00
James Lu
77dd8224ae
relay: use built-in hash() for colorizing text
...
This is way faster than md5.
2016-12-21 23:48:40 -08:00
James Lu
c09fce344d
relay: whitelist _ on InspIRCd, UnrealIRCd, Nefarious, clientbot
2016-12-19 00:00:24 -08:00
James Lu
ef8ec03e41
relay: re-add / in hosts for networks that support it
2016-12-18 23:56:47 -08:00
James Lu
3339bf0fe6
relay: rewrite normalizeHost() to whitelist characters instead
2016-12-17 23:47:26 -08:00
James Lu
f9adaa85ca
commands: implement 'logout'
...
Closes #370 .
2016-12-16 19:05:08 -08:00
James Lu
045abfa9c1
commands: add permissions checks to echo, showuser, showchan, and status
2016-12-16 18:31:19 -08:00
James Lu
2de36caea0
commands: fix previous commit
2016-12-09 22:13:32 -08:00
IotaSpencer
b0296933a1
plugins/commands.py: change over to permissions API
2016-12-09 22:13:32 -08:00
IotaSpencer
9199186309
plugins/opercmds.py: change over to permissions API
2016-12-09 22:13:32 -08:00
IotaSpencer
69083cfcfd
plugins/bots.py: change over to permissions API
2016-12-09 22:13:32 -08:00
James Lu
12a8509299
changehost: limit 'applyhosts' to those with the changehost.applyhosts perm
2016-12-09 22:13:32 -08:00
James Lu
60ca5af813
networks: port to the permissions API ( #367 )
2016-12-09 21:55:47 -08:00
James Lu
fb463e3b26
networks.remote: override the login to a valid user, so that permissions can match it
2016-12-09 21:53:54 -08:00
James Lu
34ad79744a
networks: update help for 'disconnect'
...
The 'disconnect' command has been changed to disable autoconnect, but this text was never updated.
2016-12-09 21:51:57 -08:00
James Lu
01f2a4ca20
servermaps: fix wrong permission name
2016-12-09 21:43:58 -08:00
James Lu
3d4cb02ce2
exec: rewrap docstirngs
2016-12-09 21:43:58 -08:00
James Lu
9e2598612a
exec: port to permissions API ( #367 )
2016-12-09 21:43:58 -08:00
James Lu
b5f244009a
relay: rename camel case functions to lowercase with underscores
...
The exception is isRelayClient(), which is aliased only to is_relay_client() to be consistent with isXYZ() functions elsewhere in the framework
Also, getRemoteChan() was renamed to get_remote_channel()
2016-12-09 18:02:30 -08:00
James Lu
2b4943a780
relay: add locks in db read/writes (thread safety)
2016-12-09 17:44:11 -08:00
James Lu
e40b2f6529
relay: add 'purge' command to remove all relays involving a network
...
Closes #356 .
2016-12-09 17:34:51 -08:00
James Lu
8855ef2a41
relay: don't break in removeChannel if irc.pseudoclient isn't set
2016-12-09 17:34:34 -08:00
James Lu
638b9dc84a
relay: rewrap help for LINKACL
...
More formatting changes to come.
2016-12-05 23:33:42 -08:00