jesopo
|
f3d9fbb216
|
Actually assume the provided "org" is the repo when repo isn't provided
|
2019-05-17 10:14:49 +01:00 |
|
jesopo
|
3411f12fc4
|
Use github-default-repo to fill in org when org is missing but repo isn't
|
2019-05-17 10:10:27 +01:00 |
|
jesopo
|
3bbc4b3b77
|
server -> event["server"]
|
2019-05-16 14:28:20 +01:00 |
|
jesopo
|
385a4e3d4e
|
channel -> event["channel"]
|
2019-05-16 14:27:07 +01:00 |
|
jesopo
|
ce1558e48b
|
Catch-and-bury utils.EventError in auto-github code
|
2019-05-16 14:25:37 +01:00 |
|
jesopo
|
54e8fc8029
|
\S not \s in github issue ref regex
|
2019-05-16 14:25:18 +01:00 |
|
jesopo
|
7ce6af53f7
|
_parse_pull and _parse_issue shouldn't have an event param anymore
|
2019-05-16 14:20:50 +01:00 |
|
jesopo
|
a2321c693c
|
_gh_* functions were renamed
|
2019-05-16 14:18:42 +01:00 |
|
jesopo
|
20514cc871
|
Add auto-github setting to automatically match and resolve github issue/pr
refs
|
2019-05-16 14:17:04 +01:00 |
|
jesopo
|
e0311c4b73
|
Allow people with silence permission to use !silence too
|
2019-05-16 08:53:28 +01:00 |
|
jesopo
|
bf7d359092
|
Add a setting to opt-out of word count tracking
|
2019-05-15 22:44:47 +01:00 |
|
jesopo
|
052eba788f
|
Show server versoin (from RPL_MYINFO) on /api/servers
|
2019-05-15 17:13:05 +01:00 |
|
jesopo
|
7547eee96d
|
Catch server version string, from RPL_MYINFO
|
2019-05-15 17:12:21 +01:00 |
|
jesopo
|
94d2f103b0
|
Don't show ducks when the bot is silenced
|
2019-05-15 16:48:20 +01:00 |
|
jesopo
|
278d6f02d6
|
Don't collect preprocess.command errors after we get a HARD_FAIL
|
2019-05-15 16:41:49 +01:00 |
|
jesopo
|
eb456f0123
|
Set silence.py's preprocess.command hook to PRIORITY_HIGH, so that other
modules can't respond to the event with errors first
|
2019-05-15 16:39:11 +01:00 |
|
jesopo
|
f97eceb395
|
Import IRCBot in metadata.py
|
2019-05-15 11:19:40 +01:00 |
|
jesopo
|
af4edf389f
|
'_cap(' -> '_ack('
|
2019-05-15 11:11:12 +01:00 |
|
jesopo
|
7cccb482b7
|
Add first version of metadata.py - for ircv3 draft/metadata
|
2019-05-15 10:33:39 +01:00 |
|
jesopo
|
99ce2ac6dd
|
Switch to using utils.irc.Capability in sts.py
|
2019-05-15 10:31:55 +01:00 |
|
jesopo
|
a80eda614d
|
Add IRCBot.SOURCE, use it in ctcp.py
|
2019-05-15 10:30:36 +01:00 |
|
jesopo
|
5ca9ae550d
|
msgid has been ratified
|
2019-05-15 08:45:59 +01:00 |
|
jesopo
|
7ed4d5fa03
|
draft/msgid isn't ratified quite yet
|
2019-05-14 23:07:55 +01:00 |
|
jesopo
|
421d9c10c7
|
Add utils.irc.MessageTag and use it for both draft and ratified msgid
|
2019-05-14 13:02:45 +01:00 |
|
jesopo
|
b75fc02c4b
|
Add comment to clarify why we ignore 1-letter-nicks in _prevent_highlight
|
2019-05-14 11:01:31 +01:00 |
|
jesopo
|
69691e9c79
|
Don't prevent highlights for single-letter nicknames
|
2019-05-14 10:50:47 +01:00 |
|
jesopo
|
e09529260a
|
Pass server object in to _prevent_highlight
|
2019-05-14 10:24:31 +01:00 |
|
jesopo
|
9aeee86165
|
use irc_lower for preventing highlights, only lower() when needed
|
2019-05-14 10:15:52 +01:00 |
|
jesopo
|
0625102fa7
|
if_silenced_f -> is_silenced_f
|
2019-05-13 20:58:44 +01:00 |
|
jesopo
|
0fbf993201
|
Expose is-silenced through Exports, use it in karma.py
|
2019-05-13 20:57:47 +01:00 |
|
jesopo
|
e8c4a92119
|
Fix copypaste fail for getting for Exports in karma.py
|
2019-05-13 20:57:29 +01:00 |
|
jesopo
|
7922f6e9a5
|
Added !silence, to silence the bot in a channel for 5 mins
|
2019-05-13 20:50:31 +01:00 |
|
jesopo
|
8885b407ea
|
Add !botlist and !rollcall
|
2019-05-12 22:37:08 +01:00 |
|
jesopo
|
d0573706e5
|
Move all actual nickname changing until AFTER events are fixed. it was actually
set_own_nickname that was really causing the issue.
|
2019-05-12 22:20:42 +01:00 |
|
jesopo
|
26f63410f2
|
Provide missing % formatting param for github release events
closes #52
|
2019-05-12 22:09:19 +01:00 |
|
jesopo
|
bc68b50874
|
send() is only for parsed irc lines
|
2019-05-12 22:07:25 +01:00 |
|
jesopo
|
3e9d628d64
|
Change user nickname before firing (received/self).nick events
|
2019-05-12 22:07:04 +01:00 |
|
jesopo
|
8c3ea677ec
|
Switch signals.py SIGHUP to also load new modules
|
2019-05-12 14:11:29 +01:00 |
|
jesopo
|
bb073dcdce
|
Handle ERR_SASLALREADY
|
2019-05-12 11:48:28 +01:00 |
|
jesopo
|
2d6d2a98d7
|
Typo in ducks.py, 'DEFAUL' -> 'DEFAULT'
|
2019-05-11 18:26:53 +01:00 |
|
jesopo
|
d291cd5063
|
Revamp how CAPs are tracked through REQ and ACK/NAK etc
|
2019-05-11 18:22:40 +01:00 |
|
jesopo
|
6ef7f8374d
|
Change ducks-min-message default to 100
|
2019-05-11 17:19:31 +01:00 |
|
jesopo
|
73052ddc49
|
Update !help usage string
|
2019-05-11 17:07:24 +01:00 |
|
jesopo
|
295f7a751c
|
Refactor CAPs in to objects
|
2019-05-11 15:11:09 +01:00 |
|
jesopo
|
90f375d764
|
Remove unused SCRAM functions from sasl/__init__.py
|
2019-05-11 15:07:53 +01:00 |
|
jesopo
|
81bb0242fe
|
Change !help to be !help <module> <command>
|
2019-05-10 16:11:53 +01:00 |
|
jesopo
|
4986c52d9b
|
ignore users ignored from !factoid for automatic factoid parsing
|
2019-05-09 13:48:45 +01:00 |
|
jesopo
|
9bdd28ce60
|
Ignore users ignored from !youtube for auto-youtube
|
2019-05-09 13:43:52 +01:00 |
|
jesopo
|
5dd019d79f
|
Handle dangling spaces at the end of a NAMES response
|
2019-05-09 11:55:35 +01:00 |
|
jesopo
|
511a1836bb
|
Only split NAMES reply at literal space, .split() is overzealous
|
2019-05-09 11:31:58 +01:00 |
|
jesopo
|
f7eae1a978
|
Tokenize IRC data as soon as it comes out of IRCServer
|
2019-05-09 10:36:33 +01:00 |
|
jesopo
|
cb25f70418
|
Catch UserNotFoundException in var e
|
2019-05-08 07:36:17 +01:00 |
|
jesopo
|
920c1d2cd8
|
Log URL when we fail to get a <title>
|
2019-05-07 14:44:29 +01:00 |
|
jesopo
|
ed8761ed5c
|
Change !uuid to !uuid4 to be clear that it's a uuid4 being generated
|
2019-05-07 11:48:16 +01:00 |
|
jesopo
|
670f682c62
|
Remove '"human"' key from location settings export - we dont use it and it's
using elements of 'location' that were removed
|
2019-05-07 10:59:24 +01:00 |
|
jesopo
|
543a01882b
|
Don't parse '/me's as commands
|
2019-05-06 23:26:13 +01:00 |
|
jesopo
|
3e3e39e054
|
Fix birthday.py help text copypaste fail
|
2019-05-06 19:27:42 +01:00 |
|
jesopo
|
c11afedba9
|
Add !serverunignore
|
2019-05-06 17:17:06 +01:00 |
|
jesopo
|
96550eaef0
|
put permission control on !serverignore, don't rely on setting default of None
|
2019-05-06 17:16:48 +01:00 |
|
jesopo
|
a368bc018a
|
server -> event["server"]
|
2019-05-06 17:13:09 +01:00 |
|
jesopo
|
8312efcc1c
|
Pass server param to _is_ignored
|
2019-05-06 17:12:05 +01:00 |
|
jesopo
|
0114d35d4c
|
Add a mechanism to ignore specific commands for a whole network
|
2019-05-06 17:08:56 +01:00 |
|
jesopo
|
ac19e9cc95
|
Support only saving birthday day and month
|
2019-05-06 16:26:23 +01:00 |
|
jesopo
|
61b7dd33b6
|
Add !birthdays command to show birthdays today
|
2019-05-06 14:54:45 +01:00 |
|
jesopo
|
6f9383666f
|
Make birthdays more exciting
|
2019-05-06 09:05:31 +01:00 |
|
jesopo
|
f5d407830d
|
Added birthday.py
|
2019-05-05 22:54:55 +01:00 |
|
jesopo
|
f04d9d966e
|
Query weather for given args if they don't look like a user
|
2019-05-05 00:16:55 +01:00 |
|
jesopo
|
f715e46155
|
Stop using prevent_highlight. it ruins terminals on OS X
|
2019-05-04 23:28:51 +01:00 |
|
jesopo
|
dc17ef7bb9
|
Only handle 324 when we're actually in the channel
|
2019-05-04 21:39:35 +01:00 |
|
jesopo
|
009daaeb62
|
Give empty array arg to WARN call in github module
|
2019-05-04 08:26:27 +01:00 |
|
jesopo
|
d999548020
|
Change min duck messages to 40, change chance back to 5%
|
2019-05-03 16:47:56 +01:00 |
|
jesopo
|
8c8205522e
|
Actually import EventManager in ducks.py
|
2019-05-03 16:40:21 +01:00 |
|
jesopo
|
4d8b1a1a0d
|
Set received.message.channel priority to PRIORITY_MONITOR
|
2019-05-03 16:38:45 +01:00 |
|
jesopo
|
167fe7b070
|
Add !friends and !enemies to ducks.py
|
2019-05-03 16:34:41 +01:00 |
|
jesopo
|
c89742a7e7
|
Reset duck_lines to 0 when a duck has spawned
|
2019-05-03 16:26:35 +01:00 |
|
jesopo
|
b7e14148bb
|
Change duck-spawn change to 10% per message after 20 messages
|
2019-05-03 16:07:49 +01:00 |
|
jesopo
|
8ac93d57f3
|
there's no event in bootstrap_channel
|
2019-05-03 15:44:13 +01:00 |
|
jesopo
|
2fd92ce2fa
|
bootstrap old channels for ducks.py
|
2019-05-03 15:42:39 +01:00 |
|
jesopo
|
5bfffc25e9
|
Refector ducks.py
|
2019-05-03 15:34:54 +01:00 |
|
jesopo
|
1a2309e4fc
|
add 'print-motd' bot setting, to enable/disable printing motd to log
|
2019-05-02 10:24:01 +01:00 |
|
jesopo
|
6e25505bba
|
Remove import pytz from location.py, we don't use it
|
2019-05-01 16:15:42 +01:00 |
|
jesopo
|
ed57ac7c17
|
Move isgd.py to shorturl.py and switch back to using bit.ly
|
2019-05-01 08:17:48 +01:00 |
|
jesopo
|
44b15073e7
|
No longer prefix stderr with "!", it doesn't really make sense
|
2019-04-30 22:45:52 +01:00 |
|
jesopo
|
677b488ab0
|
Typo in commands/outs.py, 'methd' -> 'method'
|
2019-04-30 22:45:37 +01:00 |
|
jesopo
|
8a9fedb875
|
Limiit !to to 5 messages per user
|
2019-04-30 11:57:31 +01:00 |
|
jesopo
|
2d2ea2fc3a
|
Added pronouns.py
|
2019-04-30 11:51:43 +01:00 |
|
jesopo
|
1ed9d06c9d
|
resume.py should be using IRCServer.send_raw
|
2019-04-28 20:41:55 +01:00 |
|
jesopo
|
bcae650565
|
Actually provide formatting arg for user_time.py error
|
2019-04-28 15:43:56 +01:00 |
|
jesopo
|
3fce209a99
|
Change location.py to use lat/lon instead of continent/country/city
|
2019-04-28 15:38:26 +01:00 |
|
jesopo
|
74ef18a418
|
Add !w as an alias of !weather
|
2019-04-28 15:21:09 +01:00 |
|
jesopo
|
a7a3f5fd25
|
Remove incorrect and redundant usage !weather
|
2019-04-28 15:20:37 +01:00 |
|
jesopo
|
91d32dae9b
|
"%", not ","
|
2019-04-28 14:13:26 +01:00 |
|
jesopo
|
33fc4ffbf7
|
Actually provide user nickname in !weather error message
|
2019-04-28 14:12:35 +01:00 |
|
jesopo
|
fbdd254c69
|
Add echo.py
|
2019-04-28 13:36:25 +01:00 |
|
jesopo
|
0ba1b275d9
|
Add user_time.py
|
2019-04-28 12:12:00 +01:00 |
|
jesopo
|
cbed30ed62
|
Change location.py to use geocoding, change weather.py in line with it
|
2019-04-28 12:11:23 +01:00 |
|
jesopo
|
795a9a91af
|
Remove debug print
|
2019-04-28 10:51:18 +01:00 |
|
jesopo
|
4466bc34de
|
Add location.py, to allow users to set their location
|
2019-04-28 10:50:35 +01:00 |
|
jesopo
|
24716402ec
|
Show the full result of a !config change
|
2019-04-28 10:50:19 +01:00 |
|
jesopo
|
347253249e
|
Add a setting to automatically shorten URLs when their title is retrieved
|
2019-04-28 00:35:41 +01:00 |
|
jesopo
|
98deba18ed
|
Add _name to urbandictionary.py for correct capitalisation
|
2019-04-27 22:27:36 +01:00 |
|
jesopo
|
437418d006
|
Use is-ignored export in title.py to ignore users for auto-title
|
2019-04-27 14:55:48 +01:00 |
|
jesopo
|
a5f8bb7d3d
|
Use is-ignored export in karma to allow ignoring users for karma
|
2019-04-27 14:51:26 +01:00 |
|
jesopo
|
5f4d5eb270
|
Use is-ignored export in sed.py to allow ignoring users from sed
|
2019-04-27 14:49:57 +01:00 |
|
jesopo
|
df39570d4a
|
Add ability to ignore users per-command
|
2019-04-27 14:49:45 +01:00 |
|
jesopo
|
f8e933d4cc
|
Delete 'ignore' setting when unignoring so it doesn't hold space in the database
but still defaults to false
|
2019-04-26 07:57:20 +01:00 |
|
jesopo
|
bac9692ec5
|
Change channel_op's _name from "Channel Op" to "ChanOp"
|
2019-04-26 07:26:33 +01:00 |
|
jesopo
|
da52baebcc
|
Check that we have an AbstractURL in DDG results
|
2019-04-25 20:49:27 +01:00 |
|
jesopo
|
b45b9b6219
|
Change copypasted !google help text
|
2019-04-25 20:19:25 +01:00 |
|
jesopo
|
789787b866
|
Add duckduckgo.py
|
2019-04-25 20:18:13 +01:00 |
|
jesopo
|
7643a962bd
|
Refuse to get the title for any url that points locall
|
2019-04-25 15:58:58 +01:00 |
|
jesopo
|
9ac7ead57e
|
Make masterlogin passwords one-time-use
|
2019-04-24 17:37:44 +01:00 |
|
jesopo
|
dffee4d223
|
Move REGEX_URL out of isgd.py and title.py in to utils.http
|
2019-04-24 15:46:54 +01:00 |
|
jesopo
|
cc9edc6adb
|
link -> url
|
2019-04-24 15:37:14 +01:00 |
|
jesopo
|
50e3206a9f
|
Aloow !shorten to find the last posted url and shorten it
|
2019-04-24 15:36:26 +01:00 |
|
jesopo
|
df42f1d9c5
|
Store full non-hashed auto-title url in setting value
|
2019-04-24 15:07:02 +01:00 |
|
jesopo
|
71eb640fbd
|
Add ability to track (and show) who first send a specific link that was
auto-titled
|
2019-04-24 14:48:15 +01:00 |
|
jesopo
|
e095c56f77
|
Record and show when a !to was created
|
2019-04-24 14:32:56 +01:00 |
|
jesopo
|
dc102f258d
|
Add Database.servers.get_by_alias, move IRCBot.get_server to
IRCBot.get_server_by_id, add IRCBot.get_server_by_alias and change
!connect/!disconnect to take aliases instead of IDs
|
2019-04-24 12:07:30 +01:00 |
|
jesopo
|
e3100bb64a
|
Look at setting-specific part of export_settings to get validate function, not
the whole dang dictionary
|
2019-04-24 11:02:41 +01:00 |
|
jesopo
|
87340bcbf9
|
change utils.iso8601_format to default to no milliseconds, switch to using
utils.iso8601 functions in badges.py
|
2019-04-23 21:27:43 +01:00 |
|
jesopo
|
537613545d
|
Only show 'submitted' pull_request_review events
|
2019-04-17 10:33:12 +01:00 |
|
jesopo
|
ee8c7813f7
|
Add IRCServer.send_raw so modules don't have to parse messages before sending
them
|
2019-04-16 13:47:45 +01:00 |
|
jesopo
|
959d6a067c
|
Only show no-commit pushes when it's a force
|
2019-04-16 10:24:55 +01:00 |
|
jesopo
|
cc203f1756
|
Show a push event even when there's no commits in it
|
2019-04-16 10:20:11 +01:00 |
|
jesopo
|
16083309ef
|
Add a space between channel name and kick reason in format_activity.py
|
2019-04-16 07:54:07 +01:00 |
|
jesopo
|
884d7ab06a
|
Boldify sed replacement text
|
2019-04-15 21:55:53 +01:00 |
|
jesopo
|
8ecd1f31c7
|
'set.py' -> 'config.py'
|
2019-04-15 17:08:01 +01:00 |
|
jesopo
|
81e9548827
|
Allow adding perform.py commands through chat and add !performexecute, to
execute all perform commands post-connect
|
2019-04-15 16:53:52 +01:00 |
|
jesopo
|
210125d90b
|
Only allow 'current channel' !config logic when we're in a channel
|
2019-04-15 16:48:04 +01:00 |
|
jesopo
|
f60deba6c7
|
Add a master-admin login system, to have a bot-wide password to give any user
using it complete admin permissions - mostly intended to add new admin users
|
2019-04-15 14:52:08 +01:00 |
|
jesopo
|
e12ad21c1a
|
Add/remove people from channels before received.join/received.part events
|
2019-04-15 14:41:09 +01:00 |
|
jesopo
|
cf9898d5bd
|
Support continuous alias arg replacements (e.g. "index 1 onwards" using "$1-")
|
2019-04-14 21:54:02 +01:00 |
|
jesopo
|
9e79320d50
|
'closed #123 without merging' -> 'closed #123'
|
2019-04-11 13:09:30 +01:00 |
|
jesopo
|
225c0d7793
|
Don't remove the first char of 'setting' twice
|
2019-04-07 17:46:35 +01:00 |
|
jesopo
|
2947b92792
|
Show result when a setting is unset
|
2019-04-07 17:45:35 +01:00 |
|
jesopo
|
5611f4ceef
|
Strip "-" from setting name when first checking if it exists
|
2019-04-07 17:43:00 +01:00 |
|
jesopo
|
56dcc2306b
|
Remove "-" from setting name before getting its value
|
2019-04-07 17:38:52 +01:00 |
|
jesopo
|
444f37c3da
|
Add a way to unset a setting with !config
|
2019-04-07 17:36:29 +01:00 |
|
jesopo
|
d4c7c41c79
|
Add !config command, to group all settings activities in to 1 command
|
2019-04-07 14:00:27 +01:00 |
|
jesopo
|
b6d04152d0
|
Show QUIT reason as "" not None
|
2019-04-02 21:17:01 +01:00 |
|
jesopo
|
0b1c07b1ed
|
Set PART reason to "" when it's None
|
2019-04-02 16:56:15 +01:00 |
|
jesopo
|
ad166a7d0a
|
Correctly support SETNAME being targetted at us
|
2019-04-02 14:21:16 +01:00 |
|
jesopo
|
42f79d8f26
|
.get eage-api-key and url in nr.service() to handle it not being present
|
2019-04-01 07:50:19 +01:00 |
|
jesopo
|
c697c58b52
|
set cve.py's _name to all caps "CVE"
|
2019-03-28 21:54:18 +00:00 |
|
jesopo
|
f39b723af4
|
Added cve.py
|
2019-03-28 21:47:35 +00:00 |
|
jesopo
|
023c6c9264
|
Only strip word stops from the right of a word
|
2019-03-28 14:35:20 +00:00 |
|
jesopo
|
3f8d5e9f50
|
Also human-ify coin bet amounts in a flip
|
2019-03-21 21:09:53 +00:00 |
|
jesopo
|
2f729eac46
|
Show coins in "human" form (with commas) in flip wins/losses
|
2019-03-21 21:08:04 +00:00 |
|
jesopo
|
e6a32a8bb9
|
Don't handle commented state in pull_request_review
|
2019-03-19 16:10:59 +00:00 |
|