Commit graph

71 commits

Author SHA1 Message Date
jesopo
a4237df4e9 Change IRCLineHandler to use delimited events 2018-09-04 10:41:16 +01:00
jesopo
0d863a4239 Track a user's away status in IRCUser 2018-09-04 10:15:20 +01:00
jesopo
345bc18366 Add IRCUser.identified_account for ACCOUNT/extended-join 2018-09-04 09:18:14 +01:00
jesopo
c5a3ce4987 Don't get_user before we've seperated userhost-in-names hostmasks 2018-09-04 08:12:45 +01:00
jesopo
d72c15c956 Most userhost-in-names check to after mode prefix checking 2018-09-04 08:04:49 +01:00
jesopo
1c3c56e7f4 Use "draft/message-tags-0.2" IRCv3 capability to actually be able to receive
TAGMSG
2018-09-04 07:35:26 +01:00
jesopo
e5e9a6fc65 idle-notify un-away messages don't have *any* args - this caused BitBot to crash
in IRCLineHandler.handle
2018-09-04 07:20:27 +01:00
jesopo
dcba6d2c6e Support IRCv3's userhost-in-names 2018-09-04 07:11:02 +01:00
jesopo
3ca0230733 Fix referencing account tag for ACCOUNT in IRCLineHandler 2018-09-04 07:01:59 +01:00
jesopo
d90a5164da Nope, revert echo-message support. a certain network only offers it in channel,
not private.
2018-09-03 22:32:48 +01:00
jesopo
1c474771c5 Support IRCv3's echo-message 2018-09-03 22:17:34 +01:00
jesopo
759cd64f33 Keep a list of CAP capabilities in IRCServer 2018-09-03 22:17:01 +01:00
jesopo
94945da9be Support IRCv3's away-notify 2018-09-03 21:58:26 +01:00
jesopo
b7637d42bf server -> event["server"] 2018-09-03 21:58:14 +01:00
jesopo
ad775239b2 Send message-tags through PRIVMSG, NOTICE and !commands 2018-09-03 21:49:22 +01:00
jesopo
5963308bdc Support TAGMSG in IRCLineHandler 2018-09-03 21:47:59 +01:00
jesopo
c0130a34eb IRCv3 message tag value should not be an array 2018-09-03 20:04:58 +01:00
jesopo
36904af986 tag_split, not tag 2018-09-03 12:45:27 +01:00
jesopo
4368c69035 Handle empty tag sections, e.g. "@;tag=value" 2018-09-03 12:42:50 +01:00
jesopo
bbcc86dc24 Support ircv3's extended-join 2018-09-03 12:37:07 +01:00
jesopo
dea6fbce0f Support account-tag and account-notify 2018-09-03 12:31:00 +01:00
jesopo
6d8ac4d10a typo! targer -> target 2018-09-03 12:16:27 +01:00
jesopo
9d95581c44 Support IRCv3's chghost and invite-notify 2018-09-03 11:47:11 +01:00
jesopo
0f578b1ec1 Send CAP END when we're not waiting for any capability handshakes 2018-09-03 11:18:20 +01:00
jesopo
29851d4305 Make CAP functionality more part of the framework and support message-tags and
multi-prefix
2018-09-03 11:14:52 +01:00
jesopo
3f79154e2b received.mode -> received.mode.channel (and bugfixes!) 2018-09-02 22:40:41 +01:00
jesopo
da1e87e335 Some networks don't prefix channel names in INVITE messages 2018-08-31 13:20:35 +01:00
jesopo
9874f79b49 Give modules event objects with "context"s, to facilitate purging all the event
hooks for a module
2018-08-31 12:55:52 +01:00
jesopo
a31ee247aa Fix a copy paste fail in IRCLineHandler that caused PARTs to be handled as QUITs 2018-08-31 10:33:53 +01:00
jesopo
b216ed081b Add missing ":" in IRCLineHandler.LineHandler.mode() 2018-08-30 11:15:18 +01:00
jesopo
bfca9bc207 default events on IRCLineHandler should use original_line, not line 2018-08-30 11:13:05 +01:00
jesopo
9b7c7035f9 Refactor handling MODE in IRCLineHandler 2018-08-30 11:12:48 +01:00
jesopo
669aa32c31 Report actual topic setter (use 333, not 332) 2018-08-29 15:17:06 +01:00
jesopo
3ec521538a Print topics in print_activity.py 2018-08-29 14:57:40 +01:00
jesopo
4045c55ba3 Add missing comments in IRCLineHandler.LineHandler 2018-08-29 12:54:47 +01:00
jesopo
bb3eaff14a Fix CAP logic that was broken by recent IRCLineHandler refactor 2018-08-29 12:44:09 +01:00
jesopo
0b95dfb98b Do a default event for received data if there's no hooks for it 2018-08-29 12:43:54 +01:00
jesopo
fead75cd2f Refactor IRCLineHandler in to an object that uses .on("raw") events 2018-08-29 12:20:25 +01:00
jesopo
f2b2ac52e7 Send a PONG event, use the right arg when sending a WHO 2018-08-28 15:14:22 +01:00
jesopo
ef16817ad5 Switch to time.monotonic for comparisons, only send data at most once every .5
seconds and only send max 512 bytes at a time
2018-08-28 14:36:16 +01:00
jesopo
e5a5fa5c4b modules/logging.py -> IRCLogging.py; IRCLog.py -> IRCBuffer.py; change logging
to be an object on the server object instead of an event call
2018-08-28 12:23:57 +01:00
jesopo
92617895e4 "self.nick" event didn't get updated 2018-08-03 16:39:53 +01:00
jesopo
2ea2dd17da implemented handling notices in IRCLineHandler, including server notices 2018-07-22 21:46:22 +01:00
jesopo
f84a05aec5 check if a channel is in attempted_join before attempting rejoin 2018-07-15 23:54:27 +01:00
jesopo
f961c95de9 only pass things needed through events, not **data.map() 2018-07-14 10:18:28 +01:00
jesopo
29c55246b0 Clear default mode prefixes when we get a 005 with mode prefixes in it 2018-07-02 16:25:34 +01:00
jesopo
1148aad8a4 added handle_KICK to IRCLineHandler 2018-07-02 11:08:04 +01:00
jesopo
9f6a3b600a Remove commented example raw IRC line from IRCLineHandler 2018-06-17 12:51:23 +01:00
jesopo
46d8bd879e Fix crash on PRIVMSG with nothing but whitespace 2018-01-13 22:21:53 +00:00
jesopo
0cc72d5d66 Added a "replay" system to EventManager hooks, to replay missed .calls 2017-12-26 10:32:36 +00:00