Commit graph

1153 commits

Author SHA1 Message Date
jesopo
cca3817537 move permissions module password hashing to utils/security.py 2020-02-24 11:43:55 +00:00
jesopo
9ce21a30eb fix utils.datetime.format.to_pretty_time typehinting 2020-02-24 10:38:58 +00:00
jesopo
eb60e09a23 add isodate requirement for parsing iso8601 durations 2020-02-24 10:30:59 +00:00
jesopo
8f9c063114 only do to_pretty_time as relative when requested 2020-02-24 10:18:55 +00:00
jesopo
a2c8d7080e command doesn't exist - use event["spec"][2] 2020-02-23 17:02:40 +00:00
jesopo
9c1b98ef29 channel.users changes during iteration. copy() it 2020-02-22 08:03:31 +00:00
jesopo
0667ac8c5f add option to encrypt channel_log log files line-by-line 2020-02-20 14:56:04 +00:00
jesopo
3ccb594e10 silence.py's is-silenced export is no longer used 2020-02-19 17:29:34 +00:00
jesopo
3453479235 utilise @utils.export for function exporting in more places 2020-02-19 17:29:10 +00:00
jesopo
70db97f64e support @utils.export on functions, to export those functions 2020-02-19 17:22:37 +00:00
jesopo
ec54fc8ef0 a comment! 2020-02-19 15:02:12 +00:00
jesopo
6ef4c0ea3e fix format_token return typehints 2020-02-19 14:20:57 +00:00
jesopo
43fbbe7279 change format_tokens from $VAR to ${VAR} 2020-02-19 13:49:40 +00:00
jesopo
df79288770 channels should be cleared of users when *we* part them 2020-02-19 11:14:56 +00:00
jesopo
8ce7bd17ff simplify pruning quit/parted users 2020-02-19 11:14:33 +00:00
jesopo
36e0db7ab5 weeks and days should be absolute (divmod of days) 2020-02-18 16:39:36 +00:00
jesopo
329e45e7b9 SETNAME has been ratified 2020-02-18 12:12:01 +00:00
jesopo
7dd70c769d add typehint for IRCServer.targmax 2020-02-17 15:20:24 +00:00
jesopo
7f98ba8310 send multiple KICKs in the same line when possible 2020-02-17 15:16:00 +00:00
jesopo
ec5a6000c9 add IRCChannel.send_modes mass modes and chunking 2020-02-17 10:16:43 +00:00
jesopo
331f966c01 add cmask command spec type (all users in channel matching mask) 2020-02-17 10:16:22 +00:00
jesopo
d5f0cb5f3d remove debug print 2020-02-16 00:06:22 +00:00
jesopo
4298403164 fix _set_modifier typing 2020-02-15 23:35:27 +00:00
jesopo
dfdde884b8 implement command spec modifiers, use for pattern, use pattern for dice.py 2020-02-15 23:31:55 +00:00
jesopo
2b19c337f0 don't call hooks added during event call and don't call ones removed 2020-02-15 20:42:18 +00:00
jesopo
c73570a953 use re.sub, not str.replace, otherwise things like "$" dont work 2020-02-14 23:57:23 +00:00
jesopo
34c7e3d9d9 exported command specs, spec.%s -> command-spec.%s 2020-02-14 22:10:44 +00:00
jesopo
275f896ed8 move SpecTypeErro to utils.parse.spec 2020-02-14 22:03:53 +00:00
jesopo
ab892c33b5 support exported command spec types! 2020-02-14 22:00:15 +00:00
jesopo
f827bdce7f split out command_spec module 2020-02-14 21:59:41 +00:00
jesopo
db5787a594 _schedule_match_part doesn't take an array 2020-02-14 00:01:40 +00:00
jesopo
4f9d51533f pass server on labeled-response events 2020-02-13 23:57:02 +00:00
jesopo
fc8e0f718c another rework of event priorities. insert as >=, not as default 2020-02-13 23:56:04 +00:00
jesopo
df38d7a57f replace lxml usage with html5lib! the future is cool 2020-02-13 21:50:33 +00:00
jesopo
5c9e965d25 labeled response raw.received should fire BEFORE line_handler's 2020-02-13 19:55:00 +00:00
jesopo
22af5fae46 update !silence to use command specs 2020-02-13 11:41:04 +00:00
jesopo
8c76f24c65 actually raise exception for !modinfo not found 2020-02-13 10:13:39 +00:00
jesopo
d7285360ff _schedule_match_part takes an i param 2020-02-12 09:53:18 +00:00
jesopo
5c1ab3066c remove superfluous newline (cron.py) 2020-02-11 11:46:55 +00:00
jesopo
04bc95c8a1 add more cron timestamp fields, allow callbacks to runtime provide schedules 2020-02-11 10:42:37 +00:00
jesopo
f1b15ea7b6 usage doesn't exist. return None instead 2020-02-10 11:09:06 +00:00
jesopo
22cdafd354 format and print ACCOUNT events 2020-02-09 23:04:36 +00:00
jesopo
6982edcb78 correctly handle cron / "step" schedule 2020-02-09 23:00:48 +00:00
jesopo
e5fdef6726 support & in utils.parse.sed, change sed.py to use utils.parse.sed 2020-02-09 16:32:15 +00:00
jesopo
29f0a282a8 add utils.parse.sed. 2020-02-09 10:49:18 +00:00
jesopo
f3ac154fe2 add ModuleManager.try_reload_module(), use it for !reloadmodule 2020-02-09 10:17:40 +00:00
jesopo
94197b33a2 insert new hooks at the start of their priority, to prevent duplicates on reload 2020-02-09 10:14:14 +00:00
jesopo
98bfc4db95 transfer stdout/stderr _assured to IRCLine.assured 2020-02-09 00:54:13 +00:00
jesopo
732a0b77eb should be checking for "*" in user_access 2020-02-09 00:53:59 +00:00
jesopo
4e9df2c552 handle git being in a detached head state when getting current commit 2020-02-08 13:21:29 +00:00
jesopo
de7d35015e spec[2] is a string, not an array of strings 2020-02-08 11:00:31 +00:00
jesopo
3c6eb6f8e7 update ignore.py to use command spec (and not docstrings) 2020-02-07 12:48:37 +00:00
jesopo
39db6dea55 update modules.py to use command spec (and not docstrings) 2020-02-07 12:42:47 +00:00
jesopo
a19f6304c5 update admin.py to use command spec (and not docstrings) 2020-02-07 10:36:25 +00:00
jesopo
29fdc3ce53 regression: readd lost USERPASS SASL meta-mechanism 2020-02-07 00:14:05 +00:00
jesopo
d588760fc4 update other modules to use categorised require_access 2020-02-07 00:11:28 +00:00
jesopo
fe1c9ef746 allow multipe require_accces (comma sep), support "low"/"high"/"admin" 2020-02-06 23:50:19 +00:00
jesopo
822a44570c accept "1"/"0" as "true"/"false" for !config 2020-02-06 17:58:29 +00:00
jesopo
ceb0a19679 typo in !hostmask, 'spect' -> 'spec' 2020-02-06 16:52:26 +00:00
jesopo
c0af477373 add Database.users.by_id() 2020-02-06 16:40:20 +00:00
jesopo
f52a824ffb fix SpecTypeArgumentDate simple() 2020-02-06 16:40:02 +00:00
jesopo
01441efe75 only pull 'charset' from <meta> content-type when it definitely exists 2020-02-06 11:54:04 +00:00
jesopo
5bbae499d1 chghost events no longer have 'username'/'hostname' kwargs 2020-02-05 18:21:08 +00:00
jesopo
fc83d4fe50 move !alias variables in to alias_variables.py, add RNICK (random nick) 2020-02-05 18:18:32 +00:00
jesopo
11e2475d52 aliases.py get.command doesn't need to be PRIORITY_URGENT 2020-02-05 18:06:30 +00:00
jesopo
460cda87bb add command spec type "words" - array of remaining words 2020-02-05 16:32:41 +00:00
jesopo
c4136a50ec refactor -b/-q/-m timer logic in to 1 function 2020-02-05 16:29:07 +00:00
jesopo
87bc9bab9e is8601_format_now() -> iso8601_now() 2020-02-05 10:15:57 +00:00
jesopo
8e611c451e switch module whitelist/blacklist to its own config file 2020-02-04 15:31:17 +00:00
jesopo
150148b4e0 INFO log on successful SASL authentication 2020-02-03 23:22:04 +00:00
jesopo
e79e3f0315 set username and hostmask on chghost before event dispatch 2020-02-03 23:13:57 +00:00
jesopo
96a74747dc implement !modinfo
closes #234
2020-02-03 23:01:36 +00:00
jesopo
7a15e5b2bf store timestamp and current git commit when loading a module 2020-02-03 23:00:53 +00:00
jesopo
b713cf7659 init usages variable, for the case that there's no usage 2020-02-03 10:37:27 +00:00
jesopo
30aadda093 ratify labeled-response 2020-02-03 10:23:12 +00:00
jesopo
7105ba01de also detect encoding for http.request_many() 2020-01-31 11:40:17 +00:00
jesopo
5d3e1ea492 add 'date' command spec type 2020-01-30 21:21:12 +00:00
jesopo
d0d5cc4d08 split utils.datetime out in to .parse and .format 2020-01-30 21:20:56 +00:00
jesopo
1674ef325b add utils.datetime.seconds_since(); compare utcnow to datetime 2020-01-30 14:58:32 +00:00
jesopo
82d20869e1 actually use count (for best_count), dont +=1 spec arg for non-consume 2020-01-30 14:57:40 +00:00
jesopo
73aeb6bde4 add IRCBuffer.find_all() 2020-01-30 14:57:24 +00:00
jesopo
b296a2df05 add IRCBuffer.BufferLine.format() - /me vs message formatting 2020-01-30 14:56:57 +00:00
jesopo
5fb3057814 bump IRCBuffer MAX_LINES to 1024 2020-01-30 14:55:30 +00:00
jesopo
c9d07b6032 make sure we always have a channel when require_mode/access is present 2020-01-30 11:50:57 +00:00
jesopo
49f14caf42 support different Config names 2020-01-30 11:50:40 +00:00
jesopo
e6d0cba63b update aliases.py to use command specs 2020-01-29 17:56:42 +00:00
jesopo
338e1864d7 non-present optional args should still be in the spec as None 2020-01-29 17:55:13 +00:00
jesopo
616eb84264 add "lstring" command spec; "last string" - explicit args or last message 2020-01-29 17:15:54 +00:00
jesopo
c1543ed899 SpecArgumentTypeString should return None when no args 2020-01-29 17:04:17 +00:00
jesopo
67aa90fc94 move "dont unload core modules" to where it won't affect reloads 2020-01-28 16:25:15 +00:00
jesopo
63d2c16954 change "non-consuming spec arg" character from "=" to "-" 2020-01-28 15:42:56 +00:00
jesopo
0744f8b63a refuse to unload core modules 2020-01-28 15:27:13 +00:00
jesopo
a35ed3c6ea use dateutil.relativedelta for to_pretty_time, to cover years/months 2020-01-28 12:33:27 +00:00
jesopo
499a03a0ad add module name collision check to before import and hooks 2020-01-28 10:20:52 +00:00
jesopo
7241027ff7 fix privateonly/channelonly - True or None, not True or False 2020-01-28 01:32:27 +00:00
jesopo
d95f5362bf date permissions module to use command spec args 2020-01-28 01:23:40 +00:00
jesopo
f3c31ec3c1 fix support for non-consuming command spec args 2020-01-28 01:23:19 +00:00
jesopo
7397e36837 add data_directory() func to BaseModule, to get path to data file 2020-01-27 23:22:45 +00:00
jesopo
b4deae3e2d store .data_directory on bot object 2020-01-27 23:22:23 +00:00
jesopo
4cffeae132 forgot to change usage to usages_kwarg 2020-01-27 15:03:40 +00:00