3
0
mirror of https://github.com/jlu5/PyLink.git synced 2024-12-27 05:03:07 +01:00
Commit Graph

785 Commits

Author SHA1 Message Date
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
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