jesopo
e1f527a374
prefix "hidden" channels in !channels with "*"
2019-11-27 13:13:52 +00:00
jesopo
efbe71bc0e
add !servers command
2019-11-27 13:13:42 +00:00
jesopo
b66119ba96
use BufferLine.notes to allow cumulative sed edits
2019-11-27 12:59:59 +00:00
jesopo
9972125b24
remove IRCBuffer.skip_next (not used), pass buffer lines on message events
2019-11-27 12:06:57 +00:00
jesopo
e56e2d3e48
WHOX can effect hostmask permissions too
2019-11-26 18:45:13 +00:00
jesopo
7a5eb765c4
use " | " as location & temp separator
2019-11-26 18:42:33 +00:00
jesopo
d216ce3345
check hostmask on WHO too
2019-11-26 18:42:27 +00:00
jesopo
14c30c4c05
add check.command.permission and check.command.authenticated callbacks
2019-11-26 15:32:24 +00:00
jesopo
1d41bc7c34
page
is already a soup
2019-11-26 14:34:41 +00:00
jesopo
8bb20bcb17
default first_item
to None or it doesn't exist when there's no toots
2019-11-26 14:31:22 +00:00
jesopo
76ccbbbc46
show urls in !wikipedia output
2019-11-26 14:18:18 +00:00
jesopo
63d9ab19d5
add more.py
2019-11-26 14:18:12 +00:00
jesopo
c3ce47b19d
update wikipedia.py to use Response.json()
2019-11-26 14:14:38 +00:00
jesopo
252e540f00
self._out takes a tags
arg
2019-11-26 13:42:16 +00:00
jesopo
2d21dfa229
utils.http.Response.data should always be bytes
- add .decode and .soup
2019-11-26 13:42:01 +00:00
jesopo
9eb51740b3
remove all eagle
stuff from nr.py
2019-11-26 13:37:30 +00:00
jesopo
ed775ddbe3
remove parser
from utils.http.Request, add Request.soup()
2019-11-26 11:35:56 +00:00
jesopo
93aea08818
utils.datetime.datetime_utcnow() -> utils.datetime.utcnow()
2019-11-25 18:18:09 +00:00
jesopo
6a6e789ec9
add cookies
and .json()
to utils.http.Response objects
2019-11-25 18:17:30 +00:00
jesopo
8626a29a69
include <title> with !google/!g output
2019-11-25 17:48:31 +00:00
jesopo
4586bc7903
remove tags
from StdOut objects - expose through event_kwargs
2019-11-25 16:28:03 +00:00
jesopo
896dc480a5
slightly nicer format for weather output
2019-11-25 16:20:40 +00:00
jesopo
0bb7800934
.append_prefix() doens't exist anymore
2019-11-25 16:09:35 +00:00
jesopo
985e4704a0
switch !to to !tell, add !to as an alias of !tell
2019-11-25 12:18:07 +00:00
jesopo
531bc65889
explicitly say when an issue/PR was renamed
...
closes #209
2019-11-25 12:01:33 +00:00
jesopo
76286e2bd0
switch scripts module to no longer use set_prefix()
2019-11-25 10:53:16 +00:00
jesopo
73232b40e1
new_event doesn't exist when check_success is false
2019-11-25 10:43:30 +00:00
jesopo
7f7a31720c
USERAGENT
no longer exists
2019-11-25 05:55:22 +00:00
jesopo
0fc607b344
switch all hide_prefix() calls to .prefix = None
2019-11-22 17:30:17 +00:00
jesopo
be44244a71
reimplement send.stdout/send.stderr events
2019-11-22 17:29:49 +00:00
jesopo
5730d6fe59
refactor commands (mostly stdout/stderr) and split typing/reply out
...
closes #208
2019-11-22 16:23:30 +00:00
jesopo
3935bf3a30
IRCUser.get_identified_account() doesn't exist anymore
2019-11-22 11:50:23 +00:00
jesopo
6f67bf0c97
correctly detect when a track has tags (lastfm)
2019-11-22 11:48:10 +00:00
jesopo
090d46720a
also set _account_override when registering
2019-11-21 16:53:27 +00:00
jesopo
0d13725ab7
check part of array, not whole array, for "*"
2019-11-21 16:36:06 +00:00
jesopo
50d12e7e1f
implement master-password/master-login in permissions module
2019-11-21 16:31:23 +00:00
jesopo
dea29c5d5b
authenticated
is expected to be a boolean
2019-11-21 16:19:43 +00:00
jesopo
2dfc55fb9f
refactor permissions and allow hostmasks to be assigned to accounts
2019-11-21 15:49:08 +00:00
jesopo
9f8c5acf52
add a way to execute commands through bitbotd (use for master-password)
2019-11-21 10:39:26 +00:00
jesopo
352df0fa75
support "$$" as a literal "$" in alias arg replacements
2019-11-20 18:25:32 +00:00
jesopo
da1f1fce08
add !notitle to bypass auto-title
2019-11-20 17:59:26 +00:00
jesopo
72d418a307
pattern-url isn't used anymore
2019-11-20 17:06:37 +00:00
jesopo
4d30263315
give bitbot a unique User-Agent
...
closes #206
2019-11-20 14:42:34 +00:00
jesopo
1823371380
bot admins should be allowed to use !calias
2019-11-20 14:33:46 +00:00
jesopo
7a7610acb8
remove shlex from echo.py
2019-11-20 13:33:30 +00:00
jesopo
6c9a04a3ef
"alias-%s" -> "command-alias-%s"
2019-11-20 12:41:31 +00:00
jesopo
714d40b79f
"!alias show" should be looking at index 1
for alias
2019-11-20 12:05:41 +00:00
jesopo
050bfd29f7
args_split shouldn't be [""] when args
is empty
2019-11-20 12:03:02 +00:00
jesopo
cb111f0c93
show error on unknown !alias subcommand
2019-11-20 12:02:51 +00:00
jesopo
d63294067b
find_setting() returns a tuple
2019-11-20 11:53:26 +00:00
jesopo
03e4f780a0
require access for !alias/!calias
2019-11-20 11:39:51 +00:00
jesopo
17edb1c8cb
move command aliases out to their own module (aliases.py)
2019-11-20 11:34:36 +00:00
jesopo
2f07c308ea
set private NOTICE context so print_activity shows who a notice was sent to
2019-11-19 17:23:23 +00:00
jesopo
77fa2b7b00
separate server name and context name with ":" in print_activity.py
2019-11-19 17:23:00 +00:00
jesopo
2c8a94dc4c
show who opened a pull request for pull_request events when appropriate
2019-11-19 17:14:31 +00:00
jesopo
2336695f4e
boldify important parts in !help output
2019-11-19 12:31:15 +00:00
jesopo
502dae0d75
'event["comment"]' -> 'data["comment"]'
2019-11-19 12:24:30 +00:00
jesopo
024452bbac
expirental code to show comment content for github issue_comment webhooks
2019-11-19 12:22:46 +00:00
jesopo
48cc92cea3
remove double space for youtube views
2019-11-18 18:02:03 +00:00
jesopo
cec260ea3c
add optional duration for !ignore
2019-11-18 15:57:27 +00:00
jesopo
65023dc84b
move "+5m" syntax parsing out to utils.parse
2019-11-18 15:57:23 +00:00
jesopo
9c4902dcfe
"EventsResultsError"->"EventResultsError", move errors to utils.error
2019-11-18 12:06:59 +00:00
jesopo
d1c8357f97
combine both youtube API queries for playlists in to 1 query
2019-11-18 10:55:18 +00:00
jesopo
15e5d7d9bc
handle a youtube video having no reported views
...
closes #203
2019-11-18 10:52:22 +00:00
jesopo
d8ea5e9ce8
combine all 3 youtube API queries in to one (for speed!)
2019-11-18 10:52:01 +00:00
jesopo
0d4ddb709e
from_pretty_time was moved to utils.datetime
2019-11-17 19:48:05 +00:00
jesopo
79a6fd6609
refactor lastfm.py
2019-11-15 17:00:38 +00:00
jesopo
90baf17d10
boldify track/artist in !np output
2019-11-15 16:34:28 +00:00
jesopo
982f3b4912
refactor formatting privmsg/notice, show symbols on notice
2019-11-15 15:00:46 +00:00
jesopo
5d01db8514
move all datetime-related code from utils/__init__ to utils.datetime
2019-11-15 13:59:09 +00:00
jesopo
bfcf40edd7
split some stuff out of utils/__init__.py
2019-11-15 13:39:24 +00:00
jesopo
6a55b14afa
only try to shlex when we know we've found a command hook
2019-11-15 13:26:11 +00:00
jesopo
64ab4ca1a1
we should be passing args
in to _find_command_hook, not args_split
2019-11-15 12:37:43 +00:00
jesopo
27de12bcfe
dont use "%s %s"%("thing", "%s") trick - messes up when "thing" has %
2019-11-15 12:29:00 +00:00
jesopo
2cb55306c3
show first-words datestamp on !words output
2019-11-15 12:13:16 +00:00
jesopo
35cdc5321f
implement opt-in shlex for command args
...
closes #202
2019-11-15 11:33:52 +00:00
jesopo
718a026beb
don't respond to !botlist automatically
2019-11-15 10:57:29 +00:00
jesopo
7628e6f7fc
default target_user
to None so the var always exists
2019-11-14 15:48:36 +00:00
jesopo
f188969666
add minimal/normal for "topic set at" lines
2019-11-14 14:32:36 +00:00
jesopo
2fb689494c
allow channels to be excluded from print_activity.py
2019-11-14 13:25:41 +00:00
jesopo
a962fcf434
dont print full stacktrace when getting a url's title fails
2019-11-14 13:22:49 +00:00
jesopo
e17e439530
nickname
doesn't exist in _on_chghost
2019-11-14 13:17:22 +00:00
jesopo
736c125b98
nickname
doesn't exist in _on_part, should be user.nickname
2019-11-14 12:18:11 +00:00
jesopo
b96d8d2d80
typo, 'mode_str' -> 'modes_str'
2019-11-14 12:17:40 +00:00
jesopo
cf5294a835
don't duplicate event["user"].nickname
for prettified invite format
2019-11-14 11:59:50 +00:00
jesopo
c5870e3d36
typo, 'prettyb' -> 'pretty
2019-11-14 11:56:57 +00:00
jesopo
9af23c686d
pretty
will always be in event
but it might be None
2019-11-14 11:55:59 +00:00
jesopo
9abc668c0a
don't let RSS shortening failure CRITICAL the whole bot
2019-11-14 11:54:10 +00:00
jesopo
160fab8f4f
separate formatted lines from pretty formatted lines
2019-11-14 11:48:51 +00:00
jesopo
8ccbeb54d7
Show more fediverse errors to the end user
2019-11-14 10:53:34 +00:00
jesopo
76212faed4
change formatted JOIN to have userhost in parens
2019-11-13 11:19:28 +00:00
jesopo
d06efdabed
change formatted NOTICEs to be denoted by "-nick-" (PRIVMSG as "<nick>")
2019-11-11 18:02:15 +00:00
jesopo
46058c51c5
support !duckstats for users other than yourself
2019-11-11 17:21:40 +00:00
jesopo
3766262eab
change git_webhooks hashes from 8 characters to 7
2019-11-11 13:38:09 +00:00
jesopo
7d1cdd2251
prepend user nickname to command error messages
2019-11-11 13:26:14 +00:00
jesopo
9fa128fcc9
colorize nicknames on more line formatting events
2019-11-11 13:07:41 +00:00
jesopo
8a8bd8a77e
colorize nicks on JOIN formatting
2019-11-11 12:49:45 +00:00
jesopo
d43e96f7e7
add bot-wide option to colorize nicknames in formatted output
2019-11-11 12:20:27 +00:00
jesopo
9460238917
move tfl.py to bitbot-modules
2019-11-08 17:58:04 +00:00
jesopo
8eae040240
remove unneeded imports in tfl.py
2019-11-08 17:42:30 +00:00
jesopo
c20a31aa72
rewrite tfl.py
2019-11-08 17:41:29 +00:00
jesopo
b41588b098
Don't assign keys
to an array index that doesn't exist yet
2019-11-08 17:05:09 +00:00
jesopo
b4de61d009
JOIN keys should be comma separated too
2019-11-08 16:15:58 +00:00
jesopo
f2a13f9015
don't get far in to attempting sasl when we haven't got it configured
2019-11-08 13:34:05 +00:00
jesopo
e26d769b7b
refactor sasl a little and fix logic to retry on 908
2019-11-08 13:30:08 +00:00
jesopo
f8083ae7b4
switch to a better python eval API
2019-11-08 12:46:25 +00:00
jesopo
1231067012
'server_mechanimsms' -> 'server_mechanisms' typo
2019-11-08 10:20:23 +00:00
jesopo
5dc1ea3ffa
move on to command.regex if a given command isn't found
2019-11-06 13:05:41 +00:00
jesopo
fa28e4e7b2
add !c as an alias of !config
2019-11-05 12:51:10 +00:00
jesopo
28d3da85b4
!seen should get seen-info for target user, not current user
2019-11-04 15:33:57 +00:00
jesopo
983c7151ae
show branch name in !version output
2019-11-04 13:40:16 +00:00
jesopo
2642bd7dac
show when a fediverse Note is nothing but an attachment
2019-11-04 13:19:37 +00:00
jesopo
516884acb8
only .decompose() when it's an empty and unknown tag
2019-11-04 12:51:24 +00:00
jesopo
62781badc4
better line normalisation for fediverse Activities
2019-11-04 11:18:34 +00:00
jesopo
bcdffacab5
add on_pause() and on_resume() for module - use in rest_api.py
2019-11-04 10:52:41 +00:00
jesopo
754269576a
change labeled-response WARN logging to DEBUG - it's mostly unimportant
2019-11-04 10:17:47 +00:00
jesopo
423e6b00b6
remove !timezone as !time now shows UTC offset
2019-11-04 10:11:57 +00:00
jesopo
9de95d17e5
how many times can i typo "utc"
2019-11-03 12:50:47 +00:00
jesopo
352f6b26d3
"GMT" -> "UTC"
2019-11-03 12:48:50 +00:00
jesopo
4826ac67f8
show "published" for "updated" releases - seems theres a bug that prevents the former
2019-11-01 17:58:07 +00:00
jesopo
79beb17aa3
show GMT offset in !time output
2019-11-01 16:06:35 +00:00
jesopo
1d777f88b3
support "event category" for github so we can e.g. show only approvals
2019-11-01 13:30:31 +00:00
jesopo
96d175bc31
fix Gitea release
event return
2019-11-01 10:28:47 +00:00
fosslinux
7da08ffc80
tell user config setting is unchanged
2019-11-01 17:50:21 +11:00
Valentin Lorentz
135020b42f
Add .travis.yml to run mypy. ( #192 )
...
* Add typing to modules/tfl.py.
* Add .travis.yml to run mypy.
2019-11-01 06:10:35 +00:00
jesopo
307a767d22
'changed host (_@_)' -> 'changed host to _@_'
2019-10-31 15:51:24 +00:00
jesopo
a8113488aa
include CHGHOST lines in channel_log logs
2019-10-31 15:36:22 +00:00
jesopo
a73629bbf7
format and print CHGHOST events
2019-10-31 15:35:53 +00:00
jesopo
8831724af0
'element.contents' -> 'element.children' for consistency
2019-10-31 15:18:45 +00:00
jesopo
5d08a496a4
use lxml for parsing fedi Notes. html.parse is bad and unpredictable
2019-10-31 15:17:39 +00:00
jesopo
07c7afcf2e
use utils.parse.line_normalise in title.py
2019-10-31 10:27:42 +00:00
jesopo
10b5b19cff
don't try to parse empty <title>s
2019-10-31 10:27:00 +00:00
jesopo
930794c414
don't assume we're in a channel when we're not (title.py)
2019-10-31 10:26:00 +00:00
jesopo
aa4511e0d9
add server/channel config to disable command suggestions
2019-10-30 11:48:35 +00:00
jesopo
35cc2d539d
!seen seen-info should be per-channel, not network wide
...
closes #196
2019-10-30 11:42:00 +00:00
jesopo
4f5dbbb6e0
actually set server._sasl_timeout
2019-10-30 11:41:49 +00:00
jesopo
c0c1f85e83
timeout sasl/AUTHENTICATE handshakes after 15 seconds. closes #195
2019-10-30 11:20:07 +00:00
jesopo
0675285624
never bot.panic() on sasl hard fail - always just reconnect indefinitely
2019-10-30 11:03:55 +00:00
jesopo
9f7ef8e6d2
show youtube upload time as YYYY-MM-DD, not timespan
2019-10-30 10:25:18 +00:00
jesopo
3634b72622
add utils.date_human() - use it in badges.py
2019-10-30 10:25:07 +00:00
jesopo
8ec365ceef
don't record ACTIONs in markov chains
2019-10-29 18:09:57 +00:00
jesopo
d2b1250c97
boldify youtube video title so it stands out from all the information
2019-10-29 14:20:27 +00:00
jesopo
28139cdf68
show how long ago a youtube video was uploaded
...
closes #188
2019-10-29 10:20:29 +00:00
jesopo
6421cb6118
improve proxy.py socket override using nested function def
2019-10-28 18:11:57 +00:00
jesopo
18223a40ef
use the same formatting for "confidential_note" as "note"
2019-10-28 14:25:26 +00:00
jesopo
5a095b0787
support confidential notes on gitlab webhooks
2019-10-28 14:21:54 +00:00
jesopo
69e2511725
filter() needs a None
arg
2019-10-28 14:14:46 +00:00
jesopo
7287d9d083
we still need to pass the base "event" to handler.webhook
2019-10-28 14:13:14 +00:00
jesopo
12abf0c271
'action' -> 'event_action'
2019-10-28 14:12:20 +00:00
jesopo
7766c889f4
support event 'category' for GitLab (e.g. Note events but only for Issues)
2019-10-28 14:10:42 +00:00
jesopo
6ee76af907
fix relay exception
2019-10-28 13:56:04 +00:00
jesopo
65c7279ce0
allow relaying channels on the same server
2019-10-28 13:55:50 +00:00
jesopo
9eacdee086
"id" -> "iid"
2019-10-28 12:38:29 +00:00
jesopo
d20ff91e99
'issue_comment' -> 'issue_note', fix issue id referencing
2019-10-28 12:37:21 +00:00
jesopo
07a3ba5222
strip '"<>() from <title> words when checking for title/url difference
2019-10-28 12:25:23 +00:00
jesopo
74d9bf4da3
_messag_factory._ should take a tags
arg
2019-10-28 11:24:56 +00:00
jesopo
e6b4321f30
'_mesage_factory' -> '_message_factory'
2019-10-28 11:23:55 +00:00
jesopo
627e564dbd
_mess_factory -> _message_factory. funny typo lol
2019-10-28 11:23:02 +00:00
jesopo
6e16ed8d5e
pass confidential_issue through same parsing func as issue
...
closes #193
2019-10-28 11:20:46 +00:00
jesopo
802aa35e3d
support GitLab confidential issues
2019-10-28 11:17:56 +00:00
jesopo
7ee65f8f8c
remove src/utils/irc/protocol.py
2019-10-28 10:56:33 +00:00
jesopo
8f4b5a0e70
move IRCLine related code from utils.irc to IRCLine.py
2019-10-27 10:19:00 +00:00
jesopo
c4c076137d
fallback ActivityPub data encoding to utf8
2019-10-26 22:43:11 +01:00
jesopo
9053b2245c
we want both sides of the .split
2019-10-25 22:46:02 +01:00
jesopo
f92f2c9cc1
make repo_username
the subgroup when present
2019-10-25 22:37:03 +01:00
jesopo
bbd7a58914
support gitlab subgroups in git_webhooks
2019-10-25 22:32:01 +01:00
jesopo
ddc70a6bd9
add !cmute/!cunmute to set +m/-m on current channel
2019-10-25 18:30:57 +01:00
jesopo
7e6e40965b
comma-separate likes/dislikes for youtube videos
2019-10-25 15:07:30 +01:00
jesopo
877287291a
reason
arg of panic()
shouldn't be optional, detect current exception
2019-10-25 14:31:09 +01:00
jesopo
fce791e38b
Fix !startvote advice on voting on the started vote
2019-10-25 14:21:47 +01:00
jesopo
b23cc1e1bd
Allow !vote to be restricted to voiced-and-above users
2019-10-25 14:21:30 +01:00
jesopo
869e91fc2a
'existing_server' -> 'server'
2019-10-25 13:39:00 +01:00
jesopo
6a2e4f70df
re-add lost git_webhook branch filtering
2019-10-25 11:29:27 +01:00
jesopo
39d14102f9
support channels
GET param for git webhooks, to denote target channels
2019-10-25 10:09:17 +01:00
jesopo
51c914ebae
get account id (not just account name) from WHOX
...
closes #116
2019-10-20 18:27:06 +01:00
jesopo
f7aa56b8eb
also support twitter mobile urls
2019-10-20 17:10:01 +01:00
jesopo
31531949ce
flip create/delete tag detection logic
2019-10-20 13:39:04 +01:00
jesopo
a4fbc150c8
add missing ]
2019-10-20 13:36:26 +01:00
jesopo
b152c5e3a7
return None url param for tag_push
2019-10-20 13:34:41 +01:00
jesopo
e0403aa3d2
added gitlab Tag Push events
2019-10-20 12:51:11 +01:00
jesopo
ae549575e4
still show url when shortening is turned off
2019-10-19 18:58:29 +01:00
jesopo
4cce0bb54e
dont shorten git webhook urls by default
2019-10-19 17:09:04 +01:00
jesopo
ecca7927fe
youtube playlist info should be returning URL as a tuple item
2019-10-18 16:40:31 +01:00
jesopo
1c02de8a69
change !fedi "!" arg to still show CW but also show content of Note
2019-10-18 15:54:36 +01:00
jesopo
20a115e71d
add "!" arg to !fedi, to denote "dont show content warning"
2019-10-18 15:43:17 +01:00
jesopo
40a8406054
put a permission restriction on !tcpup - it could be abused for port scanning
2019-10-18 15:18:46 +01:00
jesopo
4391176c7f
major security fix: adding api keys should be admin-only
2019-10-18 15:17:04 +01:00
jesopo
f7d34e16bb
if a nickname has no location set, assume it's a location
2019-10-18 15:03:19 +01:00
jesopo
480a4f73a9
remove now-unused formatting params for urls
2019-10-18 14:07:34 +01:00
jesopo
86147ded77
pass git_webhook urls up to __init__.py to be shortened
2019-10-18 14:03:20 +01:00
jesopo
2b4f5dc75b
correctly color/phrase opened, closed and merged for MRs
2019-10-18 13:31:21 +01:00
jesopo
afd6800c98
show merge_request/merge events
2019-10-18 13:28:24 +01:00
jesopo
7d786baa65
"PR"->"MR" again, "open"->"opened" etc for MRs too
2019-10-18 12:20:23 +01:00
jesopo
b151e7eecd
'PR' -> 'MR' (they're "merge requests" on gitlab, not "pull requests")
2019-10-18 12:02:56 +01:00
jesopo
963d0d2de7
'opened' -> 'open' etc for gitlab event categories
2019-10-18 11:58:10 +01:00
jesopo
53b2407072
'open' -> 'opened' etc for gitlab issue webhook actions
2019-10-18 11:19:16 +01:00
jesopo
123cdcf0da
pull_request -> merge_request
2019-10-18 03:52:59 +01:00
jesopo
8ff4ad19eb
we should be showing 'title' (not 'description') for gitlab issue events
2019-10-17 11:50:57 +01:00
jesopo
a6093092b1
'issues' should be an alias for 'issue' in gitlab
2019-10-17 11:49:07 +01:00
jesopo
4a4a0ac45b
dont fail !weather when we decide a nickname is a location
2019-10-16 15:53:34 +01:00
jesopo
6d29291f47
also catch m.youtube.com urls
2019-10-15 17:27:02 +01:00
jesopo
fa97f12689
support AP Notes with content outside of HTML tags (e.g. pleroma)
2019-10-15 16:44:28 +01:00
jesopo
491ad531c2
mapped event names for gitlab webhooks should be 'issue' not 'issues'
2019-10-15 16:20:41 +01:00
jesopo
f0a9f00b57
'issues' -> 'issue', 'pull_request' -> 'merge_request'
2019-10-15 16:14:15 +01:00
jesopo
2f94e7546f
actually instantiate gitlab in git_webhooks/__init__.py
2019-10-15 16:10:18 +01:00
jesopo
be30cb81af
add first draft of gitlab webhook support
2019-10-15 16:04:30 +01:00
jesopo
41f5c5d607
move cve.py to bitbot-modules repo
2019-10-15 15:27:44 +01:00
jesopo
3f4eebf85b
show ,fedi latest-tweet also if it's a self-reply
2019-10-15 15:24:57 +01:00
jesopo
f739064d10
show first
toot if it's a boost, fix Note boost formatting
2019-10-15 15:13:28 +01:00
jesopo
205049ab6f
remove unused util functions in git_webhooks/gitea.py
2019-10-15 10:53:29 +01:00
jesopo
124fc4fc42
Set duck_lines
to -1 when a duck is waiting to quack - do not allow bef/trap
...
closes #177
2019-10-15 10:33:13 +01:00
jesopo
e58e9a2058
add .back suffix to database backups
2019-10-14 18:13:43 +01:00
jesopo
fe16c0132f
prune database backups even if there's more than 5
2019-10-14 18:07:18 +01:00
jesopo
11ade023e8
eat errors for failing to parse @commit
2019-10-14 14:03:47 +01:00
jesopo
a9111c7241
add ModuleManager.try_reload_modules(), to try reloading in a transaction
...
if any of the modules fails to reload, rollback and use the already loaded modules. closes #179
2019-10-14 12:56:04 +01:00
jesopo
af1fd37003
actually explicitly strip "unknown" html tags from fedi notes
2019-10-14 10:46:15 +01:00
jesopo
ea589b744f
Merge pull request #173 from panicbit/splitpoints
...
Adjust line splitpoints to word boundaries. closes #159
2019-10-12 21:50:24 +01:00
panicbit
c94327b58b
Remove @staticmethod
2019-10-12 18:30:22 +02:00
James Lu
dda27c1b1c
Show 0 karma in the colour of gold™
2019-10-11 23:23:58 -07:00
jesopo
3fc7294539
exit when all servers are disconnected after ctrl+c
2019-10-11 17:06:37 +01:00
jesopo
0207e8e2b6
Revert "no longer treat ctrl+c as "shutdown" - bitbotctl will take this job"
...
This reverts commit 73e6ede8cc
.
2019-10-11 15:41:51 +01:00
jesopo
73e6ede8cc
no longer treat ctrl+c as "shutdown" - bitbotctl will take this job
2019-10-11 15:39:01 +01:00
jesopo
a5eca53f0a
we need both id
and server
for !disconnect
2019-10-10 18:02:55 +01:00
jesopo
dd94f3a918
'.values()' -> '.items()'
2019-10-10 17:16:00 +01:00
jesopo
0960740aca
dont say a vote has changed when it's been "changed" to the same option
2019-10-10 17:15:03 +01:00
jesopo
c2f075599d
ignore invalid utf8 in markov log imports
2019-10-10 16:36:59 +01:00
jesopo
fe1c2c0205
'channel.find_setting()' -> 'channel.find_settings()'
2019-10-10 15:27:49 +01:00
jesopo
4db34b087d
server.hostmask() already exists
2019-10-10 12:19:34 +01:00
jesopo
d91cd02d34
change badges.py to use utils.datetime_utcnow() - less code dupe
2019-10-10 12:17:10 +01:00
jesopo
0331b763ff
refactor multi-line-to-line normalisation to utils.parse.line_normalise(), use it in rss.py
...
closes #174
2019-10-10 10:33:18 +01:00
jesopo
cf1002a2a9
strip HTML from RSS entry titles
...
closes #174
2019-10-10 10:20:44 +01:00
jesopo
97c439a9d7
!editserver only need an alias to exist, not to be currently connected
2019-10-09 20:56:38 +01:00
panicbit
d069d4b83f
Adjust line splitpoints to word boundaries
2019-10-09 20:54:42 +02:00
jesopo
87a7d74fc3
a chain has failed to generate if the result is the same as the input
2019-10-09 17:54:28 +01:00
jesopo
84ec6d812f
format multi-line toots on a single line using things like double space
2019-10-09 16:44:54 +01:00
jesopo
5aba3f509e
format multi-line tweets on a single line using things like double spaces
2019-10-09 15:35:20 +01:00
jesopo
1e1eeb9b7f
only FORCE_SUCCESS for masterlogin when there's a permissions requirement
2019-10-09 14:29:25 +01:00
jesopo
6b8323b6f5
also split auto-title words on /
2019-10-09 12:58:25 +01:00
jesopo
27da1f314b
[:,] shouldn't be optional because the wider group is
2019-10-09 10:33:31 +01:00
jesopo
7ea434e62e
only accept space between word and modifier for word karma when : or ,
2019-10-09 10:31:56 +01:00
jesopo
a43edd17ae
duck_active should be when the duck spawns
2019-10-08 21:52:26 +01:00
jesopo
90df25cd8d
typo, 'timer.repo()' -> 'timer.redo()'
2019-10-08 17:03:57 +01:00
jesopo
a2ccf85abf
duck-prevent-highlight by default, improve !friends/!enemies query
2019-10-08 16:28:52 +01:00
jesopo
5035a5370c
default !friends/!enemies to be for the current channel
2019-10-08 16:20:52 +01:00
jesopo
44a635b708
prefer url
over id
as it's usually a more user-friendly url
2019-10-08 16:07:35 +01:00
jesopo
921e59e0f8
!isupraw -> !tcpup
2019-10-08 16:02:29 +01:00
jesopo
ee64bfc5fc
look back in logs for URL when non is provided to !isup
2019-10-08 15:56:25 +01:00
jesopo
15782908db
add !isupraw - to check if a tcp connection is possible to a target
...
closes #120
2019-10-08 15:46:15 +01:00
jesopo
4157574516
show $n/$u/$h for ban-format-account help too
2019-10-08 15:08:16 +01:00
jesopo
d0aa1d34f1
don't consume ":"/"," in a karma target
2019-10-08 15:03:24 +01:00
jesopo
a5e489655d
move !which to help.py
2019-10-08 14:48:39 +01:00
jesopo
c547df81dd
add !apropos - to show commands with a given string in them
...
closes #133
2019-10-08 14:45:46 +01:00
jesopo
0226b48b0c
do not permit a space between () and karma modifier
2019-10-08 14:34:14 +01:00
jesopo
1b3ee1cb89
only show twitter url when one was not provided initially
2019-10-08 14:21:15 +01:00
jesopo
37e375c31f
allow !markovfor outside a channel when you share the channel with bitbot
2019-10-08 14:03:09 +01:00
jesopo
355689bb35
send ducks 5-20 seconds after the message that triggered it
2019-10-08 13:57:26 +01:00
jesopo
7a5edccb98
transient timers shouldn't use the event system
2019-10-08 13:49:55 +01:00
jesopo
513f8a1ddd
only show youtu.be url when one was not provided
...
closes #171
2019-10-08 11:39:14 +01:00
jesopo
6a0d41f069
make 'sasl' setting 'sensitive'
2019-10-07 13:12:17 +01:00
jesopo
5c3510fe7c
Setting.format() should effect when you change a setting, mostly for
...
SensitiveSetting
2019-10-07 13:11:58 +01:00
jesopo
50d1eb6b8c
combine find_setting() and find_setting_prefix() on user/channel/server/bot
2019-10-07 12:46:52 +01:00
jesopo
cac8cb7b7e
better help/usage for quote.py commands
...
closes #92
2019-10-04 15:25:53 +01:00
jesopo
3d7f6c9924
only allow !to against users bitbot has seen before
...
closes #111
2019-10-04 15:20:38 +01:00
jesopo
70aceab622
exclude lines with URLs in them from creating markov chains
...
closes #156
2019-10-04 15:14:43 +01:00
jesopo
472b5ba9f0
support !fedi with a URL to a Note
2019-10-04 13:06:29 +01:00
jesopo
8938e119b4
expand apikey
command to list, add, remove and info
...
closes #123
2019-10-04 12:39:36 +01:00
jesopo
843440ac97
preprocess.command returns now need action, message
returns
2019-10-04 12:05:28 +01:00
jesopo
432fd39441
also stop markov chain if we chose None
2019-10-04 11:57:11 +01:00
jesopo
8e4c0f4963
ignore one-char "words" in <title> if they're not a "letter"
2019-10-04 11:20:35 +01:00
jesopo
8f927afdc9
don't auto-title when a URL contains most of it's <title>
2019-10-04 10:52:07 +01:00
jesopo
3466a3c43e
Allow utils.Setting_ parse functions to throw detailed errors
2019-10-04 10:25:48 +01:00
jesopo
7e51165a23
check that third_words
isn't empty
2019-10-04 10:12:52 +01:00
jesopo
95f098b6d6
pass whether a command.regex trigger was an ACTION or not
2019-10-03 16:42:11 +01:00
jesopo
15f28dad1e
only look at PRIVMSG and NOTICE for !seen
2019-10-03 16:02:23 +01:00
jesopo
cee29ba1a5
split words/parens karma in to 2 regexes, only accept non-parens when ^$
...
closes #169
2019-10-03 13:20:35 +01:00
jesopo
db4bb7db56
add !ghcommit and @commit auto-github syntax
2019-10-03 12:09:18 +01:00
jesopo
ec628f4f70
alias
doesnt exist either
2019-10-03 05:19:16 +01:00
jesopo
54e4cd4e74
dont try to !connect to a variable that doesnt exist
2019-10-03 05:15:30 +01:00
Aron Heinecke
028c7758c9
Fix typo
2019-10-02 00:37:59 +02:00
jesopo
afb07f6531
only check arg number at all when not "$-"
2019-09-30 16:33:21 +01:00
jesopo
a9021813e5
first_word.lower() -> first_words[0].lower()
2019-09-30 16:31:13 +01:00
jesopo
f49f34a98f
first_word -> first_words, better if statement
2019-09-30 16:28:57 +01:00
jesopo
3c60de8164
support multiple first_words
2019-09-30 16:27:29 +01:00
jesopo
a75802129f
allow whitespace between karma target and ++/--
2019-09-30 15:36:13 +01:00
jesopo
f306213cb8
'is_localhost()' -> 'host_permitted()'
2019-09-30 15:15:20 +01:00
jesopo
1d34363db4
default sasl-hard-fail to false but add a bot-wide setting for it
2019-09-30 10:41:57 +01:00
jesopo
7d3521395e
add github-token to bot.conf.example, use in github.py when available
2019-09-30 10:35:36 +01:00
jesopo
0a1a3551a2
support "$-" for alias arg, meaning "0 or more args"
2019-09-30 10:15:12 +01:00
jesopo
bc63111984
add !msg
2019-09-27 16:18:49 +01:00
jesopo
514b0126f2
Revert "add !msg"
...
This reverts commit ddaf8a3890
.
2019-09-27 16:16:50 +01:00
jesopo
ddaf8a3890
add !msg
2019-09-27 16:14:39 +01:00
jesopo
2493cfa487
Merge pull request #164 from chiefnoah/master
...
Improves sentence processing for karma
2019-09-27 14:32:59 +01:00
Noah Pederson
c3f95130a3
Some minor cleanup
2019-09-27 07:32:09 -06:00
jesopo
c04ed5875d
pass username/hostname to get_user() so new.user events have that information
2019-09-27 12:54:20 +01:00
jesopo
54d874ddee
take an option server alias arg for !reconnect
...
closes #166
2019-09-27 12:35:28 +01:00
jesopo
efeffb62a9
!changenickname -> !nickname
2019-09-27 12:26:14 +01:00
jesopo
c332ccc1aa
add require_access flags to !silence/!unsilence
2019-09-26 17:56:10 +01:00
jesopo
3c2aef52f6
update username/hostname of Users when they send PRIVMSG/NOTICE/TAGMSG
2019-09-26 17:47:45 +01:00
jesopo
0f87c3c56e
add check_certificate.py, to warn about expiring or not valid client certs
2019-09-26 16:03:23 +01:00
jesopo
f7455e6347
capitalisation and comma for "!stats <alias>"
2019-09-26 14:59:26 +01:00
jesopo
2c8b3749cf
default !roll to 1d6
2019-09-26 14:48:05 +01:00
jesopo
17c899fb70
make dice count optional (default 1)
2019-09-26 14:32:48 +01:00
jesopo
c5b9a13b53
Show dice format error when regex doesn't match
2019-09-26 14:32:20 +01:00
jesopo
ab51bbaefa
only permit 3-digit modifiers
2019-09-26 14:31:38 +01:00
jesopo
0c211528ef
also show "total" when there's modifiers
2019-09-26 14:22:56 +01:00
jesopo
e2ececa9fd
fine. support up to d100
2019-09-26 14:15:54 +01:00
jesopo
3f71674369
allow up to d30, not just d20
2019-09-26 14:09:59 +01:00
jesopo
55c354cebb
add !dice as an alias of !roll
2019-09-26 14:06:58 +01:00
jesopo
d6fa786806
!k should be alias_of !kick
2019-09-26 14:06:47 +01:00
jesopo
8dc415fa4b
support +/- modifiers on dice !roll
2019-09-26 14:04:59 +01:00
jesopo
6cfab3f344
allow !grab for 1 to 3 most recent lines (default is 1)
2019-09-26 13:47:17 +01:00
jesopo
3be9029669
add !action to echo.py
2019-09-26 12:27:20 +01:00
jesopo
30588da3a7
returned
is now a tuple; we want message
2019-09-26 12:19:50 +01:00
jesopo
3c1a313ef2
'require-mode'/'require-access' -> 'require_mode'/'require_access'
...
closes #161
2019-09-26 12:15:35 +01:00
jesopo
2e80b223de
allow all preprocess.command and check.command failures to have a message
2019-09-26 12:14:55 +01:00
jesopo
1da8e15b78
!echo should have a min_args kwarg
2019-09-26 11:56:37 +01:00
jesopo
4bb20c49dd
make !silence effect min_args and unknown-command
...
closes #160
2019-09-26 11:56:14 +01:00
Noah Pederson
f70e46a198
Improves sentence processing for karma
...
Changes the matching regex to grab arbitrary text between ()
for giving (or taking away) karma. Still supports single words
followed by ++/--, including usernames, and strips "," or ":"
characters from the end if a single-word match.
ex. (some sentence to give karma to)++ -> "[Karma] some sentence to give
karma to now has 1 karma"
ex. ngp:++ -> "[Karma] ngp now has 200 karma"
2019-09-26 05:50:10 -05:00
jesopo
fb4018dd4f
push markov lines down command.regex so ignored users are missed
2019-09-25 18:12:49 +01:00
jesopo
c6efea3971
non-CWed pleroma posts have content as "", not null
2019-09-25 17:12:55 +01:00
jesopo
6199086dc5
pleroma outbox items don't have an inReplyTo when it's null
2019-09-25 17:11:16 +01:00
jesopo
67cd14da5a
only fist first_item once
2019-09-25 16:14:48 +01:00
jesopo
5923602f0a
make fediverse module rely on REST API
...
I didn't want to do this unless we had to but Mastodon is introducing requirming
signed requests soon, so even if a user doesn't use bitbot as an instance, we'll
still need to be able to serve Actor (and key) over the REST API
2019-09-25 16:11:57 +01:00
jesopo
13b21b205d
only show non-replies with ,fedi
2019-09-25 16:11:18 +01:00
jesopo
c2e48c858e
allow channels to specify quotes should be per-channel
2019-09-25 15:12:52 +01:00
jesopo
d8ad79c153
request tweet stream as tweet_mode="extended"
2019-09-25 15:03:43 +01:00
jesopo
25ec351d4d
show alias of disconnected server when it's a cancelled timer
2019-09-25 12:33:12 +01:00
jesopo
3fa71a75af
serve pub key, not cert
2019-09-25 10:43:39 +01:00
jesopo
b18586ba51
don't .strip() tls cert
2019-09-25 10:32:54 +01:00
jesopo
e2ec8afbea
_ap_url already array-ifies
2019-09-25 10:17:56 +01:00
jesopo
0e5b14fb47
reference mask_split, not s
2019-09-24 15:57:23 +01:00
jesopo
9c591ca8dc
don't throw when account name is null
2019-09-24 15:52:31 +01:00
jesopo
70bc244864
switch ban-format-account from a serverset to channelset
2019-09-24 15:50:54 +01:00
jesopo
682914dce1
support having a separate ban format for users with accounts
2019-09-24 15:47:33 +01:00
jesopo
f59b161fbd
use ban-format for mute masks
2019-09-24 15:39:31 +01:00
jesopo
7549c0f998
support "$$" as "$" in ban-format
2019-09-24 15:27:35 +01:00
jesopo
5b82193f3b
support $a (account) in ban-mask setting
2019-09-24 15:25:33 +01:00
jesopo
9297ffbadc
.lstrip("-") from unset setting name
2019-09-24 14:48:01 +01:00
jesopo
8d3a35e740
'ref' doesn't always come in "a/b/c" format for Gitea
2019-09-24 13:00:08 +01:00
jesopo
195381d2e5
utf8-decode translation data
2019-09-24 12:47:16 +01:00
jesopo
8618f43b34
don't favourite starting words when first_word is provided
2019-09-24 10:55:18 +01:00
jesopo
5ea714182d
support first-word argument to !markovfor
2019-09-24 10:51:25 +01:00
jesopo
6669926746
support first_word with no found second_word
...
useful for "!markov <word>" so that "<word>" can be mid-chain
2019-09-23 16:47:11 +01:00
jesopo
7656fb9b51
'start' -> 'first_word'
2019-09-23 16:13:50 +01:00
jesopo
c253d17f54
allow an arg to !markov to chose the first word
2019-09-23 11:39:43 +01:00
jesopo
bb2590734b
add missing "import urllib.parse" to ap_utils.py
2019-09-23 11:28:14 +01:00
jesopo
6ee9bcc51f
add default value of self._load_thread
2019-09-23 10:41:01 +01:00
jesopo
28cdf05a47
push markov loading half on to a background thread that takes the main thread
...
for database actions
2019-09-23 10:24:03 +01:00
jesopo
964730e758
add success message, decode http get response
2019-09-23 10:06:04 +01:00
jesopo
e448a4abb8
add command for loading logs in to markov (via http)
2019-09-23 10:03:32 +01:00