Commit graph

2001 commits

Author SHA1 Message Date
jesopo
33de403685 Implement bitbot.dev/multi-line 2019-06-16 09:53:12 +01:00
jesopo
5b58cc05b6 Check that we have enough PRIVMSG args for strip_color.py 2019-06-16 09:52:04 +01:00
jesopo
c9de95f44a forgot to pass stdout and stderr to command callbacks! 2019-06-16 09:51:45 +01:00
jesopo
8ab4880c5c Change from yield checks to a func in events that pass up EventErrors 2019-06-15 18:42:14 +01:00
jesopo
cb2cab627f Remove debug yield check 2019-06-15 18:41:04 +01:00
jesopo
fd35acb01b Request draft/event-playback when available 2019-06-15 00:49:14 +01:00
jesopo
1d8173f607 copypaste fail, setting_info -> export_settings[setting] 2019-06-14 17:39:11 +01:00
jesopo
e814494777 Show example (when available) for "invalid value" error 2019-06-14 17:35:12 +01:00
jesopo
229a45a491 Change prviate channel_access commands to use a "channel-access" yield check 2019-06-14 17:23:22 +01:00
jesopo
f8b086b095 "saved a duck" -> "befriended a duck" 2019-06-14 17:11:44 +01:00
jesopo
9b5f946cec 80 col wrap 2019-06-14 17:11:36 +01:00
jesopo
359e977d18 Don't let users change settings for other channels when they have +o in the
current channel
2019-06-14 16:34:48 +01:00
jesopo
50e9f56ca3 Show when a server connected instead of "bytes read/written per second" in stats
endpoint
2019-06-14 16:12:03 +01:00
jesopo
3fad17d1b9 catch StopIteration.value, pass back EventError that comes from a generator 2019-06-14 12:48:26 +01:00
jesopo
74a4d7077d Remove !set/!channelset/!serverset/!botset and related commands 2019-06-14 12:29:24 +01:00
jesopo
e713086255 Advise use of !config, not !set/!channelset/!serverset/!botset 2019-06-14 12:27:45 +01:00
jesopo
7a5af8f558 yield already generated permission check for serverset/botset 2019-06-14 12:25:53 +01:00
jesopo
f614d1fc14 add self check.command, change !config to use new yields 2019-06-14 12:09:42 +01:00
jesopo
f05fc209b0 Add a way to __or__ utils.Checks, as a "if one of these passes" thing 2019-06-14 12:01:55 +01:00
jesopo
d7fa2cfa24 Catch yields in command callbacks for e.g. permission checks 2019-06-14 11:42:12 +01:00
jesopo
11643f6eea Expose IRCChannel.mode_str() on REST API stats endpoint 2019-06-13 11:54:13 +01:00
jesopo
795f6afbeb Mode mode (and mode arg) parsing to IRCChannel.py, add IRCChannel.mode_str 2019-06-13 11:53:47 +01:00
jesopo
675c510223 typo, 'acount' -> 'count' 2019-06-12 22:57:04 +01:00
jesopo
f336cecb06 "duck" when duck count is 1, "ducks" otherwise 2019-06-12 22:36:26 +01:00
jesopo
7324a05d3e WARN log (instead of exception) when we receive an unknown label 2019-06-12 15:36:59 +01:00
jesopo
db7c62f76a Drastically simplify karma regex: only "strip" off last 2 chars of --/++ 2019-06-11 13:17:50 +01:00
jesopo
4dc957afe6 Make root wikipedia command !wikipedia, !wi and !wiki as aliases 2019-06-10 23:06:47 +01:00
jesopo
03917649ee Add help/usage strings for ducks.py 2019-06-10 16:41:32 +01:00
jesopo
87a01dac95 INFO log when we drop a message in message_filter.py 2019-06-10 15:02:20 +01:00
jesopo
1625534951 Strip font formatting chars before doing message filtering 2019-06-10 14:49:01 +01:00
jesopo
1e03a40f8f Change message_filter.py _name to "Filter" 2019-06-10 14:43:14 +01:00
jesopo
807e239a2b Ignore sts tokens on plain-text connections if no port key is provided 2019-06-10 14:01:58 +01:00
jesopo
53907b57d7 command-out truncation logic should be referencing sent_line 2019-06-10 11:21:59 +01:00
jesopo
49524119a5 Add message_filter.py 2019-06-10 10:46:12 +01:00
jesopo
6c5dc958d0 Add .assure() to ParsedLine, to make it immune from .valid() 2019-06-10 10:45:02 +01:00
jesopo
6c64a2296c draft/resume-0.4 -> draft/resume-0.5 2019-06-09 16:18:25 +01:00
jesopo
b782657b69 manage tweet thread ourselves to make sure it's a daemon 2019-06-09 15:15:50 +01:00
jesopo
62289ff41b Remove debug print 2019-06-09 14:25:24 +01:00
jesopo
dad60ed307 only add to IRCBuffer when there's actually a message (e.g. exclude TAGMSG) 2019-06-08 18:48:42 +01:00
jesopo
abccb06dc5 Add missing time import 2019-06-08 12:13:51 +01:00
jesopo
d98e814d3f Show how many seconds it took to !bef/!trap a duck 2019-06-08 12:10:27 +01:00
jesopo
d4ba98307f We should look at ISUPPORT's STATUSMSG token instead of PREFIX 2019-06-08 10:59:52 +01:00
jesopo
16b9361371 Only request a CAP once. closes #66 2019-06-08 10:17:13 +01:00
jesopo
d9321b87ec self._get_sts no longer exists 2019-06-08 07:57:44 +01:00
jesopo
3a2404d1c9 Fixes for tweet streaming found from finally testing it 2019-06-07 22:01:13 +01:00
jesopo
321bd7acf4 check stdout/stderr has_text() before .send() gets rid of it 2019-06-07 16:21:19 +01:00
jesopo
b1d07859c3 actually return ret 2019-06-07 16:21:11 +01:00
jesopo
8e6835be3c Only show typing indicators for commands that expect output 2019-06-07 15:57:15 +01:00
jesopo
5f47d86708 Send +draft/typing tag when processing commands 2019-06-07 15:30:53 +01:00
jesopo
f822345976 Merge branch 'master' into feature/write-thread 2019-06-07 15:07:31 +01:00
jesopo
2199069629 Better formating for pull_request ready_for_review event 2019-06-07 11:29:11 +01:00
jesopo
9c6b9c3964 List()ify self.bot.servers.values() as it can change mid-QUIT 2019-06-06 22:39:57 +01:00
jesopo
d281f5ef17 Remove +draft/typing TAGMSG - that was for testing 2019-06-06 21:16:39 +01:00
jesopo
f96378ac07 move immediate-write-trigger to IRCServer.py, trigger _event_loop for
running=False
2019-06-06 17:58:35 +01:00
jesopo
6f27879d1b Send +draft/typing before processing command. WIP 2019-06-06 17:31:11 +01:00
jesopo
2ca4fd48f7 Make params arg for logging functions optional 2019-06-06 12:59:47 +01:00
jesopo
5299f816af assign local var "modes" 2019-06-06 11:22:45 +01:00
jesopo
4c6a398f53 Ask for our own modes when we get a 001 2019-06-06 11:16:47 +01:00
jesopo
4055e7c21f put formatting reset after !seen info (so colors can't leak) 2019-06-05 20:52:25 +01:00
Anton McClure
5eeffc30ef
Replaced command ,bang with ,trap 2019-06-05 10:37:58 -04:00
jesopo
7e3375cfbd Change duck-triggering to be through regex commands that catch ALL messages;
this will make is-silenced and ignores work automatically
2019-06-05 14:18:41 +01:00
jesopo
74c3d3a009 Don't count JOINs towards duck-triggering messages 2019-06-05 14:16:37 +01:00
jesopo
3590a64a51 Store information about last-seen-action and recall when !seen is used 2019-06-05 13:18:44 +01:00
jesopo
5e8f9ccbcf Remove users from channels/server AFTER we call received.quit 2019-06-05 13:18:29 +01:00
jesopo
c6696c8b00 Pass along minimalistic formatted lines, as well as prettier ones 2019-06-05 13:18:13 +01:00
jesopo
8a536c3ac5 WARN when we see 10 labeled-responses while waiting for a response to a line 2019-06-05 12:11:14 +01:00
jesopo
0d64f55215 Strip html from !define/!randomword output 2019-06-05 12:05:51 +01:00
jesopo
6b7705a0ea Fix commit_comment format string and show url 2019-06-05 11:40:23 +01:00
jesopo
2d46fe0cbf labels: Use BatchType to match, pass lines not line, batch ID isn't a label,
fire event on label response
2019-06-04 17:54:19 +01:00
jesopo
2470c1ec03 Add new BatchType object, to match like how Capability and MessageTag do 2019-06-04 17:51:55 +01:00
jesopo
8dbae6a5e9 Give SentLine (and preproc.send events) a new event object, to track events
related to a line after it is sent
2019-06-04 17:51:20 +01:00
jesopo
825dce5292 .on_send( only exists on SentLines, not ParsedLines 2019-06-04 14:41:55 +01:00
jesopo
09015dd302 Change signals.py to subvert write throttling when sending QUIT 2019-06-04 14:38:08 +01:00
jesopo
d3cb7dc5cd 'hunder2' -> 'hunter2'. meme typos D: 2019-06-04 09:30:33 +01:00
jesopo
5071bb1ed7 Actually capture IP addresses in groups 2019-06-03 16:49:25 +01:00
jesopo
15bb7ebb51 Resolve lastfm nowplaying args to a user's set lastfm args is available 2019-06-03 16:00:53 +01:00
jesopo
e6d2208cc4 Differentiate between send and received ctcp events 2019-06-03 14:22:19 +01:00
jesopo
95f59779f7 Also track msgids from CTCP in ircv3_msgid.py 2019-06-03 14:10:25 +01:00
jesopo
6b2af83681 pass is_channel through CTCP events, fire generic "got a ctcp" event 2019-06-03 13:51:30 +01:00
jesopo
ef221f4165 v1.8.0 release 2019-06-03 13:30:39 +01:00
jesopo
248772f3e3 Bump resume back down to draft/resume-0.4 (from draft/resume-0.5) for now 2019-06-03 12:55:09 +01:00
jesopo
f0f05a4748 Update --depends-on hashflags for ircv3 module renames 2019-06-03 12:45:18 +01:00
jesopo
9a8b345c53 Prefix names for all IRCv3 modules with "ircv3_" 2019-06-03 12:44:04 +01:00
jesopo
a18157700c Check from_self, not if target==is_own_nickname, use from_self when adding to
buffer obj
2019-06-03 11:37:23 +01:00
jesopo
ae3e2708c0 buffer lines in private messages should be stored against the sender 2019-06-03 11:35:31 +01:00
jesopo
8b796c159f Only parse CTCP when we're not in a TAGMSG event 2019-06-03 11:10:01 +01:00
jesopo
d610282c9e Consolidate PRIVMSG, NOTICE and TAGMSG handlers in to 1 function 2019-06-03 11:03:12 +01:00
jesopo
5f8c93ea92 use last-seen msgid to prevent duplicate messages in chathistory BATCH 2019-06-02 15:19:05 +01:00
jesopo
c44424b5a1 Track last-seen msgid per-channel (add msgid.py) 2019-06-02 15:18:49 +01:00
jesopo
c212d70b68 Hold on to BATCH args, allow event hooks to manipulate batches 2019-06-02 15:18:36 +01:00
jesopo
f9f637e084 Remove IRCSendBatch, fix some batch-related type hints 2019-06-02 10:13:51 +01:00
jesopo
dc284bab4a Only enable write throttling when _write_buffer is empty
closes #59
2019-05-31 15:49:34 +01:00
jesopo
4698ea6f78 'draft/resume-0.4' -> 'draft/resume-0.5' 2019-05-31 10:28:00 +01:00
jesopo
f7f476e40b Remove empty _random_string declaration 2019-05-30 17:27:48 +01:00
jesopo
0e6bcb5af0 Hex-encode master passwords, instead of b64, to avoid "strange" chars 2019-05-30 17:25:24 +01:00
jesopo
17ee70cdd6 'alias' -> 'str(server)' as alias does not exist in the current context 2019-05-30 16:17:39 +01:00
jesopo
367eb1c60e Make labeled-resposnes it's own module, tag and track every sent line 2019-05-30 15:36:10 +01:00
jesopo
58aea4b3b4 draft/labeled-response -> draft/labeled-response-0.2 2019-05-30 07:44:53 +01:00
jesopo
d225f08b9d labeled-response is not ratified yet 2019-05-29 17:54:43 +01:00
jesopo
b8f778d7bd Only try to send QUITs on ctrl+c when we're connected - sys.exit otherwise 2019-05-29 16:11:47 +01:00