3
0
mirror of https://github.com/jlu5/PyLink.git synced 2024-12-25 20:22:45 +01:00
Commit Graph

753 Commits

Author SHA1 Message Date
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
James Lu
a57f194123 changehost: add options to match users by IP and realhost 2016-11-20 12:34:11 -08:00
James Lu
476f84a181 changehost: implement enforce exceptions 2016-11-20 12:33:58 -08:00
James Lu
d90f44c510 changehost: explicitly ignore PyLink internal clients 2016-11-20 12:04:30 -08:00
James Lu
501647805c changehost: add optional vHost enforcement 2016-11-20 11:53:55 -08:00
James Lu
c77ad6faa9 bots: PseudoClient->client in help text & error messages 2016-11-18 23:13:56 -08:00
Ken Spencer
d467d27ecd plugins: change remaining plugins over irc.error() use 2016-11-18 23:11:44 -08:00
Ken Spencer
289ab78052 plugins/bots: change over to irc.error() use 2016-11-18 23:10:45 -08:00
Ken Spencer
940430b075 plugins/automode: change errors over to irc.error() based use 2016-11-18 23:10:45 -08:00
James Lu
8ff292bd1f automode: support remote channel manipulation in the form netname#channel
Closes #352.
2016-11-12 12:20:25 -08:00
James Lu
691a8178b2 relay: implement 'showchan' with links info
Closes #353.
2016-11-12 10:43:55 -08:00
James Lu
b94e11930e structures: directly retrieve DB save delay in DataStore (#303) 2016-11-09 22:53:13 -08:00
James Lu
b0636b40ab Finish the plugin migration to DataStore
Closes #303.
2016-11-09 22:47:22 -08:00
James Lu
377df413ed Irc: s/isServiceBot/getServiceBot/g (#355)
This function is renamed to better reflect its return value (ServiceBot object instead of boolean True).
2016-11-09 19:09:59 -08:00
James Lu
b0bd5d47ae relay: fix logging format in spawnRelayUser error 2016-11-07 22:04:34 -08:00
James Lu
44743d860e relay: don't break autoconnect anymore when there's a server conflict
This reverts most of commits 5c7524b and f2a5e1d.
2016-11-07 21:53:52 -08:00
James Lu
4246a3d113 relay: work on sane fallbacks when a network's SID goes missing (#354) 2016-11-07 21:47:53 -08:00
James Lu
b79e693808 exec: Drop 'raw' text logging to DEBUG for security purposes
Closes #347.
2016-11-07 21:25:57 -08:00
James Lu
2d20256ed8 Relay: rework to use the permission system
This defines the following permissions:

Granted to opers by default:
- relay.create
- relay.destroy
- relay.claim
- relay.link
- relay.delink
- relay.linkacl.view
- relay.linkacl

Granted to all users by default:
- relay.linked

And the following which is not explicitly granted:
- relay.savedb

Closes #325.
2016-11-07 21:22:52 -08:00
James Lu
e977c95520 Merge branch 'master' into devel
Conflicts:
	VERSION
	example-conf.yml
2016-11-02 22:28:39 -07:00
James Lu
9f43c0fe17 automode: fix typo in DB error message 2016-11-02 22:27:01 -07:00
James Lu
9f4c68f114 relay: skip channel TS check for Clientbot
(cherry picked from commit d230af1d5e)
2016-10-22 20:59:34 -07:00
James Lu
d230af1d5e relay: skip channel TS check for Clientbot 2016-10-22 20:45:43 -07:00
James Lu
a5d97c15e7 relay: disable nick collide messages to debug 2016-10-20 20:13:17 -07:00
James Lu
2ed8b68c44 relay: allow configuring custom relay server suffixes
Closes #333.

(cherry picked from commit 3900833458)
2016-10-20 19:10:47 -07:00
James Lu
386c71475a servermaps: removing leading - from entries 2016-10-07 18:51:31 -07:00
James Lu
57b566286d relay: make clientbot modesync more configurable (#287) 2016-09-25 20:07:16 -07:00
James Lu
4222cc30a8 relay, clientbot: implement clientbot mode sync
Closes #287.
2016-09-25 20:07:16 -07:00
James Lu
13a42c17b2 servermaps: skip clientbot networks (servers aren't properly tracked) 2016-09-24 16:36:28 -07:00
James Lu
438838f81d ServiceBot: handle autojoin additions even if bots haven't spawned yet 2016-09-24 12:33:57 -07:00
James Lu
7d20b70d33 relay_cb: fix UnboundLocalError when kicking a service bot 2016-09-24 12:20:18 -07:00
James Lu
b9d8ec5039 relay: listen to PYLINK_SERVICE_JOIN from services_support 2016-09-24 12:13:33 -07:00
James Lu
dfa75f6606 servermaps: simplify output format
Drawing all the |'s and `'s is a rather complex process, so just replace this with bullet-point output.
2016-09-24 12:02:43 -07:00
James Lu
60b595ea6f servermaps: fix help for 'localmap' 2016-09-24 11:58:28 -07:00
James Lu
595bceda2e servermaps: implement network maps over relay!
Local-only map is available too using the 'localmap' command.
2016-09-24 11:56:37 -07:00
James Lu
68c247f764 New servermaps plugin: displays network /map's from the PyLink server's perspective 2016-09-24 11:19:33 -07:00
James Lu
d59732f6dd automode: simplify join routines to use ServiceBot.join() (#326) 2016-09-23 23:43:27 -07:00
James Lu
a040c3c7d2 ServiceBot: modularize join() for explicit channel joining (#326) 2016-09-23 23:43:07 -07:00
James Lu
3900833458 relay: allow configuring custom relay server suffixes
Closes #333.
2016-09-23 22:49:04 -07:00
James Lu
d05917222d relay: clobber colour codes in hosts
(cherry picked from commit b467da13b1)
2016-09-20 07:01:16 -07:00
James Lu
df50b7b137 bots: allow JOIN/NICK/QUIT on ServiceBot clients
(cherry picked from commit 1c86f32003)
2016-09-20 07:01:16 -07:00
James Lu
b467da13b1 relay: clobber colour codes in hosts 2016-09-20 06:58:04 -07:00
James Lu
e0f56a157d relay_cb: remove dark gray from colours index
It's too hard to read on a dark background.
2016-09-19 21:56:12 -07:00
James Lu
1c86f32003 bots: allow JOIN/NICK/QUIT on ServiceBot clients 2016-09-19 18:23:11 -07:00
James Lu
c62dd272d6 relay_clientbot: display the remote channel in join/kick/etc relay, not the local channel 2016-09-19 17:40:50 -07:00
James Lu
e60c020634 relay_clientbot: redo color hashing to be more unique 2016-09-19 17:40:33 -07:00
James Lu
eaa09d68ce Automode: limit 'list' permissions on all channels to opers 2016-09-12 11:26:31 -07:00
James Lu
838ea6bfc4 relay: skip iterating over modetype definitions during reverse mode lookup
This fixes a bug when setting +l on UnrealIRCd, where the type C mode definition is coincidentally also equal to 'l'. Reported by kevin via IRC.
2016-09-07 20:37:57 -07:00
James Lu
bbdffc797d relay_clientbot: Implement relaying of text sent from service bots 2016-09-06 20:11:08 -07:00
James Lu
dd083b9b8d relay: remove extraneous comment 2016-09-06 20:11:08 -07:00
James Lu
aacc3149ce fantasy: don't error when bots are removed while processing (e.g. on shutdown) 2016-09-06 18:06:29 -07:00
James Lu
c5c77eeb97 protocols: chandata->channeldata for MODE and JOIN hooks 2016-09-02 17:52:19 -07:00
James Lu
9b38ca7d68 automode: join modebot client on setacc
Reported by kevin via IRC.
2016-08-31 22:23:55 -07:00
James Lu
e85cc684a1 relay_cb: respect allow_clientbot_pms in 'rpm' (#292) 2016-08-31 19:51:52 -07:00
James Lu
7eb5e59842 relay_cb: implement outgoing PMs from clientbot networks via an 'rpm' command
Closes #292.
2016-08-31 19:48:17 -07:00
James Lu
7817898c14 relay_cb: distinguish between PM and private notice, switch to irc.msg() 2016-08-31 18:30:51 -07:00
James Lu
663d03ed2c relay/clientbot: begin work on outgoing PMs to clientbot users (#318)
This still needs to implement PMs going the other way around, and should eventually distinguish between PMs and private notices.
2016-08-31 14:08:28 -07:00
James Lu
7bae4062b1 automode: log successful sync/add/remove/clear events
Closes #320.
2016-08-31 13:32:50 -07:00
James Lu
1c4cb94a13 relay: block /OJOIN in claim 2016-08-27 19:09:02 -07:00
James Lu
3c7b201f57 protocols: rename 'oldchan' in MODE payloads to 'chandata' 2016-08-27 17:46:35 -07:00
James Lu
f890ddac1b permissions, automode: work on default permissions & add example permissions config (#190)
- Fix possible type errors in add/removeDefaultPermissions by converting permlist values to sets.
- Fix wrong permission string being checked in automode.<command>.#channel
- automode: register and unregister default permissions on load/unload.
- permissions: add an 'also_show' argument to checkPermissions(), to display alternative permissions that weren't directly checked.
2016-08-25 11:45:57 -07:00
James Lu
03a780f397 automode: reorder functions in a way that makes more sense 2016-08-25 11:10:55 -07:00
James Lu
104c0cef4b automode: switch from irc.checkAuthenticated to new-style permissions 2016-08-25 00:58:19 -07:00
James Lu
09c98f66ff relay: fix overzealous host normalization due to variable replacement during iteration 2016-08-21 18:06:53 -07:00
James Lu
5444b808b1 Revert "relay_clientbot: lowercase network name (stylistic choice)"
This reverts commit 42da216f5d.
2016-08-21 17:28:33 -07:00
James Lu
b572c58223 relay: {} are valid nick chars too... 2016-08-20 17:36:24 -07:00
James Lu
e1fab8c153 relay: fix a typo in comment 2016-08-13 11:40:01 -07:00
James Lu
1c83f59baa relay: rewrap some poorly placed comments 2016-08-13 11:03:58 -07:00
James Lu
63f40c9565 relay: delay RELAY_JOIN hooks to a second loop. Closes #311. 2016-08-12 18:47:12 -07:00
James Lu
e75c0d075f relay: on clientbot, explain _why_ calling LINK twice is needed 2016-08-11 12:51:08 -07:00
James Lu
bdadb27466 relay: reverse getPrefixModes() output so the right mode order is passed to sjoin()
This prevents users from bursted as "+@~UID" instead of "~@+UID", for example.
2016-08-09 18:39:13 -07:00
James Lu
1660705658 exec: repr() eval output for proper formatting
This ensures that results that are an empty string, for example, are properly formatted as ''.
2016-08-09 10:57:31 -07:00
James Lu
c09ff6a706 relay_clientbot: fix config key name 2016-08-08 22:23:42 -07:00
James Lu
1b747bf09d relay_clientbot: skip relaying non-PRIVMSGs for X seconds after connect
This can be configured via the option relay::clientbot_startup_delay, and defaults to 5 seconds.
2016-08-08 22:20:31 -07:00
James Lu
3878ae9e0d relay_clientbot: skip to next channel for SQUIT payloads if no nicks are affected 2016-08-08 21:05:55 -07:00
James Lu
8636280b91 relay_clientbot: use channel specific user lists when relaying SQUIT
Closes #312.
2016-08-08 20:59:15 -07:00
James Lu
b096c7a2e3 relay_clientbot: fix wrong key for clientbot_styles 2016-08-08 18:50:36 -07:00
James Lu
990f24938b relay: convert / to . in hostnames on hybrid
Also, switch this check to a whitelist instead of a blacklist for better compatibility.
2016-08-07 15:16:37 -07:00
James Lu
81ffa93bad relay: block attempts to LINK if local TS is lower than remote
Closes #301.
2016-08-04 13:04:32 -07:00
James Lu
acd0c673cb relay_cb: use safe_substitute, rename some fields, add SQUIT/SJOIN support
Closes #294. Closes #304. This renames the "nick" field to "sender", and "identhost" to "sender_identhost", to be less ambiguous when a message sender is a server.
2016-08-04 12:50:38 -07:00
James Lu
72da00d23c relay: block clientbot networks from hosting relays 2016-08-04 10:55:00 -07:00
James Lu
7a0fd1caa3 relay: rework "target in channel" requirements for clientbot links
Closes #305.
2016-08-04 10:47:06 -07:00
James Lu
66067c272f relay: limit hosts to 63 chars, not 64 2016-08-03 00:21:30 -07:00
James Lu
197d9fc14a commands: show topic only if it exists, disable TS output on clientbot 2016-08-02 23:57:18 -07:00
James Lu
a6258dd973 changehost: more friendly error when an expansion field is unavailable 2016-08-02 23:04:46 -07:00
James Lu
1cda5023c8 changehost: copy args before cloning, make $host expansion optional 2016-08-02 22:56:59 -07:00
James Lu
02b5f0b7e6 changehost: explicitly forbid $host from being expanded
This will cause recursion whenever applyhost is ran and a user matches a mask based on real host or IP, which haven't changed. Any suffix or prefix applied to $host will be reapplied, often leading to invalid hosts that are too long.
2016-08-02 22:17:23 -07:00
James Lu
eb032eb7f9 commands: explicitly sort mode lists in 'showuser' and 'showchan' 2016-07-31 21:46:33 -07:00
James Lu
f2a5e1dc78 relay: catch errors on remove_network() and ignore them 2016-07-31 20:36:27 -07:00
James Lu
1ef89560e2 core: rename IrcUser.identified attribute to IrcUser.account 2016-07-29 20:16:05 -07:00
James Lu
accd5b70b3 relay: show reasons when clientbot is force parted or kicked 2016-07-29 01:08:14 -07:00
James Lu
6bc3191077 relay: only block cmodes from relaying on clientbot (#289) 2016-07-29 00:54:29 -07:00
James Lu
8047186c58 plugins, coremods: remove usage of irc.conf (#273) 2016-07-27 17:02:04 -07:00
James Lu
42da216f5d relay_clientbot: lowercase network name (stylistic choice) 2016-07-26 16:41:15 -07:00
James Lu
fa1ce45bf3 relay: add configurable list of nick globs to always tag
Closes #276.
2016-07-26 16:01:42 -07:00
James Lu
af027e2288 networks: support protocol module reloading
Closes #177.
2016-07-25 11:00:56 -07:00
James Lu
d008814de9 opercmds: make 'kick' treat channels case insensitively 2016-07-24 16:40:31 -07:00
James Lu
a2c5b11194 opercmds: make 'jupe' admin only 2016-07-24 16:40:23 -07:00
James Lu
a905f74800 relay/clientbot: rework KICK handling to send the right thing at the right times
Some of the logic was inverted so that the Clientbot would try to kick invalid things like GLolol/ovd, and send clientbot KICK payloads when it's supposed to forward an actual kick.

This also fixes KICKs from servers not being relayed by clientbot.
2016-07-24 11:55:46 -07:00
James Lu
bcf5f612cc exec: make pylinkirc and importlib accessible 2016-07-24 11:51:44 -07:00
James Lu
832f22e7f0 relay: remove unnecessary "Relay plugin unloaded" quits 2016-07-24 11:13:51 -07:00
James Lu
dc364b3e9e relay: explicitly don't sync modes originating from clientbot 2016-07-24 11:11:54 -07:00
James Lu
62f78a60a9 commands: refactor showchan to use IrcChannel.getPrefixModes() 2016-07-24 11:03:23 -07:00
James Lu
04e37ebd04 commands: mention the VCS version as well 2016-07-24 10:59:25 -07:00
James Lu
8dd0a904d2 relay_cb: use the full network name in prefixes 2016-07-23 22:30:25 -07:00
James Lu
05a5ec7e19 relay: don't show "real server" for clientbot users, it's not accurately tracked 2016-07-23 22:30:10 -07:00
James Lu
e2a853c98e automode: bandaid fix for "service already registered" errors on first load 2016-07-23 21:46:55 -07:00
James Lu
38793654ea relay: error when someone attempts to PM a clientbot user
PMs aren't routed through Clientbot yet.
2016-07-23 21:09:25 -07:00
James Lu
cadf0a336c relay: limit auto-rejoin-on-part to relay channels 2016-07-23 19:06:35 -07:00
James Lu
08525e8eba relay: treat forced parts to clientbot as clearchan 2016-07-23 19:03:07 -07:00
James Lu
0db9d4e69e relay/clientbot: support relaying KICK, QUIT, NICK, CTCP ACTION, and NOTICE 2016-07-23 18:48:27 -07:00
James Lu
3e91118644 relay/clientbot: implement kick, join, part relaying 2016-07-23 12:25:52 -07:00
James Lu
fdaed4f700 relay_clientbot: configurable formatting, with defaults 1000x prettier than janus 2016-07-23 12:05:22 -07:00
James Lu
a9be5d0dc7 relay: treat kicks to the service bot on clientbot networks as clear channel
This is so if the bot is kickbanned from a channel, it will remove all users to prevent ghosts on the channel.

* cbot.relay has kicked ChanServ/cbot from #test ((xdxdxd.xdxdxd/cbot) Clientbot was kicked from channel.)
2016-07-23 11:20:52 -07:00
James Lu
88e510b4cf clientbot: begin work on special hooks & move event relaying to a separate plugin 2016-07-23 01:16:26 -07:00
James Lu
eb24e01619 relay: allow slashes for clientbot 2016-07-20 23:55:34 -07:00
James Lu
47a0a7f8c6 Make plugins/ and protocols/ namespaces 2016-07-20 23:55:26 -07:00
James Lu
8169a2b751 automode: fix typo in loadDB() 2016-07-17 15:19:48 -07:00
James Lu
40197e5f57 automode: fix help syntax 2016-07-17 10:54:46 -07:00
James Lu
d7538bee1b automode: remove mentions to "setacc #channel mask -" 2016-07-17 10:50:18 -07:00
James Lu
94f2422a1e relay: show secret channels in LINKED to those in the channel
Closes #278.
2016-07-16 21:07:08 -07:00
James Lu
b7852b1d01 relay: hint at JUPE being a reason why server spawning might fail 2016-07-13 18:56:55 -07:00
James Lu
5c7524bcf3 relay: use the "official" method of removing bad networks 2016-07-13 18:49:51 -07:00
James Lu
31bf984996 Revert "relay: don't try to force network disconnects"
This reverts commit 77edd9870c.
2016-07-13 18:43:22 -07:00
James Lu
ad5cd51189 automode: fix wrong indent in modebot_uid check 2016-07-12 22:16:24 -07:00