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
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