Commit graph

1939 commits

Author SHA1 Message Date
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
jesopo
768059fcf4 Switch resume.py to use the last server-time it saw, not last .recv() 2019-05-29 15:53:20 +01:00
jesopo
240faa03fb Move IRCv3 server-time code in to it's own module, save last @time tag 2019-05-29 15:52:21 +01:00
jesopo
2f6dda9030 First draft of following/unfollowing tweets in channels 2019-05-29 12:19:53 +01:00
jesopo
4543f0a439 Switch from bot-url metadata to bot+homepage (https://git.io/fjlSn) 2019-05-28 10:28:48 +01:00
jesopo
113a3b6405 re.escape nicknames for highlight prevention 2019-05-28 08:18:42 +01:00
jesopo
e483d4574b 'bot' -> 'self.bot' 2019-05-27 17:04:21 +01:00
jesopo
86d46c9917 re-add _reload function 2019-05-27 16:55:02 +01:00
jesopo
7b6905454f Don't include module-unload numbers in "success" numbers 2019-05-27 16:54:44 +01:00
jesopo
850ddd0ab4 Use self.bot.load_modules in modules.py 2019-05-27 15:47:47 +01:00
jesopo
5b90a1a1d4 ModuleManager's load_module function now takes a ModuleDefinition 2019-05-27 14:57:16 +01:00
jesopo
76b268e60e Switch to using tweepy for tweets module 2019-05-27 14:52:08 +01:00
jesopo
786f04ea16 set changed = True when we pop a module with no dependencies left 2019-05-27 14:50:15 +01:00
jesopo
984274a9e1 fix cve.py helpstring 2019-05-25 21:44:50 +01:00
jesopo
268c5adb3c Add depends-on hashflags to relevant modules 2019-05-25 21:40:06 +01:00
jesopo
30b7c2419d Actually save blacklist setting when reenabling a module 2019-05-25 12:36:07 +01:00
jesopo
1fb4936fad Don't eat a character when preventing highlights 2019-05-24 21:33:01 +01:00
jesopo
4d4271435d Use regex to prevent highlights in github module 2019-05-24 21:28:43 +01:00
jesopo
6b41834a35 connect_time is on server.socket, not server 2019-05-24 17:36:20 +01:00
jesopo
a3a2c1e5a4 Store IRCSocket connect_time, show bytes read/write per second in stats.py 2019-05-24 17:32:59 +01:00
jesopo
3e8a31ba73 _match_caps takes 2 args 2019-05-24 05:47:01 +01:00
jesopo
61af81c9de Add comment about why we strip non-alnum chars from private commands 2019-05-23 16:10:31 +01:00
jesopo
4b5f839231 Forgot not so it was stripping alnum chars, not non-almun chars 2019-05-23 16:05:41 +01:00
jesopo
f0230eb001 attempted_auth is no longer used 2019-05-23 16:04:09 +01:00
jesopo
0a23e71e4e .lstrip alphanumeric chars from private commands 2019-05-23 16:03:49 +01:00
jesopo
e2a878def1 Remove self param of _validate 2019-05-23 15:36:04 +01:00
jesopo
f4b702fe04 Remove debug printing from config.py 2019-05-23 14:18:15 +01:00
jesopo
3806fd864b Add require_setting to pronouns.py 2019-05-23 12:18:12 +01:00
jesopo
724b3380d3 Use require_setting in user_time.py and weather.py 2019-05-23 11:50:12 +01:00
jesopo
d8b625eaa9 Add setting example in location.py 2019-05-23 11:49:57 +01:00
jesopo
34b7768d42 Use require_setting in birthday.py 2019-05-23 11:46:00 +01:00
jesopo
ac9768fcde Add system to require settings per event hook and show example help if they're
not present
2019-05-23 11:45:35 +01:00
jesopo
9df7b80d00 pass the command_prefix that triggered an event through event kwargs 2019-05-23 11:44:52 +01:00
jesopo
9f2881323f Only show register/identify advice when we're using internal auth 2019-05-23 10:39:24 +01:00
jesopo
fef97bfcd8 Show example usage when a user does not provide a setting value 2019-05-23 10:36:59 +01:00
jesopo
13a878cc17 Remove array-setting log - we don't/shouldn't use it. 2019-05-23 10:34:10 +01:00
jesopo
cf29c37112 Add usage examples for all settings 2019-05-23 10:28:14 +01:00
jesopo
8cc0b84e53 event.eat() for command.regex hooks in github module 2019-05-22 22:31:03 +01:00
jesopo
86c36d2ecc LIGHTBLUE tick for verified twitters, not GREEN 2019-05-22 20:29:53 +01:00
jesopo
ce37c66e8a Show a green tick for verified twitter accounts 2019-05-22 20:27:13 +01:00
jesopo
000b264d6d move api def to the only context that uses it, rename twitter_object var 2019-05-22 19:49:55 +01:00
jesopo
aa75f4ef05 Implement auto-tweet setting to get tweet info automatically 2019-05-22 19:42:52 +01:00
jesopo
801eb5adb4 Refactor tweet-formatting logic in to it's own functions 2019-05-22 19:42:36 +01:00
jesopo
02ddb85167 Typo, taret -> target 2019-05-22 19:34:30 +01:00
jesopo
f066dbb232 url_match -> event["match"] 2019-05-22 19:03:51 +01:00
jesopo
5ab4c6cbff target_str is BitBot's own nickname for private messages 2019-05-22 14:26:22 +01:00
jesopo
e3d8063373 Check if a PRIVMSG/NOTICE is send *from* us before we check if it's sent *to* us
- so `user` isn't null when bitbot messages himself.
2019-05-22 14:23:38 +01:00
jesopo
e82a05dd37 RESUME errors now come as FAIL RESUME 2019-05-22 11:57:26 +01:00
jesopo
4ce8d6b461 Pass server through FAIL events, use FAIL command as part of event path 2019-05-22 11:56:21 +01:00
jesopo
cf89e28019 Log calls need formatting arguments as a second arg 2019-05-22 11:56:05 +01:00
jesopo
6ba3588294 stdout.write on success for !disconnect 2019-05-22 08:50:05 +01:00
jesopo
3e1a478f77 Remove old debug print()s from admin.py 2019-05-22 08:49:00 +01:00
jesopo
29d5ab9b56 _handle takes a server param 2019-05-22 08:42:41 +01:00
jesopo
82e79ac4e5 there's no 1 index arg for a batch-end 2019-05-22 08:42:27 +01:00
jesopo
6a4852d2b4 server and tag var don't exist 2019-05-22 08:42:03 +01:00
jesopo
f52fd2adc4 We should be using CAP.available() as it's not a string 2019-05-22 08:34:52 +01:00
jesopo
0dbf44a681 Default taget_str in send.stdout/send.stderr to target.name 2019-05-22 08:24:59 +01:00
jesopo
fe67edecac change arg order for StdOut(/StdErr( in send.stdout/send.stderr events 2019-05-21 23:16:54 +01:00
jesopo
d003b8eb57 change position of target_str in self.command args 2019-05-21 23:14:56 +01:00
jesopo
6d44db6065 Remove references to STATUSMSG - just pass around a raw target_str (target
without statusmsg chars stripped off)
2019-05-21 23:09:32 +01:00
jesopo
d5a973b84b Don't allow karma for empty strings 2019-05-21 16:48:10 +01:00
jesopo
451d0c5928 typo, 'preix' -> 'prefix' 2019-05-21 15:39:54 +01:00
jesopo
73c3068a8d event["channel"] -> event["target"] 2019-05-21 13:53:36 +01:00