3
0
mirror of https://github.com/jlu5/PyLink.git synced 2024-11-30 23:09:23 +01:00
Commit Graph

518 Commits

Author SHA1 Message Date
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
Daniel Oaks
c5242d1590 games: Fix help prefix stripper 2016-05-14 14:53:19 -07:00
Daniel Oaks
f1b0981f87 games: Write .help handler 2016-05-14 14:53:19 -07:00
Daniel Oaks
c2e3ce5bdf games: request/remove commands 2016-05-14 14:53:19 -07:00
Daniel Oaks
45651858e4 games: Use db adapted from DataStore I wrote for mammon. May not seem too useful right now, but I have plans(tm)(c) 2016-05-14 14:53:19 -07:00
Daniel Oaks
cbb2eb318f games: Only handle self messages if enabled 2016-05-14 14:53:19 -07:00
Daniel Oaks
c3e4cfa2de games: Create BotClient class, use bot_clients instead of games_user 2016-05-14 14:53:19 -07:00
Daniel Oaks
f6854ab673 games: Add example dice command from my bot 2016-05-14 14:53:19 -07:00
Daniel Oaks
ed15af72ec games: Simplify/betterise handlers, create example dice handler 2016-05-14 14:53:19 -07:00
Daniel Oaks
4054276ac0 games: Clean up CommandHandler 2016-05-14 14:53:19 -07:00
Daniel Oaks
967dafaf0d games: Very initial barebones command handler 2016-05-14 14:53:19 -07:00
Daniel Oaks
f5efc36bf2 games: Initial plugin. Does NOTHING 2016-05-14 14:53:19 -07:00
James Lu
3930891e9f relay: don't rely on irc.pseudoclient as much during init 2016-05-14 14:03:59 -07:00
James Lu
32bc5f120b core: migrate the main client to ServiceBot (#216)
- irc.spawnMain is dropped. Clients are now spawned in the endburst loop, after protocol negotiation completes. This allows PyLink to spawn clients with hideoper, etc., closing #194.
- utils.add_cmd and irc.callCommand are now just wrappers around world.services['pylink'].add_cmd and call_cmd respectively.
- coreplugin registers the main client while it is loaded up, before any commands are added.
2016-05-14 13:29:23 -07:00
James Lu
bcc648adff relay: support relaying more channel modes
flood, flood_unreal, joinflood, freetarget, c_noforwards, and noinvite are whitelisted with this commit.
2016-05-11 21:18:30 -07:00
James Lu
366836b821 relay: burst topics from the main PyLink server
When a channel is being initialized, PyLink has no specific network to propagate topics from; they just get sent from whichever linked network we happened to iterate over first. This prevents misleading topic setters like 'randomnet.relay' from showing up.
2016-05-02 18:54:46 -07:00
James Lu
7b2319b7c5 changehost: migrate to irc.getHostmask 2016-05-01 15:05:30 -07:00
James Lu
917b0de596 relay: log spawnlocks calls 2016-05-01 14:59:13 -07:00
James Lu
f6a9f0729a relay: don't error if the privmsg source on a remote network is missing
This can happen when someone speaks while a network is initializing, for example.
2016-05-01 14:59:13 -07:00
James Lu
bb8a548e74 relay: make handle_quit error-tolerant if the target is missing
In cases where multiple networks disconnect simultaneously, the relay user for a quitting client from the first dying network might have also disappeared while handle_disconnect was processing the disconnection of a second dying network. This should take into account those situations.
2016-05-01 14:59:13 -07:00
James Lu
54987fde4e relay: code cleanup, possibly fix clones for PyLink clients being spawned from rare race conditions 2016-05-01 14:59:13 -07:00
James Lu
ab5624343b relay: fix regression causing 'load relay' to freeze 2016-05-01 14:59:13 -07:00
James Lu
69cd3cfbf8 relay: fix race conditions when multiple networks disconnect simultaneously 2016-05-01 14:59:13 -07:00
James Lu
3bb1208e74 core: move toLower to Irc (#199) 2016-04-30 16:57:38 -07:00
James Lu
2fe2e9c8c4 core: move isOper, checkAuthenticated to Irc (#199) 2016-04-30 16:54:11 -07:00
James Lu
4bd4c23a08 networks: also remove coreplugin call 2016-04-30 16:50:04 -07:00
James Lu
78f8a2fc8d core: move isManipulatableClient, getHostmask to Irc 2016-04-30 16:44:37 -07:00
James Lu
064cb9b6aa core: move reverseModes, joinModes into Irc 2016-04-30 16:33:46 -07:00
James Lu
a069ce8cb4 Unbrick loglevel changing (Closes #208) 2016-04-23 11:06:08 -07:00
James Lu
42718ed323 relay: Allow IP sharing to be toggled per network
Via a new "relay_no_ips" option in server blocks. Closes #201.
2016-04-18 12:29:15 -07:00
James Lu
4c83bfc3ef relay: don't error if irc.pseudoclient hasn't been initialized yet 2016-04-18 11:52:01 -07:00
James Lu
8f32727a3f Move rehash into core (Closes #178) 2016-04-09 09:54:04 -07:00
James Lu
9fde35fd77 relay: handle server name conflicts more correctly
1) Clear the relay servers cache
2) Disconnect
3) Raise a proper exception so other parts of relay don't carry on with undefined behaviour
2016-04-02 12:46:45 -07:00
James Lu
c01b449741 relay: treat network names case-sensitively 2016-04-02 12:15:53 -07:00
James Lu
44b102ffce networks: allow all opers to run 'autoconnect' 2016-04-02 09:48:49 -07:00
James Lu
fab404f8d6 Merge branches 'master' and 'wip/relay-fixes' into devel 2016-04-01 18:32:19 -07:00
James Lu
3a8b0aa123 relay: catch OSError too when loading DB 2016-04-01 18:31:53 -07:00
James Lu
9e33081bc9 relay: fix typo in comment 2016-03-30 21:22:18 -07:00
James Lu
d21344342d relay: experimental fix for #183 2016-03-30 18:33:44 -07:00
James Lu
b100f30cfe fantasy: break if IRC object isn't ready 2016-03-27 21:46:10 -07:00
James Lu
4a0ee6f54c relay: be more thread-safe via dict.copy() 2016-03-26 18:19:08 -07:00
James Lu
08c3b99dfb relay: fix ambiguous logging in KICK blocking 2016-03-26 17:56:11 -07:00
James Lu
aedb05608e relay: actually, just kill handle_spawnmain
this is causing more problems than it is worth
2016-03-25 17:09:40 -07:00
James Lu
ce3d3cf697 relay: check to make sure network is ready before handling spawnmain 2016-03-25 16:59:27 -07:00
James Lu
0bb54d88e0 New servprotect plugin (anti-KILL/SAVE flood) 2016-03-25 16:51:02 -07:00