Commit graph

1556 commits

Author SHA1 Message Date
jesopo
fdce6ef7a6 We now need to .send( an IRCLine.ParseLine in perform.py 2019-02-24 08:04:35 +00:00
jesopo
1473f41b03 Fire preprocess.send per-command - use this to only strip colors from ParsedLine
objects for PRIVMSG and NOTICE
2019-02-23 21:40:11 +00:00
jesopo
8c94bcf6ca Move utils.irc.IRCParsedLine to IRCLine.ParsedLine, improve truncation
mechanism, don't convert sent line from ParsedLine to text to ParsedLine for
line_handler handling
2019-02-23 21:33:04 +00:00
jesopo
f4a403836b !raw needs to parse the line it's given in to an IRCParsedLine now 2019-02-23 16:11:41 +00:00
jesopo
6bdec003a1 Split PRIVMSG last param explicitly by " " to make message_split 2019-02-23 10:54:17 +00:00
jesopo
ed4643b15d Use new IRCChannel/IRCUser send_tagmsg in message_tracking.py 2019-02-22 22:37:27 +00:00
jesopo
9d72cbca73 Keep track of a user's away message, not just whether they're away or not 2019-02-22 22:26:50 +00:00
jesopo
dec3485071 Clear command Out text when there's nothing left to send 2019-02-22 17:47:25 +00:00
jesopo
9408cc9487 Typo, 'ValuError' -> 'ValueError' 2019-02-22 17:44:46 +00:00
jesopo
76c6cc3709 Typo, 'taget' -> 'target' 2019-02-22 16:31:17 +00:00
jesopo
5cae86333b Typo, 'channels' -> 'channel' 2019-02-22 11:27:31 +00:00
jesopo
2b430839f9 .on doesn't take kwargs - .call does 2019-02-22 11:26:48 +00:00
jesopo
6177d5c984 Typo, 'channels' -> 'channel' 2019-02-22 11:25:04 +00:00
jesopo
47c2cbb0fa Split line_handler.py out in to different files for different categories 2019-02-22 11:23:36 +00:00
jesopo
7469ff5bd6 Remove unused threading import in line_handler.py 2019-02-22 10:26:31 +00:00
jesopo
1ac8bf6ec1 Support echo-message TAGMSG 2019-02-22 10:14:23 +00:00
jesopo
fde0838fdc Remove code duplication for checking if a PRIVMSG/NOTICE was sent by us 2019-02-22 10:13:49 +00:00
jesopo
46fc552972 Add a require_access attribute to !ghwebhook 2019-02-21 21:18:07 +00:00
jesopo
0fc2dd8754 You can't minus a set from a list (auto_mode.py) 2019-02-21 21:14:57 +00:00
jesopo
1da66fb72d Only give users auto_modes they don't already have (auto_mode.py) 2019-02-21 21:14:09 +00:00
jesopo
827832b2d2 Add channel_access attributes to auto_mode.py commands 2019-02-21 21:10:06 +00:00
jesopo
e28885f746 Don't handle pull_request_review events when they've not been submitted 2019-02-21 11:19:36 +00:00
jesopo
deedab7248 Add IRCServer.send_joins, a nicer interface than manually ",".joining 2019-02-20 17:08:30 +00:00
jesopo
7f2b19cee3 Only send TAGMSG when it's definitely supported (message_tracking.py) 2019-02-20 16:10:37 +00:00
jesopo
ebd02dbfa9 IRCv3 message-tags has been ratified 2019-02-20 15:59:33 +00:00
jesopo
81d82413d4 draft/message-tags-0.3 (JSON tags) was rejected 2019-02-20 14:46:40 +00:00
jesopo
807021ecc4 Pass key through to _get_settings (rest_api.py) 2019-02-19 19:49:13 +00:00
jesopo
a3a75f3480 Remove copy-pasted ":" (rest_api.py) 2019-02-19 19:47:14 +00:00
jesopo
2691fa52e6 Do database-related work on UI thread (rest_api.py) 2019-02-19 19:45:26 +00:00
Jos Ahrens
850c717925
quit: Fix style but better
Positions the colon consistently, but better.
2019-02-19 18:06:24 +01:00
Jos Ahrens
7a7ae615da
quit: Fix style
Positions the colon consistently.
2019-02-19 18:02:24 +01:00
Evelyn
8879e6416e How can you govern a country that has two hundred and forty-six varieties of cheese? 2019-02-19 15:03:31 +00:00
jesopo
cfdb48b3e7 Use IRCRecvBatch in line_handler.py 2019-02-18 23:01:25 +00:00
jesopo
186b6b82a2 Shift formatting protocol data to it's own file: utils.irc.protocol 2019-02-18 14:58:27 +00:00
jesopo
cae6d970ca Sometimes lastfm doesn't give us a list of tracks (lastfm.py) 2019-02-18 13:22:12 +00:00
jesopo
6da35a899b don't pass around has_arbitrary - we don't need it. 2019-02-18 12:42:52 +00:00
jesopo
3a3b197309 Default cap_done to True, there's only one scenario were it is false (resume.py) 2019-02-17 16:00:33 +00:00
jesopo
dc7cdf31d0 Use '&lt;' for '<' in README (permissions) 2019-02-17 14:29:50 +00:00
jesopo
5809ff8490 Add section about identifying (permissions README.md) 2019-02-17 14:28:59 +00:00
jesopo
9f2c501df6 Typo, 'BitBo' -> 'BitBot' (permissions) 2019-02-17 14:27:56 +00:00
jesopo
ec49140a70 Move permissions.py in to a directory and add a README.md for it 2019-02-17 14:26:18 +00:00
jesopo
cb0314da67 Put a helper function in utils to do iso8601 formatting. change IRCServer's
last-read setting to use it.
2019-02-17 14:15:40 +00:00
jesopo
107205d29a Only completely prevent CAP END when we get RESUME SUCCESS (resume.py) 2019-02-17 12:48:22 +00:00
jesopo
92349ad696 typo, 'server.get_settings' -> 'server.get_setting' (resume.py) 2019-02-16 15:53:59 +00:00
jesopo
faf2401069 'received.numeric.###' -> 'received.###' throughout project 2019-02-16 15:53:14 +00:00
jesopo
342c1afa7e Keep a track of channels we're in, in case we RESUME and need to get channel
information (e.g. `chathistory`) (resume.py)
2019-02-16 11:23:40 +00:00
jesopo
716568c21d 'src/IRCServer.capabilities' -> 'src/IRCServer.agreed_capabilities' 2019-02-16 09:12:43 +00:00
jesopo
3e4f3532a1 Put spaces either side of arrow symbol, makes it easier to see (github) 2019-02-16 09:06:29 +00:00
jesopo
e1ceed2907 Typo in comment, 'of' -> 'or' (sasl.scram) 2019-02-15 20:12:13 +00:00
jesopo
686d852e2b SCRAM.error should be within standardised errors (put raw in self.raw_error) 2019-02-15 20:09:32 +00:00
jesopo
e51c653c1e Parse and print when we send QUIT commands (line_handler, print_activity) 2019-02-15 19:58:51 +00:00
jesopo
f6179c46ab Actually grab resume timestamp before it's overwritten (resume.py) 2019-02-15 10:26:33 +00:00
jesopo
a50b8c5694 comment typo, 'tage' -> 'tag' (github) 2019-02-15 07:49:07 +00:00
jesopo
a7d3fd93fc hmac.digest -> hmac.new (the former is too new) (sasl.scram) 2019-02-15 01:21:39 +00:00
jesopo
4e7bfee3a6 Only send +draft/delivered and +draft/read on private message 2019-02-15 00:07:33 +00:00
jesopo
3efe97f6bb copypaste fail, server -> event["server"] (message_tacking.py) 2019-02-14 21:59:00 +00:00
jesopo
52387900bc Support draft/delivered and draft/read (message_tracking.py) 2019-02-14 21:51:51 +00:00
jesopo
ec3096fb50 Put information about USERPASS in sasl/README.md 2019-02-14 12:28:36 +00:00
jesopo
d0ad43b027 Support a USERPASS sasl mechanism that picks the best user:pass mech (sasl) 2019-02-14 11:57:53 +00:00
jesopo
33cacbb904 Don't crash when we try to send a message to channel we're not in
(line_handler.py)
2019-02-14 08:36:41 +00:00
jesopo
15fc5f7124 raise EventError when no results are found, to avoid double stderr write (youtube.py) 2019-02-14 01:00:16 +00:00
jesopo
2794d7235b 'current_badges' -> 'badges' (badges.py) 2019-02-13 16:33:28 +00:00
jesopo
b5b0464873 Typo, 'recieved' -> 'received' (badges.py) 2019-02-13 16:32:31 +00:00
jesopo
3834b246d6 Add !clearbadges (badges.py) 2019-02-13 16:31:32 +00:00
jesopo
acbe02baa6 Support IRCv3 draft/setname proposal (#361) (line_handler.py) 2019-02-13 10:59:37 +00:00
jesopo
5b561b51f4 Fix completely broken chghost code. What on god's earth was I thinking. 2019-02-13 10:56:52 +00:00
jesopo
1927c3c8af Catch and propagate IRCv3's FAIL command (#357) (line_handler.py) 2019-02-13 10:39:10 +00:00
jesopo
460d56eb74 Never allow use of MD2 (sasl.scram) 2019-02-12 23:52:09 +00:00
jesopo
ac958384fe SCRAM doesn't need constant_time_compare, nonces prevent replay (scram.py) 2019-02-12 23:47:24 +00:00
jesopo
62d2449958 MONITOR actually catches NICK changes (nick_regain.py) 2019-02-12 21:01:28 +00:00
jesopo
ef43c9aeef Also use ISON even if MONITOR is supported - to catch NICK changes
(nick_regain.py)
2019-02-12 20:59:11 +00:00
jesopo
f2a7acfe4d Use RPL_ENDOFMOTD or ERR_NOMOTD to denote end-of-registration and a time to
check if we got MONITOR in 005 at any point (nick_regain.py)
2019-02-12 20:48:52 +00:00
jesopo
554b041822 Remove debug print (nick_regain.py) 2019-02-12 20:43:50 +00:00
jesopo
3fc2fec324 Add nick_regain.py, to watch for the bot's desired nick becoming free 2019-02-12 20:42:26 +00:00
jesopo
1f1a19b5b6 set nick to '<nickname>|' when we get a nickname-in-use error (line_handler.py) 2019-02-12 20:40:40 +00:00
jesopo
2e925a6853 user is null when we sent a NOTICE non-echo-message (line_handler.py) 2019-02-12 17:07:39 +00:00
jesopo
44df8240cc user is null when we're sending a message non-echo-mesasge (line_handler.py) 2019-02-12 17:04:55 +00:00
jesopo
e573f9de51 We can *receive* PRIVMSG/NOTICE without a prefix (line_handler.py) 2019-02-12 17:02:12 +00:00
jesopo
21b2e0bbe7 Typo, 'datetme' -> 'datetime' (ctcp.py) 2019-02-12 16:55:56 +00:00
jesopo
0e1535a88d Definte channel before trying to use it for event hook constuction
(line_handler.py)
2019-02-12 16:50:11 +00:00
jesopo
938495fc3a Refactor how CTCPs are sent through events 2019-02-12 16:49:57 +00:00
jesopo
b2d942027e Implement IRCv3 echo-message (line_handler.py) 2019-02-12 16:12:15 +00:00
jesopo
e1c81efa6f Add a way to blacklist CAPs per-network (line_handler.py) 2019-02-12 15:34:50 +00:00
jesopo
7e4c1cadb1 Add !cointoss to random_number.py 2019-02-12 15:23:02 +00:00
jesopo
ce23442f4b Use constant-time compare in permissions.py for password identifying 2019-02-12 11:59:47 +00:00
jesopo
9667b8a6e0 Move constant-time compare function to utils.security 2019-02-12 11:57:49 +00:00
jesopo
305b998a52 Use hmac.compare_digest to do a constant-time compare (sasl.scram) 2019-02-12 11:50:37 +00:00
jesopo
144182868c Upgrade resume.py to draft/resume-0.3 and support sending last-read timestamp 2019-02-12 11:14:36 +00:00
jesopo
8c9626f0a9 Put an strf format for ISO8601 in utils 2019-02-12 11:08:24 +00:00
jesopo
98b82c7f2c Insert label tag to lines in labeled BATCHes (line_handler.py) 2019-02-11 22:19:20 +00:00
jesopo
2f5a232c4e Hold on to tags and type for BATCHes 2019-02-11 22:15:12 +00:00
jesopo
b6df18930c bytes_written/bytes_read is now on IRCServer.socket (stats.py) 2019-02-11 18:26:16 +00:00
jesopo
399723db94 Show file add/remove/change *after* saying it's a push (github) 2019-02-11 11:17:07 +00:00
jesopo
18bb7ec4af Actually return function hook from _shutdown_hook (admin.py) 2019-02-11 10:09:39 +00:00
jesopo
e644888e3e Actually shutdown socket when !shutdown is called (admin.py) 2019-02-11 10:00:55 +00:00
jesopo
9b44b6cd13 Shift socket.socket related logic to IRCSocket.py 2019-02-11 10:00:41 +00:00
jesopo
d087143a5d Iterate through bot.servers.values(), not .keys() (admin.py) 2019-02-10 23:54:31 +00:00
jesopo
fadd21c6d9 Add !shutdown (admin.py) 2019-02-10 23:53:33 +00:00
jesopo
bb4ec082dd Let IRCLine.Line handle truncating command output 2019-02-10 20:49:59 +00:00
jesopo
abf5679b68 Parse sent data in IRCServer._send, not IRCServer.send 2019-02-10 20:49:03 +00:00