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 |
|
jesopo
|
9ecec75828
|
'jesopo pushed commit to master' -> 'jesopo pushed to master' (github)
|
2019-02-10 15:09:20 +00:00 |
|
jesopo
|
9235d23350
|
Show when pushes are forced (github)
|
2019-02-10 15:06:26 +00:00 |
|
jesopo
|
af3057dee0
|
Don't send empty JOIN when we have no saved channels (channel_save.py)
|
2019-02-10 14:55:46 +00:00 |
|
jesopo
|
cf64e8832b
|
Make use of "when line sent" logic to disconnect after QUIT (signals.py)
|
2019-02-10 14:32:04 +00:00 |
|
jesopo
|
709365ecf8
|
Utilise new line-tracking logic to reconnect when QUIT sends (admin.py)
|
2019-02-10 14:26:24 +00:00 |
|
jesopo
|
d5bb3c5405
|
Have to refer to timer.kwargs to get kwargs (in.py)
|
2019-02-10 13:27:49 +00:00 |
|
jesopo
|
25096c651a
|
Don't require client cert validation (rest_api.py)
|
2019-02-10 13:26:35 +00:00 |
|
jesopo
|
985f4d60a4
|
Only add a waiting clause for resume CAP if the server actually ACKs it
(resume.py)
|
2019-02-10 13:22:53 +00:00 |
|
jesopo
|
c7d21e2d9e
|
Typo, 'wrap_scket' -> 'ssl_wrap' (rest_api.py)
|
2019-02-10 13:20:22 +00:00 |
|
jesopo
|
93dd75ff31
|
Added !inlist, to list !in reminders (in.py)
|
2019-02-10 13:18:25 +00:00 |
|
jesopo
|
1d206fe78f
|
Use newly abstracted away ssl_wrap (rest_api.py)
|
2019-02-10 12:38:53 +00:00 |
|
jesopo
|
05ae25d3d7
|
ERROR log ERROR s from servers (line_handler.py)
|
2019-02-10 12:22:01 +00:00 |
|
jesopo
|
71eac9d3c0
|
Treat a QUIT from hostmask :* as referring to our connection (line_handler.py)
|
2019-02-10 00:29:22 +00:00 |
|
jesopo
|
ffdf49efc9
|
CAP END for RESUME TOKEN and RESUME ERR , don't for RESUME SUCCESS (resume.py)
|
2019-02-10 00:12:45 +00:00 |
|
jesopo
|
20d75e9716
|
Send request to RESUME a session AFTER we have a new token (resume.py)
|
2019-02-10 00:03:14 +00:00 |
|
jesopo
|
e2b019a9b8
|
log calls need a params arg (resume.py)
|
2019-02-10 00:02:24 +00:00 |
|
jesopo
|
84a3bf6135
|
Also capture channel setting-related modes (e.g. +f for flood settings)
|
2019-02-09 18:48:18 +00:00 |
|
jesopo
|
90618e883b
|
Move REGEX_CUTOFF to outs.py (commands)
|
2019-02-09 17:52:51 +00:00 |
|
jesopo
|
1ff2a00c48
|
Move StdOut/StdErr specific consts to outs.py (commands)
|
2019-02-09 17:50:40 +00:00 |
|
jesopo
|
6b042d9460
|
Split command StdOut/StdErr in to their own file (commands)
|
2019-02-09 17:49:01 +00:00 |
|
jesopo
|
b9e71ec833
|
title is already a parsed string from _get_title() (title.py)
|
2019-02-09 13:38:09 +00:00 |
|
jesopo
|
8bbfd1d1c3
|
Add empty params arg to log call (title.py)
|
2019-02-09 13:37:21 +00:00 |
|
jesopo
|
730a4e6b87
|
Don't use the event system to get results from other modules - use exports
|
2019-02-09 13:14:45 +00:00 |
|
jesopo
|
4bc43f686e
|
'username' -> 'nickname', update RESUME nickname when our nickname changes (resume.py)
|
2019-02-09 12:33:26 +00:00 |
|
jesopo
|
d3f5ff78a6
|
Another 'new-token' -> 'new-resume-token' (resume.py)
|
2019-02-09 12:27:37 +00:00 |
|
jesopo
|
a23e46ddbf
|
'def on_cap_new' -> 'def on_cap_ls' (resume.py)
|
2019-02-09 12:27:13 +00:00 |
|
jesopo
|
1e6e030d6f
|
Actually do 'resume' -> 'resume-token' (resume.py)
|
2019-02-09 12:26:47 +00:00 |
|
jesopo
|
feffb2325b
|
"resume" -> "resume-token", "new-token" -> "new-resume-token", typo that was
causing resume token to be deleted as soon as it was set (resume.py)
|
2019-02-09 12:23:37 +00:00 |
|
jesopo
|
3fae5c52cd
|
Forgot to import EventManager (title.py, youtube.py)
|
2019-02-09 10:57:32 +00:00 |
|
jesopo
|
31367b2b5d
|
Eat youtube URLs on LOW priority, switch auto-title to MONITOR priority
|
2019-02-09 10:56:06 +00:00 |
|
jesopo
|
9f6aa93082
|
Actually return title text, not html Tag object (title.py)
|
2019-02-09 10:38:44 +00:00 |
|
jesopo
|
2ac5a53131
|
Add a setting to get the title from URLs automatically (title.py)
|
2019-02-09 10:35:37 +00:00 |
|
jesopo
|
6018cc098d
|
We still need to 'CAP REQ :sasl' when we get 'CAP NEW :sasl' (sasl)
|
2019-02-09 02:58:25 +00:00 |
|
jesopo
|
697ce2ba30
|
Do a SASL reauthentication when we get CAP NEW for SASL (sasl)
|
2019-02-08 23:12:14 +00:00 |
|
jesopo
|
42e2596c9b
|
Return semi-helpful information to github webhooks (github)
|
2019-02-08 23:01:45 +00:00 |
|
jesopo
|
d772eaf36e
|
need to .items() a dict to tuple-iterate it (rest_api.py)
|
2019-02-08 22:53:33 +00:00 |
|
jesopo
|
678e6606ed
|
Abstract away sending response to REST API request (rest_api.py)
|
2019-02-08 22:04:39 +00:00 |
|
jesopo
|
4a68baa0a6
|
Return path from _path_data() (rest_api.py)
|
2019-02-08 21:56:58 +00:00 |
|
jesopo
|
e84f91977c
|
Typo, 'utils.parse' -> 'urllib.parse' (rest_api.py)
|
2019-02-08 21:55:42 +00:00 |
|
jesopo
|
12591d2357
|
Remove now not used params on _request() (rest_api.py)
|
2019-02-08 21:54:33 +00:00 |
|
jesopo
|
c7843a9338
|
Simplify/refactor REST API request parsing code (rest_api.py)
|
2019-02-08 21:52:24 +00:00 |
|
jesopo
|
dc0a021231
|
Show capabilities in API server stats (stats.py)
|
2019-02-08 17:56:13 +00:00 |
|
jesopo
|
9a0b8f3d00
|
server_capabilities is a dict, capabilities is a set (line_handler.py)
|
2019-02-08 17:48:41 +00:00 |
|
jesopo
|
91f78e834e
|
Still REQ CAPs caught from cap.ls command if line_handler.py doesn't request any
|
2019-02-08 17:32:43 +00:00 |
|
jesopo
|
518f32c4ec
|
Fix 2 misspellings of "capabilities" and fix having not changed a variable name
|
2019-02-08 17:32:00 +00:00 |
|
jesopo
|
15ab772442
|
Request CAPs we support when we see them advertised with CAP NEW
(line_handler.py)
|
2019-02-08 17:30:07 +00:00 |
|
jesopo
|
d3f23eafb8
|
make !sp and alias of !spotify (spotify.py)
|
2019-02-08 15:34:04 +00:00 |
|
jesopo
|
d61bb387f7
|
Show when a check_run is queued (github)
|
2019-02-07 23:05:29 +00:00 |
|
jesopo
|
a1496e5415
|
Check that a check_run actually started before it finished (github)
|
2019-02-07 22:59:50 +00:00 |
|
jesopo
|
03a1f62297
|
Script travis module in favour of github webhook check_run events
|
2019-02-07 22:34:54 +00:00 |
|
jesopo
|
fb125081ad
|
Turn seconds in to seconds/minutes/hours/etc (github)
|
2019-02-07 22:32:48 +00:00 |
|
jesopo
|
ede385aca8
|
Use check_run event instead of status for CI (github)
|
2019-02-07 22:30:50 +00:00 |
|
Evelyn
|
ce78bd850a
|
quit: add quote
|
2019-02-07 18:21:35 +00:00 |
|
jesopo
|
53a819512f
|
Make commit hash LIGHTBLUE in status event (github)
|
2019-02-07 15:56:30 +00:00 |
|
jesopo
|
58cd6338fd
|
Color/bold status state (github)
|
2019-02-07 15:49:36 +00:00 |
|
jesopo
|
c401c45a02
|
typo, "_short_id" -> "_short_hash" (github)
|
2019-02-07 15:46:07 +00:00 |
|
jesopo
|
f6079d92c8
|
Remove hanging "or" that i forgot to remove (line_handler.py)
|
2019-02-07 14:26:36 +00:00 |
|
jesopo
|
172acfd0d5
|
Tidy up logic to figure out of a NOTICE is a AUTH notice (line_handler.py)
|
2019-02-07 14:25:56 +00:00 |
|
jesopo
|
f5f5a55e21
|
Add command to list, add and remove travis webhooks (travis)
|
2019-02-07 14:05:12 +00:00 |
|
jesopo
|
0bdac094ea
|
Actually accept !ghwebhook list as a command (github)
|
2019-02-07 14:01:24 +00:00 |
|
jesopo
|
7d25ce44ad
|
Use HTML entity for less-than symbol (sasl README.md)
|
2019-02-07 13:53:46 +00:00 |
|
jesopo
|
35ad1c7c7b
|
Add SASL README.md
|
2019-02-07 13:51:08 +00:00 |
|
jesopo
|
a3ca29dabe
|
Show server name when we log a SASL failure (sasl)
|
2019-02-07 12:23:11 +00:00 |
|
jesopo
|
1485947fcc
|
First commit of travis webhook module
|
2019-02-07 11:49:42 +00:00 |
|
jesopo
|
90591ec5b4
|
Change isgd.py to use Exports to offer url shortening, not events
|
2019-02-07 10:07:11 +00:00 |
|
jesopo
|
d013703705
|
commit_comment events have commit_id in comment , not in the root data (github)
|
2019-02-07 07:42:05 +00:00 |
|
jesopo
|
7dd1eca7ae
|
Don't use string concat when we're already using %s formatting (sasl.scram)
|
2019-02-06 23:04:26 +00:00 |
|
jesopo
|
65766a093a
|
Add more comments, re-seperate out self._ variables and seperate some compound
function calls on to different lines for readability (sasl.scram)
|
2019-02-06 22:58:16 +00:00 |
|
jesopo
|
c77d8aaac8
|
Default error to "" , _client_first /_salted_password /_auth_message to b""
(sasl.scram)
|
2019-02-06 22:36:25 +00:00 |
|
jesopo
|
1bac2f67de
|
Add type hints to SCRAM ctor (sasl.scram)
|
2019-02-06 22:33:30 +00:00 |
|
jesopo
|
50a8de2792
|
Restrict scram algorithms to IANA Hash Function Textual Names (sasl.scram)
|
2019-02-06 22:28:50 +00:00 |
|
jesopo
|
4e3e782519
|
Remove pointless local auth_message variable (sasl.scram)
|
2019-02-06 22:00:23 +00:00 |
|
jesopo
|
efbbe4c3db
|
Move parsing username, password and algorithm to the only place that uses it and
add comments (sasl.scram)
|
2019-02-06 21:49:44 +00:00 |
|
jesopo
|
bffd43648d
|
uuid.uuid4() is not random enough for a nonce (sasl.scram)
|
2019-02-06 21:49:24 +00:00 |
|
jesopo
|
67252833c4
|
Remove pointless local salted_password variable (sasl.scram)
|
2019-02-06 21:19:25 +00:00 |
|
jesopo
|
cbdd8d6fc9
|
Remove pointless local assign of self._password (sasl.scram)
|
2019-02-06 21:16:55 +00:00 |
|
jesopo
|
90b540d5dc
|
Add type annotations to scram util functions (sasl)
|
2019-02-06 21:05:20 +00:00 |
|
jesopo
|
bf3986a1be
|
Log a WARN when we get a 904 (failed sasl)
|
2019-02-06 16:25:43 +00:00 |
|
jesopo
|
16ea48cb54
|
Assume we'll receive a 904 when SCRAM fails with an e= param (sasl)
|
2019-02-06 15:50:42 +00:00 |
|
jesopo
|
c006435fa1
|
Set SCRAM state to just Failure if there's a server-final-message error (sasl)
|
2019-02-06 15:41:31 +00:00 |
|
jesopo
|
09eb3d3314
|
Only panic about a scram failure if it's a server-final-message failure (sasl)
|
2019-02-06 15:38:59 +00:00 |
|
jesopo
|
0e63700761
|
Only send auth_text if it's not None (sasl)
|
2019-02-06 15:37:34 +00:00 |
|
jesopo
|
be95514174
|
auth_text would not be present in a failure scenario
|
2019-02-06 15:36:59 +00:00 |
|
jesopo
|
cfa590eef7
|
Handle error on server-final-message (sasl.scram)
|
2019-02-06 15:28:17 +00:00 |
|
jesopo
|
403466dee3
|
Remove particularly improper quit quotes, add Hillel the Elder quote (quit.py)
|
2019-02-06 14:22:27 +00:00 |
|
jesopo
|
3e54542b6a
|
arguments was not defined if they weren't provided (sasl)
|
2019-02-06 11:22:13 +00:00 |
|
jesopo
|
0004a8a59c
|
Fix mypy linting issue with dict creation (scram.py)
|
2019-02-06 11:09:45 +00:00 |
|
jesopo
|
a7554b835e
|
"+" as part of a SASL handshake is irc-specific so remove it from scram.py
|
2019-02-06 11:07:50 +00:00 |
|
jesopo
|
6b4bb7cdba
|
Type annotate scram.py and don't pass base64 data to scram.py functions
|
2019-02-06 08:50:19 +00:00 |
|
jesopo
|
13083e60a6
|
Don't take a users coins when they make an invalid roulette bet (coins.py)
|
2019-02-05 23:00:56 +00:00 |
|
jesopo
|
aa7aa17ec1
|
Split hash and hmac logic out to their own functions (sasl.scram)
|
2019-02-05 22:53:55 +00:00 |
|
jesopo
|
5d51a283bb
|
Actually check that we don't have CAPs that we're waiting on a ACK/NAK for
before ending CAP negotiation (line_handler.py)
|
2019-02-05 22:26:57 +00:00 |
|
jesopo
|
5991e02b0a
|
Manually count ACK/NAK for REQed CAPs before ENDing CAP negotiation
|
2019-02-05 19:20:02 +00:00 |
|
jesopo
|
ff2d5ef7e7
|
Disconnect from server and throw an exception if SCRAM server verification fails
(sasl)
|
2019-02-05 17:04:00 +00:00 |
|
jesopo
|
fd08e23bd4
|
Move scripts module to it's own directory
|
2019-02-05 16:56:21 +00:00 |
|
jesopo
|
8e59809db2
|
CAP capabilities would not be index 2 if the line is multiline
(line_handler.py)
|
2019-02-05 16:48:12 +00:00 |
|
jesopo
|
b742b1ecee
|
Remove debug print in sasl/__init__.py
|
2019-02-05 15:58:11 +00:00 |
|
jesopo
|
1fe20a2c98
|
Move sasl.py to a directory module and move SCRAM logic to a different file,
move `github/module.py` to `github/__init__.py`
|
2019-02-05 15:54:20 +00:00 |
|
jesopo
|
d4503fdf28
|
Remove SCRAM-related variables on IRCServer object when we see
server-final-message (sasl.py)
|
2019-02-05 12:53:19 +00:00 |
|
jesopo
|
d68c73affa
|
Remove SCRAM debug logging (sasl.py)
|
2019-02-05 12:34:50 +00:00 |
|
jesopo
|
51a4b8ef4e
|
Support SCRAM SASL mechanisms (sasl.py)
|
2019-02-05 12:17:25 +00:00 |
|
jesopo
|
0344ad6470
|
Add ")" that should have been removed when we stopped using enumerate for
github webhook hooks (github)
|
2019-02-04 21:35:31 +00:00 |
|
jesopo
|
ac16887c48
|
Reply to statusmsg commands (e.g. '/msg +channel !ping') with the same statusmsg
|
2019-02-04 21:32:44 +00:00 |
|
jesopo
|
e2d60a541c
|
Try to match against full repository name first, so that we can make specific
rules for specific repositories (github)
|
2019-02-04 10:17:27 +00:00 |
|
jesopo
|
66d2ef2c26
|
We don't need to enumerate hooks (github)
|
2019-02-04 10:17:15 +00:00 |
|
jesopo
|
36e838d585
|
Delete automodes user_channel setting when it's empty (auto_mode.py)
|
2019-02-04 08:45:48 +00:00 |
|
jesopo
|
d7d707d980
|
user doesn't exist in _move(), it's user1 (coins.py)
|
2019-02-02 20:41:08 +00:00 |
|
jesopo
|
1b94a72a65
|
apikey command should have a minimum argument restriction (rest_api.py)
|
2019-02-01 12:02:02 +00:00 |
|
jesopo
|
520d8b681f
|
Actually add private_unban function def. oops. (channel_op.py)
|
2019-01-30 21:07:03 +00:00 |
|
jesopo
|
d2dbb0a249
|
Add private message unban command (channel_op.py)
|
2019-01-30 21:06:02 +00:00 |
|
jesopo
|
98e1d4460e
|
Actually use channel arg in _kick_command (channel_op.py)
|
2019-01-30 21:03:21 +00:00 |
|
jesopo
|
8345ea36d4
|
Support kick and ban command in private message (channel_op.py)
|
2019-01-30 21:02:12 +00:00 |
|
jesopo
|
cd93118571
|
server.get_channel was moved to server.channels.get a long time ago (set.py)
|
2019-01-30 19:40:20 +00:00 |
|
jesopo
|
a2e23acc61
|
Logging takes format params as a separate arg (commands.py)
|
2019-01-30 19:39:03 +00:00 |
|
jesopo
|
72072bbd3d
|
Make sure to call the specific hook we've decided is valid (commands.py)
|
2019-01-30 19:35:43 +00:00 |
|
jesopo
|
8ac989fa96
|
check we have a channel_arg kwarg before parsing it as an int
(channel_access.py)
|
2019-01-30 19:20:11 +00:00 |
|
jesopo
|
0e66921d34
|
Break when we've found a suitable command hook (commands.py)
|
2019-01-30 19:15:11 +00:00 |
|
jesopo
|
b0d67e5170
|
Use correct arg indexes for private channelset (set.py)
|
2019-01-30 19:07:34 +00:00 |
|
jesopo
|
051e4347f9
|
Actually remove call to preprocess.command to after min_args check
(commands.py)
|
2019-01-30 11:41:25 +00:00 |
|
jesopo
|
f25bfd0ae2
|
Correctly check if we're in a channel command before checking if the current
hook is valid (commands.py)
|
2019-01-30 11:37:47 +00:00 |
|
jesopo
|
c822a1afd6
|
Check min_args before we check if a user has permission (commands.py)
|
2019-01-30 11:37:29 +00:00 |
|
jesopo
|
fc39f8f9fc
|
We need to turn channel_arg in to an int (channel_access.py)
|
2019-01-30 11:28:38 +00:00 |
|
jesopo
|
fc4a8d8e34
|
We should be using potential_hook until we've decided on a valid hook
(commands.py)
|
2019-01-30 11:26:54 +00:00 |
|
jesopo
|
64d12e3415
|
Get all hooks when checking command hooks, not just the first (commands.py)
|
2019-01-30 11:23:17 +00:00 |
|
jesopo
|
8a832b7230
|
Check all hooks for a command and pick the first applicable one, to allow for
private_only and channel_only commands to share the same command string
(commands.py)
|
2019-01-30 11:20:14 +00:00 |
|
jesopo
|
b197a537f0
|
Add a private channelset command (set.py)
|
2019-01-30 11:16:42 +00:00 |
|
jesopo
|
2071a10180
|
Support a way to check user channel access in a private command
(channel_access.py)
|
2019-01-30 11:16:34 +00:00 |
|
jesopo
|
bb84fc0291
|
Add a permission to !channelunset and !channelget (set.py)
|
2019-01-30 08:10:41 +00:00 |
|
jesopo
|
9491a44295
|
Correctly compare current time and token expire time and actually cache the
token (spotify.py)
|
2019-01-29 22:46:00 +00:00 |
|
jesopo
|
d178938463
|
Typo, {,} instead of {:} made headers a set (spotify.py)
|
2019-01-29 22:40:44 +00:00 |
|
jesopo
|
a177c5050e
|
URL_SPOTIFY was renamed to URL_SEARCH (spotify.py)
|
2019-01-29 22:39:58 +00:00 |
|
jesopo
|
74e8ad0351
|
Forgot to import time (spotify.py)
|
2019-01-29 22:39:13 +00:00 |
|
jesopo
|
8acc01dd48
|
post_data is the kwarg for POST data, not data (spotify.py)
|
2019-01-29 22:38:31 +00:00 |
|
jesopo
|
bb047ec1b7
|
base64.b64encode(...) takes a byte array, not a string (spotify.py)
|
2019-01-29 22:37:44 +00:00 |
|
jesopo
|
af7a765547
|
Forgot to import base64 (spotify.py)
|
2019-01-29 22:36:54 +00:00 |
|
jesopo
|
2d085e7f91
|
Spotify now requires access tokens to use it's API (spotify.py)
|
2019-01-29 22:34:28 +00:00 |
|
jesopo
|
0c319be1e5
|
Correct usage help for kickban/tempkickban (channel_op.py)
|
2019-01-29 17:37:14 +00:00 |
|
jesopo
|
5e91f0d209
|
Remove haveibeenpwned.py , it's 99% useless
|
2019-01-29 16:01:43 +00:00 |
|
jesopo
|
a501fdea1f
|
Stop processing a command when we've decided the user doesn't have permission
(commands.py)
|
2019-01-29 15:38:04 +00:00 |
|
jesopo
|
249734ebef
|
We don't have an event object in _has_channel_access (channel_access.py)
|
2019-01-29 15:35:38 +00:00 |
|
jesopo
|
e0722dfc8a
|
Seperate out access checking logic so we can call across-modules with the event
system to check if users have specific channel access (channel_access.py)
|
2019-01-29 15:33:55 +00:00 |
|
jesopo
|
7937be5128
|
Don't double up command prefix in !usage output (commands.py)
|
2019-01-29 08:36:47 +00:00 |
|
jesopo
|
f97c1f02fd
|
Actually show the command prefix we now pass to _get_usage (commands.py)
|
2019-01-29 08:33:32 +00:00 |
|
jesopo
|
79ff20b66a
|
Show command prefix in usage strings (commands.py)
|
2019-01-29 08:32:22 +00:00 |
|
jesopo
|
5d47e7e895
|
Add a permission to !ghwebhook so an admin user can use it without +o (github)
|
2019-01-29 08:06:59 +00:00 |
|
jesopo
|
0564a173a3
|
Typo, 'acess' -> 'access' (channel_access.py)
|
2019-01-29 07:35:48 +00:00 |
|
jesopo
|
66b2ffee68
|
Support * as a channel permission, to give users all access
(channel_access.py)
|
2019-01-29 07:32:25 +00:00 |
|
jesopo
|
5e5a62044c
|
We don't need a seperate command for !channelset override (set.py)
|
2019-01-29 07:18:03 +00:00 |
|
jesopo
|
08404c4694
|
Use new utils.consts.PERMISSION_FORCE_SUCCESS in permissions.py
|
2019-01-29 07:14:53 +00:00 |
|
jesopo
|
f9446a3663
|
Show an error when an unknown subcommand is given to !access (channel_access.py)
|
2019-01-29 00:14:33 +00:00 |
|
jesopo
|
10b2ace653
|
Add require_access to commands on channel_op.py
|
2019-01-29 00:08:21 +00:00 |
|
jesopo
|
a3a535b195
|
Delete a user's 'access' channel setting when they have no permissions left
(channel_access.py)
|
2019-01-29 00:02:56 +00:00 |
|
jesopo
|
1b933e7c00
|
IRCUser.User objects don't have .id , they have .get_id() (channel_access.py)
|
2019-01-29 00:00:15 +00:00 |
|
jesopo
|
549332db38
|
Check a return is truthy before we decide it's an error (command.py)
|
2019-01-28 23:57:12 +00:00 |
|
jesopo
|
ee1770cc08
|
Typo, force_success -> force_success = False (commands.py)
|
2019-01-28 23:52:30 +00:00 |
|
jesopo
|
a94d35f0f1
|
Add channel_access.py , to give permissions to users in a channel (similar to
chanserv)
|
2019-01-28 23:50:43 +00:00 |
|
jesopo
|
d10a6d94c1
|
Add a way to force success and force failure of a command permission check
(commands.py)
|
2019-01-28 23:29:52 +00:00 |
|
jesopo
|
5e12d87ca3
|
Use target (after prefixes lstrip) to get channel object (line_handler.py)
|
2019-01-27 22:43:35 +00:00 |
|
jesopo
|
16337fa16e
|
We need to pass a str to lstrip, not an array (line_handler.py)
|
2019-01-27 22:40:29 +00:00 |
|
jesopo
|
1301e80621
|
Strip prefix_symbols from PRIVMSG target, for e.g. 'PRIVMSG +#chan :hi'
(line_handler.py)
|
2019-01-27 22:38:19 +00:00 |
|
jesopo
|
0bb2491399
|
The event fired when we get an account-notify message iss
`received.account.login`, not `received.account` (auto_mode.py)
|
2019-01-27 07:16:41 +00:00 |
|
jesopo
|
1e72c39fda
|
Handle prefix being null when we've received a server notice (line_handler.py)
|
2019-01-26 19:39:49 +00:00 |
|
jesopo
|
3b17cbacea
|
Set server name by event["prefix"].hoskmask not .nickname , they're the same
thing at the moment when it's not a `nick!user@host` but eventually it might not
be (line_handler.py)
|
2019-01-26 19:38:14 +00:00 |
|
jesopo
|
0d7b39e7d9
|
extended-join JOINs have 3 args, not 2 (line_handler.py)
|
2019-01-26 16:17:34 +00:00 |
|
jesopo
|
6affadd306
|
Pass category arg to _set_quotes in quote_add (quotes.py)
|
2019-01-26 16:06:15 +00:00 |
|
jesopo
|
f217c5d192
|
Quote should be saved with saver and timestamp (quotes.py)
|
2019-01-26 16:03:40 +00:00 |
|
jesopo
|
eb5c685128
|
Typo, 'quote' -> 'quotes' (quotes.py)
|
2019-01-26 16:01:17 +00:00 |
|
jesopo
|
6e4607ea8d
|
_set_quotes needs to be given a category (quotes.py)
|
2019-01-26 15:57:07 +00:00 |
|
jesopo
|
5b4954a96c
|
add !quotegrab to take the last message from a user and quote it (quotes.py)
|
2019-01-26 15:55:20 +00:00 |
|
jesopo
|
ed44e6f78b
|
Use .lower() on nickname, as we're using that on s and nickname_lower uses
special irc casemapping (github)
|
2019-01-26 10:53:28 +00:00 |
|
jesopo
|
506aef6366
|
Actually use the output of _prevent_highlight (github)
|
2019-01-26 10:53:14 +00:00 |
|
jesopo
|
2d113011ed
|
Add a setting to insert zero width characters in to highlights (github)
|
2019-01-26 10:49:31 +00:00 |
|
jesopo
|
e6aad7e070
|
Don't give event object to webhook functions - they don't need them
|
2019-01-26 10:33:45 +00:00 |
|
jesopo
|
eb3f4db828
|
Don't put channel messages as low priority, so we can still catch "bitbot: ++"
(karma.py)
|
2019-01-25 23:53:53 +00:00 |
|
jesopo
|
f86a852d55
|
Strip "," and ":" from karma targets (karma.py)
|
2019-01-25 23:45:44 +00:00 |
|
jesopo
|
3c6827850a
|
Remove users from channels they're kicked from (line_handler.py)
|
2019-01-25 18:59:00 +00:00 |
|
jesopo
|
45f47bc3fc
|
Prevent users partaking in the lottery if doing so would put their coin total
below the coin redemption amount (coins.py)
|
2019-01-25 16:04:10 +00:00 |
|
jesopo
|
d75e2452ce
|
Delete nickname_aliases.py as it's been disabled for a very long time due to
bugs
|
2019-01-25 13:21:44 +00:00 |
|
jesopo
|
335f1545a8
|
Give StdOut.send the new method param (commands.py)
|
2019-01-25 07:11:45 +00:00 |
|
jesopo
|
7b3d7f85a6
|
I totally forgot that we don't need flask. at all.
|
2019-01-24 19:17:31 +00:00 |
|
jesopo
|
301dd7378a
|
Add irc_lower() and irc_equals() to IRCServer.Server so that no where else
in the code has to know about the server having a casemapping
|
2019-01-24 17:12:50 +00:00 |
|
jesopo
|
5bfa0d2b50
|
'self._get_all_user_coins' -> 'self._get_user_coins', forgot to change this when
we moved back away from wallets (coins.py)
|
2019-01-24 11:27:57 +00:00 |
|
jesopo
|
8ba7cb0396
|
Move logging API key from INFO to DEBUG (rest_api.py)
|
2019-01-23 22:23:21 +00:00 |
|
jesopo
|
086629f2dc
|
Logging shouldn't use % string formatting (rest_api.py)
|
2019-01-23 22:10:32 +00:00 |
|
jesopo
|
6fef7fd0c6
|
INFO log when we get a HTTP request with an API key (including the key's
comment) (rest_api.py)
|
2019-01-23 22:08:26 +00:00 |
|
jesopo
|
26603c23ac
|
Also pass method to StdOut /StdErr Send() when a send.stdout or
`send.stderr` event is sent (commands.py)
|
2019-01-23 21:39:05 +00:00 |
|
jesopo
|
64cb723901
|
Move logic to get command-method out of Out object (commands.py)
|
2019-01-23 20:35:28 +00:00 |
|
jesopo
|
2c7c12e9e0
|
Typo, server.get_value -> server.get_setting (coins.py)
|
2019-01-23 11:26:01 +00:00 |
|
jesopo
|
756938a4c9
|
Use rpartition to either get the last part of a ref/head/branch ref or just
`branch` (github)
|
2019-01-23 08:56:36 +00:00 |
|
jesopo
|
fcbb530b9e
|
Don't throw an exception when we get the kind of format of ref the create
event gives (only repo name, not `"refs/head/repo"`) (github)
|
2019-01-23 08:51:01 +00:00 |
|
jesopo
|
e45b72356c
|
Disable coin interest by default (coins.py)
|
2019-01-23 08:47:14 +00:00 |
|
jesopo
|
96f6be087a
|
Change another usage of coins when it should be all_coins (coins.py)
|
2019-01-23 08:23:09 +00:00 |
|
jesopo
|
c39f1e002f
|
Fix coins name collision (coins.py)
|
2019-01-23 08:22:08 +00:00 |
|
jesopo
|
b456132318
|
Remove wallet and bank logic (coins.py)
|
2019-01-23 08:20:01 +00:00 |
|
jesopo
|
f4467ac0ed
|
Log a WARN when we get a HTTPTimeoutException while we're trying to get a git.io
short url (github)
|
2019-01-22 22:06:25 +00:00 |
|
jesopo
|
8024e53a68
|
Don't show current event filters comma-separated as they're not comma separated
when we set them and that's a little confusing (github)
|
2019-01-22 20:52:57 +00:00 |
|
jesopo
|
815eea69bd
|
Typo, had ")" closing an array instead of "]" (github)
|
2019-01-22 20:50:59 +00:00 |
|
jesopo
|
a27b567ae1
|
Support handling watch event (repo being stared - misleading event name i
know) (github)
|
2019-01-22 20:49:31 +00:00 |
|
jesopo
|
c69f4414a0
|
Handle a situation where a repo full name isn't provided and there isn't one set
as default (github)
|
2019-01-22 17:16:04 +00:00 |
|
jesopo
|
fc5671c7c5
|
We only need one '-' between tweet content and short url (tweets.py)
|
2019-01-21 19:36:25 +00:00 |
|
jesopo
|
0fd180a5c2
|
'EventResultError' -> 'EventsResultsError' typo (maybe this should actually be
named 'EventResultError') (youtube.py)
|
2019-01-21 19:32:37 +00:00 |
|
jesopo
|
65db982f1f
|
Show a "failed to load results" error when a video_id search returns no results
(youtube.py)
|
2019-01-21 19:30:39 +00:00 |
|
jesopo
|
50349ab8c8
|
pr-all also shows when there are new commits to a pull request (github)
|
2019-01-21 17:25:13 +00:00 |
|
jesopo
|
381e0ae336
|
Error log failure to get title of a url (title.py)
|
2019-01-21 14:39:20 +00:00 |
|
jesopo
|
8bf8097dd7
|
bus_stop isnt a Response object (tfl.py)
|
2019-01-21 10:46:23 +00:00 |
|
jesopo
|
3cefe87c5e
|
Show default github web hook event categories in ghwebhook.md (github)
|
2019-01-20 20:08:46 +00:00 |
|
jesopo
|
c6545ca847
|
Use the correct namespace for HTTPTimeoutException (wolframalpha)
|
2019-01-20 19:05:50 +00:00 |
|
jesopo
|
65f9184a54
|
Gracefully handle a timeout (wolframalpha)
|
2019-01-20 19:04:32 +00:00 |
|
jesopo
|
491db4fea4
|
Typo, '9)' -> '()' (github)
|
2019-01-20 13:03:36 +00:00 |
|
jesopo
|
7a7400922e
|
Add !ghwebhook list to ghwebhook.md
|
2019-01-20 13:02:19 +00:00 |
|
jesopo
|
be772cb730
|
Add a !ghwebhook subcommand to list all registered web hooks (github)
|
2019-01-20 13:01:31 +00:00 |
|
jesopo
|
f9186d7334
|
typo, commit["pusher"] -> data["pusher"] (github)
|
2019-01-19 08:02:34 +00:00 |
|
jesopo
|
202991a268
|
use data["pusher"]["name"] as data["author"]["login"] doesn't exist (github)
|
2019-01-19 08:00:31 +00:00 |
|
jesopo
|
8c1b40e785
|
Clarify [hook] and add sections for branches subcommand (github)
|
2019-01-19 07:53:30 +00:00 |
|
jesopo
|
3835930bdb
|
Allow users to specify what branches are shown for github webhooks (github)
|
2019-01-19 07:48:24 +00:00 |
|
jesopo
|
0f9592063e
|
Show user login not user name (e.g. show username not display name) for
commits (github)
|
2019-01-19 07:23:35 +00:00 |
|
jesopo
|
1753329aaf
|
Show an error when a user specifies an unknown subcommand to !ghwebhook (github)
|
2019-01-18 14:21:53 +00:00 |
|
jesopo
|
3d2c11991e
|
Clarify wording of what can be in the list of shown events (github)
|
2019-01-18 14:12:29 +00:00 |
|
jesopo
|
d2b572849c
|
Correct markdown url (github)
|
2019-01-18 14:04:06 +00:00 |
|
jesopo
|
1950f1335f
|
Point out that users can use raw github events, not just event categories
(github)
|
2019-01-18 14:02:54 +00:00 |
|
jesopo
|
c7ba2b778b
|
Delete github-hooks channel setting when it's empty (github)
|
2019-01-18 13:25:53 +00:00 |
|
jesopo
|
9bbf3147d0
|
Display event categories in a smaller font (ghwebhook.md)
|
2019-01-18 13:14:11 +00:00 |
|
jesopo
|
8c4c9ab90a
|
Added help file for !ghwebhook
|
2019-01-18 13:13:01 +00:00 |
|
jesopo
|
69edf039b3
|
Support modules being in their own folder and move github.py to github/module.py
|
2019-01-18 12:49:11 +00:00 |
|
jesopo
|
b7864ffb41
|
Typo, 'all_hook' -> 'all_hooks' (github.py)
|
2019-01-18 12:13:01 +00:00 |
|
jesopo
|
0414ed34e2
|
Move github hooks away from !channelset in to their own !ghwebhook command
(github.py)
|
2019-01-18 12:05:56 +00:00 |
|
jesopo
|
8addca13ec
|
Copypaste fail, 'c' -> 'category'
|
2019-01-18 08:20:03 +00:00 |
|
jesopo
|
be5c5e6c21
|
Allow non-category items to be placed in a channel's event categories, allowing
users to specify specific events (github.py)
|
2019-01-18 08:18:47 +00:00 |
|
jesopo
|
4981d70be4
|
combine github events and their actions to be able to filter by event type and
action. add/change event categories to use these (github.py)
|
2019-01-18 08:08:39 +00:00 |
|
jesopo
|
5dc5e3fbfd
|
LIGHTGREEN -> GREEN for successful commands (commands.py)
|
2019-01-17 21:10:12 +00:00 |
|
jesopo
|
72d4375e55
|
Only show specific actions for pull requests and issues (github.py)
|
2019-01-17 17:01:12 +00:00 |
|
jesopo
|
776f2faced
|
Actually use new sender arg for _on_notice() (print_activity.py)
|
2019-01-17 14:51:44 +00:00 |
|
jesopo
|
2a7df864ef
|
ping events don't need to know full_name of repo (github.py)
|
2019-01-17 14:50:23 +00:00 |
|
jesopo
|
588b54b40b
|
Print when we send notices (print_activity.py)
|
2019-01-17 14:50:07 +00:00 |
|
jesopo
|
89d0c83acb
|
Clarify github webhook event names with some comments (github.py)
|
2019-01-17 14:31:23 +00:00 |
|
jesopo
|
ce1d1aa5f8
|
'issue' -> 'issues' (github.py)
|
2019-01-17 14:19:31 +00:00 |
|
jesopo
|
75b85e76c9
|
Add a channel setting for github webhook event filters (github.py)
|
2019-01-16 22:36:19 +00:00 |
|
jesopo
|
5bf603bbfa
|
typo, 'respository' -> 'repository' (github.py)
|
2019-01-16 22:32:17 +00:00 |
|
jesopo
|
77c7084e9d
|
Don't try to parse username and repo name from a full name if there's no full
name (github.py)
|
2019-01-16 22:28:12 +00:00 |
|
jesopo
|
a342f82f40
|
Do filtering of github events based on categories of events (github.py)
|
2019-01-16 22:26:31 +00:00 |
|
jesopo
|
f9bf1d03e8
|
Correct order of string formatting for github membership events (github.py)
|
2019-01-16 22:14:26 +00:00 |
|
jesopo
|
f50f2a6d51
|
Support organisation membership event (github.py)
|
2019-01-16 22:13:38 +00:00 |
|
jesopo
|
e49389232e
|
Support github events only related to an organisation, not a repo (github.py)
|
2019-01-16 22:13:14 +00:00 |
|
jesopo
|
8e5642f5d7
|
Check if page is null before trying to access page.data (eval_python.py)
|
2019-01-15 12:39:27 +00:00 |
|
jesopo
|
3eb87b06e1
|
'guid' -> 'uuid' as apparently guid is microsoft's name for a uuid
(random_number.py)
|
2019-01-14 21:37:14 +00:00 |
|
jesopo
|
7e85197d47
|
Change !gh to be an alias of !github (github.py)
|
2019-01-13 22:06:41 +00:00 |
|
jesopo
|
598fcb80b9
|
'to_ansi_colors(' -> 'parse_format(' as it's become a lot more than just colors.
strip \x08 (in case hexchat users paste it) (print_activity.py, src.utils.irc)
|
2019-01-13 21:56:36 +00:00 |
|
jesopo
|
9ab9400b46
|
Only show issue comment edit events when the body text of the comment has
actually changed (github.py)
|
2019-01-13 01:34:07 +00:00 |
|
jesopo
|
e523671633
|
Made positive karma show as LIGHTGREEN, not GREEN (karma.py)
|
2019-01-11 21:00:09 +00:00 |
|
jesopo
|
eadb49d41a
|
Don't use bolding for command colors (commands.py)
|
2019-01-11 20:57:52 +00:00 |
|
jesopo
|
3cc9bc9dbb
|
Karma is now being used as karma_str, thus we need a %s not a %d (karma.py)
|
2019-01-11 17:35:18 +00:00 |
|
jesopo
|
415afe7e27
|
Show positive karma as green and negative karma as red (karma.py)
|
2019-01-11 17:33:43 +00:00 |
|
jesopo
|
e5a5241615
|
Only try to regex match a youtube url if we actually have a search string
(youtube.py)
|
2019-01-11 12:03:23 +00:00 |
|
jesopo
|
59094568e0
|
Add youtube-safesearch channel setting, to allow channels to opt-in to turning
off any safe search filters (youtube.py)
|
2019-01-11 11:30:29 +00:00 |
|
jesopo
|
e62b3b58f4
|
"set" -> "channelset" for channel-related unset (set.py)
|
2019-01-10 22:43:12 +00:00 |
|
jesopo
|
0e9d2b3180
|
Add !unset and !channelunset (and !channelunsetoverride) (set.py)
|
2019-01-10 22:41:35 +00:00 |
|
jesopo
|
2f74100666
|
Don't have duplicate repo full name in ping events (github.py)
|
2019-01-10 22:24:04 +00:00 |
|
jesopo
|
cbc0e81fb3
|
Send a notice to a channel when a new webhook registration is received
(github.py)
|
2019-01-10 22:14:40 +00:00 |
|
jesopo
|
73392e8a20
|
Pass username, repository, number to _gh_issue and _gh_pull (github.py)
|
2019-01-10 13:36:13 +00:00 |
|
jesopo
|
2d346e73bc
|
Seperate out issue/pr logic into their own functions and add !gh that will get
info on either an issue or a pull request (github.py)
|
2019-01-10 13:32:19 +00:00 |
|
jesopo
|
8da6036894
|
Show issue/pr state in !ghissue and !ghpull (github.py)
|
2019-01-10 13:23:32 +00:00 |
|
jesopo
|
d26a945c49
|
Show an error if !ghissue or !ghpull doesn't find the specified issue/pr
(github.py)
|
2019-01-10 13:18:58 +00:00 |
|
jesopo
|
86810290f7
|
rpartition (instead of partition) #number for github issues/pull, so that we
don't have to specify "#" when we're got a default repo (github.py)
|
2019-01-10 13:11:35 +00:00 |
|
jesopo
|
55b61649f4
|
copypaste fail, event["args_split"][0] -> ref (github.py)
|
2019-01-09 23:03:34 +00:00 |
|
jesopo
|
bba5733736
|
Command events don't have "channel" , they have "target" (github.py)
|
2019-01-09 23:02:39 +00:00 |
|
jesopo
|
5514c2b9c9
|
Add a way to set the default github repo for a channel (github.py)
|
2019-01-09 23:01:27 +00:00 |
|
jesopo
|
470f9fc945
|
from_repo /to_repo -> repo_from /repo_to (github.py)
|
2019-01-09 22:51:55 +00:00 |
|
jesopo
|
2afe2d1c57
|
Show which branch is being merged in to which (github.py)
|
2019-01-09 22:50:41 +00:00 |
|
jesopo
|
d6da46fac3
|
to_from -> repo_to (github.py)
|
2019-01-09 22:50:21 +00:00 |
|
jesopo
|
8399545fe3
|
Add missing "(" for github pull request message format (github.py)
|
2019-01-09 22:47:47 +00:00 |
|
jesopo
|
aa04071d89
|
def github( -> def webhook( (github.py)
|
2019-01-09 22:47:20 +00:00 |
|
jesopo
|
dc4c711fa0
|
Actually show deletions as deletions for github pull requests (github.py)
|
2019-01-09 22:46:57 +00:00 |
|
jesopo
|
8d3064d50c
|
Add !ghpull, to get information on a pull request from github (github.py)
|
2019-01-09 22:45:33 +00:00 |
|
jesopo
|
56f431176c
|
Boldify sender on a pull request review comment (github.py)
|
2019-01-09 22:33:02 +00:00 |
|
jesopo
|
ac3c361399
|
Add !ghissue, to get information on an issue from github (github.py)
|
2019-01-09 22:30:11 +00:00 |
|
jesopo
|
93336efd38
|
Handle !soundcloud returning no results (soundcloud.py)
|
2019-01-08 10:14:21 +00:00 |
|
jesopo
|
38b7a1dadf
|
Typo in words.py: 'strippped_word' -> 'stripped_word'
|
2019-01-04 12:36:38 +00:00 |
|
jesopo
|
8171c5c492
|
Allow tracking words that have characters deemed as "start"/"end" characters
(words.py)
|
2019-01-04 12:13:36 +00:00 |
|
jesopo
|
47b17def99
|
Sort list of available settings for set/channelset/etc (set.py)
|
2019-01-03 22:02:51 +00:00 |
|
jesopo
|
e15c7ece5b
|
URL-unquote form-encoded data AFTER parsing it as a query string (github.py)
|
2019-01-03 21:55:21 +00:00 |
|
jesopo
|
498352d1ac
|
Support adding github webhooks for an entire "username" (github.py)
|
2019-01-03 21:18:40 +00:00 |
|
jesopo
|
cb3e40a462
|
Print a topic's set at time when we receive a 333 (print_activity.py)
|
2019-01-02 13:39:49 +00:00 |
|
jesopo
|
3d60d59510
|
We need to normalise between a single usage string and multiple (making both
lists) to reuse the formatting code (commands.py)
|
2018-12-29 21:38:03 +00:00 |
|
jesopo
|
ee8d3a6287
|
Remove an erroneous level of indentation that prevented the command being
prepended to a usage string when only 1 usage string was available (commands.py)
|
2018-12-29 21:35:06 +00:00 |
|