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
jesopo
72ff24227d
we only need 1 level of "end" markov chains
2019-09-20 18:52:52 +01:00
jesopo
781b6bf525
copypaste fail, duplicate "markov" command hook
2019-09-20 18:09:26 +01:00
jesopo
3dfee55d42
add !markovfor
2019-09-20 18:08:22 +01:00
jesopo
c2e3fa4e80
.lower() markov words
2019-09-20 17:48:18 +01:00
jesopo
0e9a8d66a7
getting frequency on-insert should be execute_fetchone
2019-09-20 17:21:18 +01:00
jesopo
fa405df36a
remove debug print
2019-09-20 17:19:12 +01:00
jesopo
81cf1ab58f
add a command to generate markov chains (!markov)
2019-09-20 17:18:47 +01:00
jesopo
4ccd3084ed
'_on_load' -> 'on_load'
2019-09-20 17:15:21 +01:00
jesopo
532d1687c3
database.execute() doesn't fetch data
2019-09-20 17:12:17 +01:00
jesopo
ecf48aa33e
generate() takes a channel id, not a channel
2019-09-20 17:07:48 +01:00
jesopo
72fca2eacb
add missing ")" in CREATE query
2019-09-20 16:58:42 +01:00
jesopo
f24f58ecd0
'self.database' -> 'self.bot.database'
2019-09-20 16:57:17 +01:00
jesopo
909ba10263
first draft of markov.py
2019-09-20 16:56:00 +01:00
jesopo
3d3b990ff6
only show auto-title when response code is 200
2019-09-20 15:56:14 +01:00
jesopo
cf988c600d
'to' -> 'so', typo in !cfilter comment
2019-09-20 14:57:24 +01:00
jesopo
ebcae169c7
remove redundant old docstring kwargs from !silence
2019-09-20 14:55:19 +01:00
jesopo
47d38c7d18
refactor all checks for channel_type to server.is_channel()
2019-09-20 14:52:41 +01:00
jesopo
95a22f53f2
improve !ud usage string (wrt #number)
2019-09-20 14:19:06 +01:00
jesopo
c488fb2a82
change !ud index syntax and put it in help text
2019-09-20 14:11:09 +01:00
jesopo
208eb9cd47
move where optional for_str is inserted
2019-09-20 13:39:33 +01:00
jesopo
956cc86072
'path' is now 'args'
2019-09-20 13:34:55 +01:00
jesopo
8a3e480ef5
bitbot is a Service (bot), not a Person
2019-09-20 11:44:23 +01:00
jesopo
04d75ec414
make a better "random ID url" function
2019-09-20 11:39:46 +01:00
jesopo
51b8429278
make Accept ID (and Follow ID) our own domain
2019-09-20 10:53:58 +01:00
jesopo
1fac9135fb
'path' -> 'args' on REST API events
2019-09-20 10:48:24 +01:00
jesopo
d75d751295
update _ap_*_url() functions to use path-args
2019-09-20 10:46:49 +01:00
jesopo
691fdf8978
add missing ")"
2019-09-20 10:43:23 +01:00
jesopo
1b3ee8e336
use path-arg variables for AP urls, not get params
2019-09-20 10:42:08 +01:00
jesopo
cf65614832
support path-arg variables in url_for
2019-09-20 10:41:52 +01:00
jesopo
744a384c47
use source Hostmask from multiline batch
2019-09-19 18:16:23 +01:00
jesopo
efc0e197e5
Allow passing source Hostmask to IRCBatch
2019-09-19 18:16:10 +01:00
jesopo
c7409c91be
add missing IRCLine import
2019-09-19 16:24:53 +01:00
jesopo
8e9fba0f96
'bitbot.dev/multiline' -> 'draft/multiline'
2019-09-19 15:48:16 +01:00
jesopo
8f38223284
fedi http headers should be PascalCase
2019-09-19 15:28:58 +01:00
jesopo
957a222f96
actually pass Request objects to utils.http.request_many() from rss.py
2019-09-19 15:04:50 +01:00
jesopo
88a69aaa66
give Requests, use them in utils.http.request_many()
2019-09-19 14:54:44 +01:00
jesopo
9d846d10e2
append "CVE-" to CVE ids without it
2019-09-18 17:51:08 +01:00
jesopo
9ec81f8c8a
move check_urls.py to bitbot-modules
2019-09-18 17:49:24 +01:00
jesopo
31607def4e
move botsnack to bitbot-modules
2019-09-18 17:48:23 +01:00
jesopo
9a152541f1
move timer.py to bitbot-modules
2019-09-18 17:46:52 +01:00
jesopo
81f6715d7d
move slowvoice.py to bitbot-modules
2019-09-18 17:45:58 +01:00
jesopo
d5b9da7659
don't use JOIN/QUIT as !seen events (netsplits cause these)
2019-09-18 11:43:59 +01:00
jesopo
ea1698499f
through error when fediverse server is configured but crypto is missing
2019-09-18 10:18:49 +01:00
jesopo
9d4830dd88
first
is now a Response object, not a dict
2019-09-17 18:05:39 +01:00
jesopo
14d28d836b
'responsedata' -> 'response.data'
2019-09-17 18:04:52 +01:00
jesopo
770c28da55
allow "!config #channel" for channels other than the current one
2019-09-17 17:56:56 +01:00
jesopo
441a58125a
Show error when actor.load() fails
2019-09-17 17:41:40 +01:00
jesopo
f84b48adbe
pass full Response from ap_utils.activity_request, use it for Actor 404
2019-09-17 17:41:15 +01:00
jesopo
ebe772a5a9
be explicit when a command has no help available
2019-09-17 16:27:35 +01:00
jesopo
0de4688540
add !myaccount
2019-09-17 15:15:54 +01:00
jesopo
b362e7d760
if a word is known as a nickname but the user has no location, treat as location
2019-09-17 15:06:13 +01:00
jesopo
92840f67ee
don't die when channel.topic_setter is null
2019-09-17 14:14:30 +01:00
jesopo
f2f09bf0ca
'srt' -> 'str'
...
closes #152
2019-09-17 12:23:05 +01:00
jesopo
141b326d5a
allow per-server default mumble servers
...
closes #151
2019-09-17 10:58:02 +01:00
jesopo
e77124604c
hide hidden channels from "!channels" when not pm and not current channel
...
closes #150
2019-09-17 10:54:07 +01:00
jesopo
a04a29aa2c
add per-channel default mumble server
...
closes #151
2019-09-17 10:45:11 +01:00
jesopo
89289065a9
suggest "!config <nickname> <setting> <value>" when settings are missing
2019-09-17 10:31:28 +01:00