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
a402d1057e
clientbot: send CLIENTBOT_KICK payloads for external clients
2016-07-23 12:04:32 -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
7eaf074019
clientbot: poll WHO once every pingfreq
2016-07-23 00:06:11 -07:00
James Lu
91310164be
clientbot: more descriptive default hostmasks
2016-07-22 22:52:06 -07:00
James Lu
734db841f1
clientbot: track failed KICKs with /NAMES & a timer
...
Suggested by @cooper.
This tracking system solves the problem of failed relay kicks causing channel desyncs, because what's seen as a successful KICK when PyLink is linked as a service might not forward
successfully on clientbot network. This can be caused due to the clientbot not being opped, the target being immune or having higher access than the clientbot, etc. When a NAMES reply
(delayed in this case) is received for any channel where an initial /WHO has already been received, a JOIN hook will be sent for any users on the kick queue to rejoin them on the relay.
2016-07-22 22:36:34 -07:00
James Lu
d41d123969
clientbot: send away hook and remove extraneous stub assignment
2016-07-22 00:45:37 -07:00
James Lu
ff807b3d47
clientbot: basic WHO handling, implement away() stub
2016-07-22 00:22:56 -07:00
James Lu
04ed7a8f5d
clientbot: add MODE handling
2016-07-21 19:12:05 -07:00
James Lu
3d7e8f8420
clientbot: fix wrong args to _squit
2016-07-21 19:11:57 -07:00
James Lu
c6fcdd854c
parseModes: give prefix modes precedence over mode types
2016-07-21 19:11:19 -07:00
James Lu
2d886367b5
clientbot: handle prefix modes in NAMES
2016-07-21 18:49:01 -07:00
James Lu
deddbde2b0
clientbot: implement updateClient for tracking client ident/host
2016-07-21 18:49:01 -07:00
James Lu
3e8ed35aea
clientbot: stub kill() and numeric()
2016-07-21 18:16:15 -07:00
James Lu
95ee94e747
clientbot: implement outgoing INVITE
2016-07-21 18:14:23 -07:00
James Lu
a2043d6762
clientbot: make services clients manipulatable
2016-07-21 18:13:17 -07:00
James Lu
1507a87f31
clientbot: wait for KICK acknowledgement before updating state
2016-07-21 18:04:36 -07:00
James Lu
09ce38a53d
clientbot: fix wrong variable
2016-07-21 00:11:15 -07:00
James Lu
dac043a1b6
clientbot: stub updateClient too
2016-07-21 00:04:49 -07:00
James Lu
357e8327c4
pylink: less ambiguous error when module isn't installed
2016-07-21 00:02:37 -07:00
James Lu
7a93c1bbb1
clientbot: capability negotiation (cmodes,umodes,prefixmodes,casemapping)
2016-07-20 23:59:22 -07:00
James Lu
eef54cd77d
classes: Move ISUPPORT-style PREFIX and capabilities handling to Protocol
2016-07-20 23:59:22 -07:00
James Lu
75d88224f1
clientbot: document some functions
2016-07-20 23:59:22 -07:00
James Lu
d2a3a64293
clientbot: use rfc2812-style USER, kthx
2016-07-20 23:59:22 -07:00
James Lu
eb24e01619
relay: allow slashes for clientbot
2016-07-20 23:55:34 -07:00
James Lu
f970f760aa
clientbot: *untested* autopreform support
2016-07-20 23:55:34 -07:00
James Lu
8fb3310d33
clientbot: properly stub a lot more functions
2016-07-20 23:55:34 -07:00
James Lu
dd0c5c7e63
clientbot: format kick reasons with the sender prefix
2016-07-20 23:55:34 -07:00
James Lu
e7ae6ddbff
clientbot: in conditionals, don't break if irc.pseudoclient isn't set yet
2016-07-20 23:55:34 -07:00
James Lu
de618393c0
Fix SQUIT handling from 2f1a338
2016-07-20 23:55:34 -07:00
James Lu
387d47808c
clientbot: add nick, kick handling; squit and sjoin stubs
2016-07-20 23:55:34 -07:00
James Lu
154421ffde
Move SQUIT abstraction into core
2016-07-20 23:55:34 -07:00
James Lu
8b4b08f589
clientbot: names, join, part, quit handling
2016-07-20 23:55:34 -07:00
James Lu
027dfe46a4
clientbot: handle notice, privmsg
...
This is literally the world's most useless IRC bot now.
2016-07-20 23:55:34 -07:00
James Lu
b1b13a5c63
clientbot: fix args list
2016-07-20 23:55:34 -07:00
James Lu
8981d71fd0
protocols: rename _getOutgoingNick() -> _expandPUID()
2016-07-20 23:55:34 -07:00
James Lu
e0b254e6ad
clientbot: ping/pong support
2016-07-20 23:55:34 -07:00
James Lu
58fa769ba0
clientbot: implement JOIN, uplink enumeration
2016-07-20 23:55:34 -07:00
James Lu
c6ed06ba61
utils: new splitHostmask function
2016-07-20 23:55:34 -07:00
James Lu
c52d542ed8
Initial Clientbot stub, with very rudimentary user handling ( #144 )
2016-07-20 23:55:34 -07:00
James Lu
1770058e1b
Move ts6_common.parseTS6Args to ts6_common.parsePrefixedArgs
2016-07-20 23:55:34 -07:00
James Lu
0a0e19d4c2
conf: remove key checks for password fields
...
TODO: replace this with more verbose checks in protocol modules
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
f3b6e8f7ea
setup.py: add ircmatch as requirement
2016-07-19 18:03:43 -07:00
James Lu
fab61729b9
conf: throw a specific error when PyYAML is missing
2016-07-19 17:47:39 -07:00
James Lu
3381dda884
Throw specific errors for missing ircmatch/setuptools libraries
2016-07-19 17:44:22 -07:00
James Lu
166adcf44d
conf: add migration warning for the config file rename
2016-07-19 17:40:22 -07:00
James Lu
1629533242
pmodule-spec: add modes argument to sjoin()
2016-07-17 22:25:01 -07:00