3
0
mirror of https://github.com/jlu5/PyLink.git synced 2024-12-18 08:02:51 +01:00
Commit Graph

662 Commits

Author SHA1 Message Date
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
James Lu
6598d56400 automode: fix join handler, make match() take multiple users instead of one 2016-07-12 21:58:08 -07:00
James Lu
76554dccd1 automode: refactor to send only one MODE per channel (#275) 2016-07-12 21:58:08 -07:00
James Lu
256801c0b4 automode: send one MODE per user (first part of #275)
If a user matches multiple DB entries, only one is sent now. However, this still needs to be changed so if multiple people are being checked for entries at once, one MODE command is sent for the entire channel.
2016-07-12 00:08:11 -07:00
James Lu
92466e4a00 relay: make tag_nicks default to True 2016-07-11 23:35:16 -07:00
James Lu
59f6c861e0 relay: treat SVSNICK as a cue to tag nicks
Closes #116.
2016-07-11 23:23:26 -07:00
James Lu
bc369bf6a6 relay: force tags when a nick collision happens 2016-07-11 21:54:48 -07:00
James Lu
95ff33876c relay: handle KILLs to untagged clients as a cue to tag them (#116) 2016-07-11 21:43:43 -07:00
James Lu
5bfba0a411 relay: make default nick tagging and separator global options (#116) 2016-07-11 21:43:43 -07:00
James Lu
1b0829f401 ctcp: totally not an easter egg update 2016-07-11 16:59:44 -07:00
James Lu
6904ba9606 commands: remove reference to 'signon time' 2016-07-11 16:49:08 -07:00
James Lu
77edd9870c relay: don't try to force network disconnects
This doesn't work, and seems to cause PyLink to freeze instead.
2016-07-11 16:35:35 -07:00
James Lu
a6d9016464 automode: add clearacc, syncacc commands
Closes #262. Closes #263.
2016-07-11 16:29:17 -07:00
James Lu
cb7e7abec5 automode: treat channels case insensitively in 'delacc' 2016-07-11 16:29:02 -07:00
James Lu
9c2bec7a3d relay: don't create relay clones with the user's original TS
There's no point of doing this. Relay should purposely lose nick collisions anyways because it can simply switch to the next one.
2016-07-10 22:25:01 -07:00
James Lu
b88b9614f6 automode: join channels where automode is enabled (#264)
Still a WIP: when automode is killed, it won't join any relay leaf channels. Perhaps Relay needs to learn how to queue channels for services bots when they join a remote channel, and then remove them when that channel is delinked, etc.
2016-07-08 13:01:56 -07:00
James Lu
de7533a46e automode: more explicit check for the modebot UID being available 2016-07-07 22:57:31 -07:00
James Lu
f97f2d2fda automode: call unregisterService() on unload 2016-07-07 22:41:51 -07:00
James Lu
df41dabb71 relay: drop prefix modes if the target doesn't have a relay clone yet
This fixes modes like ('+v', None) from being accidentally sent by Relay, when Automode happens to set modes before all relay clients are spawned.
2016-07-07 22:16:34 -07:00
James Lu
00766041f3 plugins: make DB save delay configurable 2016-07-07 22:16:21 -07:00
James Lu
db3517b43a automode: only those with admin login can change access entries 2016-07-07 21:57:36 -07:00
James Lu
4999ecd11f Integrate services_support and automode
New hook: PYLINK_SERVICE_JOIN
2016-07-07 21:54:59 -07:00
James Lu
b3310eaf78 relay: also send internal hook for services login, for integration with automode 2016-07-07 21:43:25 -07:00
James Lu
0d502095c5 relay: integrate with automode by sending relay JOINs as a hook 2016-07-07 21:38:12 -07:00
James Lu
2be4811673 automode: separate matching into a separate function & listen for services login changes 2016-07-07 21:31:36 -07:00
James Lu
552070132d automode: implement JOIN handler for a new working ACL system!
Closes #170.
2016-07-07 21:23:06 -07:00
James Lu
d365f04199 Automode plugin stub (#204)
This supports adding/removing/listing entries and saving them to a DB, but no modes are set yet.
2016-07-07 21:06:28 -07:00
James Lu
ae2eefc73e opercmds: actually make 'checkban' oper-only 2016-07-07 11:18:06 -07:00
James Lu
2b88c8d630 opercmds/changehost: actually commit changes mentioned in last commit 2016-07-06 23:47:31 -07:00
James Lu
37e1c7d538 opercmds: fix typo in help. 2016-07-06 22:36:29 -07:00
James Lu
ec0f2714e2 opercmds: format KILL reasons properly in kill() 2016-07-06 22:36:06 -07:00
James Lu
81fca49738 relay: hide disconnected networks from LINKED output
Closes #258.
2016-07-03 12:40:23 -07:00
James Lu
72c48502c6 Generate __init__.py with package version on runtime
Closes #259. This removes world.version and replaces it with pylinkirc.__version__ where the former was used.
2016-07-03 00:26:03 -07:00
James Lu
7c6daa839c relay: don't error if servers for current net were already removed 2016-07-01 22:20:10 -07:00
James Lu
e3170cda83 relay: remove another _ in opertype handling 2016-07-01 21:07:07 -07:00
James Lu
847a98755f core: use a shared function for disconnecting + removing networks 2016-07-01 20:14:31 -07:00
James Lu
013891bebc networks: drop 'connect' command, it's useless 2016-07-01 19:54:37 -07:00
James Lu
da4da91ef9 networks: unconditionally remove disconnected IRC objects 2016-07-01 19:54:19 -07:00
James Lu
1a0983b8e9 relay: prefix nicks starting with - (this is invalid) 2016-07-01 19:19:11 -07:00
James Lu
c9b6695f90 relay: make sure normalized nicks have no invalid characters
This affects the separator option too: if someone puts something invalid in that field, this will coerse bad chars to | instead of letting the IRCd deal with it.
2016-07-01 19:16:47 -07:00
James Lu
042a173d87 relay: use a 5 second timeout when acquiring all threading locks 2016-07-01 18:54:35 -07:00
James Lu
06ee35dcfc relay: catch various errors if a relay client is killed while commands are called from it 2016-07-01 18:54:07 -07:00
James Lu
4cd49296e5 Merge remote-tracking branch 'origin/master' into devel 2016-06-30 19:00:39 -07:00
James Lu
91a663d5c7 commands, relay: use irc.reply() with private=True instead of irc.msg()
This is more flexible, etc.
2016-06-30 18:43:56 -07:00
James Lu
02405c36b5 core, fantasy: redo handling of noticed and/or private replies
New behaviour for command responses in general: FANTASY commands reply in channel as PRIVMSG, while all commands sent in PM reply as private notices.

- The old irc.called_by is now irc.called_in (PLACE last command was called)
- irc.called_by is now used to store the CALLER of the last command
- notice=True/False toggle is dropped from ServiceBot.call_cmd()
- New private=True/False option added to ServiceBot.reply() and irc.reply(), which controls whether replies should be sent privately or not.
2016-06-30 18:22:45 -07:00
James Lu
14f569fd7c relay: improve command help, add featured command definitions 2016-06-30 18:05:27 -07:00
James Lu
b2b4f33fe8 games: add service description & featured commands 2016-06-30 17:45:05 -07:00
James Lu
5f2da1c8c3 relay: cap waiting time for irc.connected to 5 seconds 2016-06-29 18:12:50 -07:00
James Lu
8b39635fa8 relay: don't expect that serverdata['channels'] is always present 2016-06-27 23:00:39 -07:00
James Lu
8af4b0c06d relay: use extra_channels to persistently join the PyLink bot to relay channels
Closes #247.
2016-06-25 14:21:18 -07:00
James Lu
1ce6102ae8 relay: allow toggling netsplit hiding 2016-06-25 13:47:59 -07:00
James Lu
1a6bb714ac relay: drop spawn_servers toggle, remove "Relay network lost connection" quits
Relay server spawning is now always on - there's no real reason why it shouldn't work.

Closes #237.
2016-06-25 13:27:24 -07:00
James Lu
2b0dd0f746 ctcp: allow PING with multiple arguments 2016-06-25 12:18:50 -07:00
James Lu
3461216d20 ctcp: add PING, easter egg 2016-06-25 12:11:04 -07:00
James Lu
f009a739bc Merge remote-tracking branch 'origin/master' into devel 2016-06-25 11:36:55 -07:00
James Lu
f445f7baef relay: be more tolerant to users sending messages to channels they're not in
This extends the routing of messages from servers across the relay via the main PyLink client to users too.
This allows atheme's GameServ, various commit announcers, etc. to work over relay regardless of whether +n is set.
2016-06-25 11:31:04 -07:00
James Lu
e966fe7e56 relay: typo in comment 2016-06-25 10:43:07 -07:00
James Lu
504a9be7d6 relay: attempt to eliminate freezing when networks are down 2016-06-24 18:41:13 -07:00
James Lu
90ee20ee8b relay: revert changes to mode handling that only bursts modes from the owning network on connect 2016-06-22 21:41:04 -07:00
James Lu
6fc5fa3130 relay: split relayModes() into getSupportedCmodes() for better reusability
First part of #248.
2016-06-22 19:49:49 -07:00
James Lu
8969cfb74e Merge branch 'master' into devel
Conflicts:
	plugins/networks.py
2016-06-22 19:10:59 -07:00
James Lu
1ad8b2e539 networks: reintroduce networks properly in 'connect'
Closes #245.
2016-06-22 10:39:22 -07:00
James Lu
cfa2cda885 relay: only reverse modes for CLAIM if there are any to reverse 2016-06-21 20:29:48 -07:00
James Lu
481d70eff8 New import paths for properly installed pylinkirc 2016-06-20 18:18:54 -07:00
James Lu
0b9691c3c6 Merge branch 'master' into devel 2016-06-20 16:38:33 -07:00
James Lu
87cbbc9c57 relay: clearer error message when DESTROY'ing a channel you didn't create 2016-06-19 12:32:27 -07:00
James Lu
d3e207d653 relay: axe unused variable 2016-06-19 12:32:12 -07:00
James Lu
bcc754cf0b relay: allow forcing slashes on unsupported IRCds
This adds an undocumented option "relay_force_slashes" to allow slashes in nicks anyways, for IRCds that are, for example, TS6 or P10 variations that don't validate remote nicks.
2016-06-19 12:32:03 -07:00
James Lu
e47738c27f relay: forbid linking two channels on the same network 2016-06-19 12:14:09 -07:00
James Lu
9732d01a9e relay: default DB to {} so it doesn't flip out on 'load relay'
(cherry picked from commit db56513ac7)
2016-06-17 07:19:13 -07:00
James Lu
db56513ac7 relay: default DB to {} so it doesn't flip out on 'load relay' 2016-06-16 21:55:50 -07:00
James Lu
11bbbfba19 Ctcp plugin: handles basic VERSION requests
Closes #236.
2016-06-15 11:31:40 -07:00
James Lu
9952f08c8f opercmds: switch to irc.parseModes() 2016-06-08 16:40:00 -07:00
James Lu
e1d3003683 relay: less accusatory message for links blocked by LINKACL 2016-06-08 16:00:25 -07:00
James Lu
ed19c2b24a relay: block topic changes from the main SID, not the PyLink client 2016-05-22 19:12:11 -07:00
James Lu
a0d20df899 docs: tweak writing-plugins & TOC, move plugin_example to plugins
Closes #226.
2016-05-22 10:59:57 -07:00
James Lu
ed34c43b6c games: remove explicit random.seed()
AFAIK, random already defaults the seed to the system time, and random.seed() without any arguments thus sets it to something that is already set.
2016-05-22 10:28:56 -07:00
James Lu
8c55eb43e7 relay/commands: reformat showuser output slightly 2016-05-21 23:05:39 -07:00
James Lu
03790b5939 relay: implement LINKED <netname> to filter by network
Closes #227.
2016-05-21 22:55:06 -07:00
James Lu
e498a0cace games: implement fml (#122) 2016-05-20 21:33:50 -07:00
James Lu
9cae7682a8 games: implement eightball (#122) 2016-05-20 21:13:39 -07:00
James Lu
357eabe27a relay: optionally relay home server & login details in /WHOIS
Closes #221. Closes #222.
2016-05-19 23:32:43 -07:00
James Lu
4e8de60005 core: Rewrite WHOIS handlers to simply listen to a custom hook (PYLINK_CUSTOM_WHOIS) 2016-05-19 23:32:43 -07:00
James Lu
a2a009cac4 games: mark servicebot as manipulatable for now 2016-05-15 11:58:45 -07:00
James Lu
e4d42bf551 fantasy: fixes to respondtonick, allow configuring custom per-bot prefixes 2016-05-15 11:45:32 -07:00
James Lu
96cefb5be0 fantasy: rework to support service bots (#216) 2016-05-15 11:27:51 -07:00
James Lu
ae87def11f Purge c_ and u_ prefixes from named modes
Closes #217.
2016-05-15 11:05:02 -07:00
James Lu
75798b5fba relay: don't relay kicks to service bots 2016-05-14 16:24:26 -07:00
James Lu
5d4765b30d games: call help() with the right arguments 2016-05-14 16:19:29 -07:00
James Lu
28f992d3cb relay: don't spawn clones for service bots 2016-05-14 16:17:20 -07:00
James Lu
523ef714a0 games: rewrite everything using the new ServiceBot API 2016-05-14 14:53:19 -07:00
James Lu
522b7b8b33 Move DataStore to structures (untested) 2016-05-14 14:53:19 -07:00