jesopo
bf6a740f7b
Fix typo in modules/imgur.py that caused headers
passed to utils.http.get_url
...
to be a set, not a dict. (',' -> ':')
2018-10-31 16:17:22 +00:00
jesopo
0066cb313e
REGEX_IMAGE should be a compiled regex!
2018-10-31 16:16:31 +00:00
jesopo
f073613848
Add first version of modules/imgur.py
2018-10-31 16:12:28 +00:00
jesopo
b58a3f7329
Update modules/line_handler.py to now not pass a server
param to
...
utils.irc.parse_line
2018-10-30 17:55:05 +00:00
jesopo
e07553c362
Add type/return hints throughout src/ and, in doing so, fix some cyclical
...
references.
2018-10-30 14:58:48 +00:00
jesopo
705daaf9bb
Don't needlessly search a youtube URL before getting the information for it's
...
video ID when a URL is provided to !yt
2018-10-29 23:13:32 +00:00
jesopo
73077b9bbf
'continue' -> 'return' in moules/badwords.py
2018-10-28 14:02:43 +00:00
jesopo
82f8a23503
badwords shouldn't effect users with +v or above
2018-10-28 14:01:54 +00:00
jesopo
85f86f9d8a
Pretend badwords list is zero-indexed
2018-10-28 12:44:48 +00:00
jesopo
73a33633e2
Fix wording for !badwordsdel (copypaste fail!)
2018-10-28 12:41:01 +00:00
jesopo
996df4dc5e
Correctly use enumerate() in modules/badwords.py.badwords_list
2018-10-28 12:40:39 +00:00
jesopo
53f027bea1
'pattern' -> 'badword'
2018-10-28 12:37:32 +00:00
jesopo
0ff934d5b9
'received.message.channel' uses 'channel' not 'target' as event kwarg
2018-10-28 12:36:28 +00:00
jesopo
7472079f60
'badowrds' -> 'badwords'
2018-10-28 12:35:35 +00:00
jesopo
27bfe2e23d
Yet another typo in modules/badwords.py, 'get_getting' -> 'get_setting'
2018-10-28 12:34:18 +00:00
jesopo
09779ca570
'channel' -> 'target' in modules/badwords.py
2018-10-28 12:33:26 +00:00
jesopo
60421382d4
Fix typo in modules/badwords.py, 'events' -> 'event'
2018-10-28 12:32:24 +00:00
jesopo
c28c85cdd6
Add missing ":" in modules/badwords.py
2018-10-28 12:31:42 +00:00
jesopo
d3563eea69
Add missing ")" in modules/badwords.py
2018-10-28 12:30:53 +00:00
jesopo
c577f9d1ad
Add first version of modules/badwords.py
2018-10-28 12:29:35 +00:00
jesopo
b34f4d70a5
Remove extra ) in modules/commands.py
2018-10-28 11:54:55 +00:00
jesopo
5553ac9e49
Typo in modules/command.py, 'is' -> 'if'
2018-10-28 11:53:31 +00:00
jesopo
ec72787f86
Support multiple "usage" values in commands.py
2018-10-28 11:50:56 +00:00
jesopo
c5e1fafeb1
Put a dash between commit message and commit url
2018-10-26 11:28:01 +01:00
jesopo
e9ed153aa3
Put commit urls on github webhook notices in modules/github.py
2018-10-26 11:25:28 +01:00
jesopo
fd9778bd25
Redo lottery timer in modules/coins.py
2018-10-24 16:03:28 +01:00
jesopo
a1e77c40e8
Give page
an initial value of None, in case the get_url call fails in
...
modules/eval_python.py
2018-10-24 13:54:22 +01:00
jesopo
f89b96f373
Move taking a reference to sys.stdout above fail() in modules/eval_python.py
2018-10-24 13:54:03 +01:00
jesopo
46179d2f38
There's no self
in eval_python's template!
2018-10-24 13:50:50 +01:00
jesopo
7f9399a925
Specifically catch SyntaxError in modules/eval_python.py
2018-10-24 13:43:34 +01:00
jesopo
99f896ebdd
Catch syntax errors with .py/.py2
2018-10-24 13:40:56 +01:00
jesopo
ae0825650e
.items()
-> .values()
2018-10-23 13:39:40 +01:00
jesopo
1794da1f66
Typo in modules/coins.py, 'amount_amount_total' -> 'bet_amount_total'
2018-10-23 13:38:04 +01:00
jesopo
e9fcd0c5e2
Re-move taking payin to before payout, better logic around win/odds to show it
...
correctly but still give back your bet amount
2018-10-23 13:36:33 +01:00
jesopo
7508b0f5e7
Switch back to only taking losses when they're losses, instead of taking payin
...
and then giving it back after the roulette spin
2018-10-23 13:20:13 +01:00
jesopo
db5d9fdb42
_take already gives back to pool
2018-10-23 13:19:51 +01:00
jesopo
7c04ff2e89
Don't try to parse wallet args as a bet amount in modules/coins.py
2018-10-23 00:36:02 +01:00
jesopo
69ebba27bb
Roulette wins should include the payin
2018-10-22 20:23:28 +01:00
jesopo
046e8935df
When deleting a wallet, shift funds to default 'in' wallet instead of assuming a
...
user has a 'default' named wallet
2018-10-22 16:49:20 +01:00
jesopo
e4be2cf339
Fix indication of optionalness of wallet
param of !defaultwallet
2018-10-22 16:23:56 +01:00
jesopo
2e6db95574
Copypaste fail in modules/coins.py, 'row' -> 'i'
2018-10-22 14:23:09 +01:00
jesopo
1614ad9c48
Add lcorner/rcorner bets to !roulette in modules/coins.py
2018-10-22 14:22:10 +01:00
jesopo
84b4a064b8
Add double streets to !roulette in modules/coins.py
2018-10-22 14:11:32 +01:00
jesopo
399e20acc7
Fix copypaste fail in modules/coins.py.move_coins
2018-10-22 14:01:34 +01:00
jesopo
ddcd99405a
Add !movecoins in modules/coins.py
2018-10-22 13:59:25 +01:00
jesopo
77cf1a6afe
Dict are immutable, duh.
2018-10-22 13:14:08 +01:00
jesopo
c6b8e4487d
Typo in help string in modules/coins.py, 'By' -> 'Buy'
2018-10-22 13:13:54 +01:00
jesopo
ec96eda1a3
_default_wallet is not _default_wallet_for
2018-10-22 13:13:30 +01:00
jesopo
8e2a3be90d
_default_wallets takes a user
param
2018-10-22 13:13:13 +01:00
jesopo
d4aef86f7e
_default_wallet_for is for find the default type of a given wallet, not the
...
wallet for a given default type
2018-10-21 12:16:05 +01:00
jesopo
da5a53c9e0
Add missing .items() to dict iteration in modules/coins.py
2018-10-21 12:14:09 +01:00
jesopo
dd99460390
Show default wallet for wallet types when you don't specify 2 args to
...
!defaultwallet
2018-10-21 12:13:08 +01:00
jesopo
e614eb8e75
'DEFAULT_WALLETS' -> 'WALLETS_DEFAULTS'
2018-10-21 12:10:44 +01:00
jesopo
42123442dc
Add missing "," in modules/coins.py
2018-10-21 12:09:35 +01:00
jesopo
4dbad92f3b
use default "interest" wallet for interest and default "lottery" wallet for
...
lottery winnings
2018-10-21 12:08:29 +01:00
jesopo
30a1631edc
'WALLET_DEFAULT' -> 'WALLET_DEFAULT_NAME'
2018-10-21 12:00:19 +01:00
jesopo
87b3c47bcb
prevent !removewallet on any wallet that's configured as a default
2018-10-21 11:57:06 +01:00
jesopo
733d954dc8
Add configurable default wallets for different actions!
2018-10-21 11:52:12 +01:00
jesopo
b69e334ad0
wallet args in !roulette need to have their position calculated!
2018-10-21 08:21:58 +01:00
jesopo
8ea6db9422
Standardise "Failed to load results" errors!
2018-10-20 20:53:24 +01:00
jesopo
90c730979a
Typo in modules/coins.py, 'nickanme' -> 'nickname'
2018-10-20 19:08:46 +01:00
jesopo
7a94c1efff
_take takes a server
param
2018-10-20 14:07:24 +01:00
jesopo
a47542bb5b
Add wallets to usage strings and add missing help in modules/coins.py
2018-10-20 14:00:28 +01:00
jesopo
e7bece4621
Use the correct arg_split index for parsing wallet in !givecoins
2018-10-20 13:55:47 +01:00
jesopo
44c67ad5d9
Typo in modules/channel_op, 'this' -> 'self'
2018-10-19 14:37:24 +01:00
jesopo
94a3461d39
Parse in/out wallet in the context of their relevant users
2018-10-19 13:03:21 +01:00
jesopo
b9d5db821e
We should be using _take, not _set_user_coins in !roulette
2018-10-19 12:12:27 +01:00
jesopo
ae07ea9da1
Actually by-default give people the default wallet
2018-10-19 11:50:11 +01:00
jesopo
093ff298ec
Use genexprs for sum() throughout modules/coins.py
2018-10-19 11:48:21 +01:00
jesopo
a5c9568d23
send() should check all user coins when checking for redeem-amount
2018-10-19 11:47:34 +01:00
jesopo
71da117060
_default_wallets takes a user
param
2018-10-19 11:44:59 +01:00
jesopo
b930f3c0cf
Dangerous typo in modules/coins.py - 'wallet' -> 'wallets'
2018-10-19 11:38:23 +01:00
jesopo
303640844d
Typo in modules/coins.py, 'DEFAUT' -> 'DEFAULT'
2018-10-19 11:35:25 +01:00
jesopo
ba1079d661
Protect against unknown wallets, show "new total" of output wallet when a coin
...
flip is won
2018-10-19 11:34:18 +01:00
jesopo
ab4f65f8de
Correctly pass wallet through in _give/_take/_move
2018-10-19 11:24:44 +01:00
jesopo
3e65983fbc
_user_has_wallet takes a user
param!
2018-10-19 11:21:37 +01:00
jesopo
472c4fb1f3
Typo in modules/coins.py, "len(list > 2)" -> "len(list) > 2"
2018-10-19 11:15:41 +01:00
jesopo
74330f5dee
Add another missing ")" in modules/coins.py
2018-10-19 11:00:57 +01:00
jesopo
43bf2b9935
Add missing ")" in modules/coins.py
2018-10-19 11:00:02 +01:00
jesopo
8fae2394cb
Allow users to add/remove wallets and specify which wallets to use with
...
commands that effect coins!
2018-10-19 10:58:36 +01:00
jesopo
87fc3cda55
Catch exceptions in modules/title.py
2018-10-19 10:31:45 +01:00
jesopo
fc36e5bbeb
Typo in modules/coins.py, 'user' -> 'event["user"]'
2018-10-18 15:26:28 +01:00
jesopo
f5ac44f1c6
_user_has_wallet takes a user
arg
2018-10-18 15:25:42 +01:00
jesopo
d2557cbc4f
Show the coins a user has in a specified wallet when a wallet is specified to
...
!wallet
2018-10-18 15:24:33 +01:00
jesopo
79c4a357d7
Typo in modules/coins.py, 'commands' -> 'command'
2018-10-18 15:20:05 +01:00
jesopo
07903c15ff
put "default" wallet in to a const, pass wallet arg through function calls, add
...
!wallet
2018-10-18 15:18:16 +01:00
jesopo
79837fe6a4
Remove debug print in modules/coins.py
2018-10-18 14:31:51 +01:00
jesopo
3ab30ad6d8
Change interest rates to use wallets
2018-10-18 14:28:48 +01:00
jesopo
8388c6e05a
Remove now-unneeded code, change _total_coins to use _all_coins
2018-10-18 13:49:32 +01:00
jesopo
c3fb63e03c
Typo in modules/coins.py, 'wallet' -> 'user_coins'
2018-10-18 13:45:38 +01:00
jesopo
ebdbc75a7e
coins should be (nickname, coins) not just coins
2018-10-18 13:43:26 +01:00
jesopo
7f8acf58c7
Typo in modules/coins.py, "coin_settings" -> "coins"
2018-10-18 13:40:36 +01:00
jesopo
1300310669
Use "wallets" for !richest, not "coins"
2018-10-18 13:38:54 +01:00
jesopo
b799f543a9
Internally use "wallets" to track users coins
2018-10-18 13:19:16 +01:00
jesopo
bd52297885
"," -> ", " in modules/words.py
2018-10-18 12:54:37 +01:00
jesopo
226d835374
Add !trackedwords in modules/words.py
2018-10-18 12:53:27 +01:00
jesopo
c1e5fd9a52
Coin amount is the second arg to !givecoins
2018-10-17 19:39:43 +01:00
jesopo
dd93a84f80
Put .strip("\n") call in the right place in modules/eval_python.py
2018-10-17 17:31:59 +01:00
jesopo
69f9aab4b9
Refer to out["out"]
, not just out
, to get the output from eval
2018-10-17 15:11:05 +01:00
jesopo
10d403d24a
Import json in modules/eval_python.py
2018-10-17 15:09:59 +01:00
jesopo
cfb9fa1c2e
import json in EVAL_TEMPLATE and json parse response from eval api
2018-10-17 15:08:48 +01:00
jesopo
ecb2b1331a
'import StringIO' -> 'import io' in modules/eval_python.py
2018-10-17 15:06:54 +01:00
jesopo
f08624ddbd
Escape \n in EVAL_TEMPLATE in modules/eval_python.py
2018-10-17 15:04:38 +01:00
jesopo
baa039e86d
Add missing ":"s in EVAL_TEMPLATE in modules/eval_python.py
2018-10-17 15:03:41 +01:00
jesopo
3d34896beb
Better handling of eval errors in modules/eval_python.py
2018-10-17 15:02:04 +01:00
jesopo
11944e348b
Remove additional ")"s in modules/eval_python.py
2018-10-17 14:32:01 +01:00
jesopo
34c13c7916
html.unescape output in modules/eval_python.py
2018-10-17 14:30:59 +01:00
jesopo
2e54284fed
Re-add new_coins
variable in modules/coins.py.lottery, used for telling a user
...
what their balance is after winning the lottery
2018-10-17 14:18:14 +01:00
jesopo
c22d5a348f
We should be changing bet_amounts
instead of parsing a bet amount and doing
...
nothing with it :l
2018-10-17 08:40:23 +01:00
jesopo
95e98563d5
Typo on modules/set.py; 'events.call' -> 'events.on'
2018-10-16 23:13:19 +01:00
jesopo
b467220400
Typo in modules/coins.py; 'utils._parse_coins' -> 'self._parse_coins'
2018-10-16 17:17:10 +01:00
jesopo
547c57c8b8
str(utils.EventError) should be written to stderr, not stdout
2018-10-16 15:15:20 +01:00
jesopo
d07f9422f7
all_coins is a dictionary, thus needs .items() to turn it in to nickname, coins
2018-10-16 15:10:21 +01:00
jesopo
773d11f6cb
Change all instances of stdout.write+return to raise utils.EventError
in
...
modules
2018-10-16 15:09:58 +01:00
jesopo
42a1cda92c
'EventManager.EventError' -> 'utils.EventError' in modules/commands.py
2018-10-16 14:49:01 +01:00
jesopo
ba3cd00c78
Add utils.EventError, utilise it for stderr in commands.py/coins.py
2018-10-16 14:47:01 +01:00
jesopo
7a54076de1
Typo in modules/coins.py.send(), 'target' -> 'target_user'
2018-10-16 14:46:08 +01:00
jesopo
0c7c48d752
Move redeem-amount/redeem-delay logic to their own functions in modules/coins.py
2018-10-16 14:06:38 +01:00
jesopo
5d6a7a60eb
Move logic to get all coins to it's own function in modules/coins.py
2018-10-16 13:58:02 +01:00
jesopo
ff7ac9fe89
Add missing help strings to commands in modules/coins.py
2018-10-16 13:53:32 +01:00
jesopo
7411c493f9
Move some more str(coins) calls to _coin_str(coins) in modules/coins.py
2018-10-16 13:46:25 +01:00
jesopo
1eab3178b3
Remove unneeded complexity in modules/coins.py.reset_coins
2018-10-16 13:43:45 +01:00
jesopo
7eb65ac1da
modules/coins.py._take should have a server
param
2018-10-16 13:41:02 +01:00
jesopo
5fc57ca143
Move logic for "take from user, give to pool" (and visa-versa) it's own
...
function, put user-to-user sending it's own function too
2018-10-16 13:39:45 +01:00
jesopo
955716c482
Remove more code duplication in modules/coins.py; move parsing amounts of coins
...
in to it's own function
2018-10-16 13:26:29 +01:00
jesopo
8aafa219ec
Remove a large amount of code duplication in modules/coins.py
2018-10-16 13:05:55 +01:00
jesopo
743b3bc754
event["args"] is an array already, args_split does not exist. Also send raw
...
events from src/IRCServer.py as call_unsafe to make errors like that more
apparent.
2018-10-15 14:29:16 +01:00
jesopo
131ae4b40d
Correctly check if someone's logged in to an account with extended-join
2018-10-15 14:16:11 +01:00
jesopo
be95fb8a6d
event["server"]
-> server
in modules/coins.py
2018-10-14 19:43:46 +01:00
jesopo
54ba3c888c
Catch ValueError from utils.parse_number, to allow other code to deal with
...
complaining about invalid numbers
2018-10-14 15:27:49 +01:00
jesopo
0ed0b235e9
Work directly from users in modules/coins.py.interest(), so as to not give
...
double-interest to two "users" online at the same time sharing the same identity
2018-10-14 14:30:19 +01:00
jesopo
a43d1cbb91
Add !lotterywinner in modules/coins.py, to show who last won the lottery
2018-10-14 13:51:32 +01:00
jesopo
104e1ab185
Actually return in modules/coins.py._total_coins
2018-10-14 08:38:58 +01:00
jesopo
403227b6df
Check automode when BitBot joins a channel
2018-10-13 22:21:51 +01:00
jesopo
f40db7c9d2
Add missing ) in modules/coins.py
2018-10-13 22:20:40 +01:00
jesopo
c6f8754716
Move functionality of finding total in-circulation coins out to it's own
...
function
2018-10-13 16:57:18 +01:00
jesopo
b2f948a73b
Add !totalcoins in modules/coins.py, to check what the total coins in
...
circulation is
2018-10-13 16:47:46 +01:00
jesopo
381b00f2cd
Only get list of github-hook channels once
2018-10-13 09:16:22 +01:00
jesopo
912c693fcd
!lotterybuy should require authentication because it uses coins
2018-10-13 01:16:18 +01:00
jesopo
bb531a6104
'redude' -> 'reduce' (my redudes), import random
because i forgot to, don't
...
try to do lottery for networks that have no lottery tickets purchased
2018-10-13 01:14:07 +01:00
jesopo
00e5890a92
Fixed incorrect comment about what counts as high/low for roulette in
...
modules/coins.py
2018-10-13 00:44:04 +01:00
jesopo
95b398c422
Give coins lost to the house in roulette to the Bank
2018-10-13 00:32:27 +01:00
jesopo
4fc0ee09b6
Typo in modules/coins.py, 'redcude' -> 'reduce'
2018-10-12 20:20:47 +01:00
jesopo
59bc75988b
Default !lotterybuy to 1 ticket
2018-10-12 20:20:32 +01:00
jesopo
c5b07f520e
Add !nextlottery to modules/coins.py
2018-10-12 18:33:34 +01:00
jesopo
ed03279406
Correct the logic used to find the time until the next lottery
2018-10-12 18:31:28 +01:00
jesopo
819f4e0680
Pass context-wrapped timers to each module, add ModuleManager.BaseModule.on_load
2018-10-12 18:07:23 +01:00
jesopo
278ab7d76f
Use UTC in modules/coins.py
2018-10-12 17:53:57 +01:00
jesopo
d4b46360d4
Implement 4-times-daily lottery in module/coins.py and address all stderrs to
...
the relevent user
2018-10-12 17:40:37 +01:00
jesopo
dda60ae417
_give_from_pool/_take_from_pool take a server
argument
2018-10-12 16:27:59 +01:00
jesopo
bab555207c
Show cents in !bank balance in modules/coins.py
2018-10-12 16:08:22 +01:00
jesopo
54ad29cc3a
Introduce a finite coin system in modules/coins.py
2018-10-12 15:55:32 +01:00
jesopo
8b03ecef21
Change modules/in.py to use bot.get_server
2018-10-12 14:04:14 +01:00
jesopo
a15a2e3444
modules/coins.py.send should be checking user_coins before the send amount is
...
taken away, not after
2018-10-12 13:53:15 +01:00
jesopo
8eb5c11979
' -> " in modules/eval_python.py
2018-10-12 13:23:54 +01:00
jesopo
c66b376e7f
Use compile+eval to support statements and expressions
2018-10-12 13:18:06 +01:00
jesopo
4700402db4
Add a \n between potential prints in eval() and printing the return from eval so
...
that bitbot will only show one of them
2018-10-12 12:46:05 +01:00
jesopo
b884b0e170
Support py2 and py3 in eval_python
2018-10-12 12:39:01 +01:00
jesopo
b2dd75d68f
Use a more reliable API for evaling python
2018-10-12 11:56:13 +01:00
jesopo
f096bddff4
Support unit-based bets (1k/1m/1b) in modules/coins.py
2018-10-12 11:19:41 +01:00
jesopo
e96c983dca
Check a channel's automode when automode is turned on in modules/auto_mode.py
2018-10-12 10:57:47 +01:00
jesopo
787053b605
Fire an event when a user/channel/server/bot setting is set in modules/set.py
2018-10-12 10:57:11 +01:00
jesopo
6e605207e6
Add !todomove in modules/todo.py
2018-10-12 10:49:38 +01:00
jesopo
382728e83e
Add ` and * to characters stripped from start/end or words in modules/words.py
2018-10-12 08:38:29 +01:00
jesopo
3d2acc2f61
Don't calculate user_coins(+/-)coin_bet
twice
2018-10-11 14:13:37 +01:00
jesopo
a9202a6abf
Add !py as an alias of !python in modules/eval_python.py
2018-10-11 13:32:28 +01:00
jesopo
df150635df
Correct the way !givepermission checks if a user is identified
2018-10-11 13:16:55 +01:00
jesopo
2c815f4bbc
Strip specific characters from the front of words too (and add more characters
...
to strip from the end) in modules/words.py
2018-10-11 13:04:54 +01:00
jesopo
0e2140b99f
Also strip "." from the end of words in modules/words.py
2018-10-11 12:56:18 +01:00
jesopo
98cdfa6419
Strip common characters that mark the end of a word (":;,!?~") from the end of
...
words in modules/words.py
2018-10-11 12:55:19 +01:00
jesopo
1c2504ac98
Add modules/rot13.py
2018-10-11 12:44:22 +01:00
jesopo
23b7223fae
Add !syncmodes in modules/auto_mode.py, fire internal.identified in
...
modules/permissions.py and catch it in modules/auto_mode.py to give users modes
when they identify using the internal identity mechanism
2018-10-11 11:20:53 +01:00
jesopo
41278cba81
Remove one-too-many indent in modules/coins.py
2018-10-11 10:35:41 +01:00
panicbit
c1495e9c1f
Fix column obsession
2018-10-11 01:26:16 +02:00
panicbit
7fbd614909
Show new coin total after flipping a coin
2018-10-11 01:18:28 +02:00
jesopo
1e25990ce7
randbelow takes one argument
2018-10-10 18:12:54 +01:00
jesopo
796c3832b6
We're supposed to support passwords with spaces!
2018-10-10 14:27:07 +01:00
jesopo
68f5626189
Change utils.http to use requests
2018-10-10 13:41:58 +01:00
jesopo
0b44788ac5
Support coin bets without a whole number (e.g. '0.1' can be '.1')
2018-10-10 12:10:53 +01:00
jesopo
11d1e5c0e0
Only .strip '\n' from output in modules/eval_lua.py
2018-10-10 12:03:09 +01:00
jesopo
bcd123fc4f
Use a better RNG in modules/coins.py (secrets.choice/secrets/randbelow)
2018-10-10 12:02:41 +01:00
jesopo
376825ea96
Mark command hooks that are aliases ('g' vs 'google')
2018-10-10 10:42:41 +01:00
jesopo
8842979205
Add "GTIN" to modules/upc.py error message, to better denote that we support
...
UPC.
2018-10-09 22:15:40 +01:00
jesopo
88e523c3de
Add modules/eval_lua.py
2018-10-09 22:15:27 +01:00
jesopo
fa336d6023
.kill() a process when it times out
2018-10-08 23:35:37 +01:00
jesopo
3016916087
Typo on modules/google.py, 'html' -> 'http'
2018-10-08 23:34:22 +01:00
jesopo
639b21f145
Make git commit "add/mod/del" more concise
2018-10-08 15:09:28 +01:00
jesopo
6b42494b92
.strip("\n") from !rust API call return
2018-10-08 14:00:33 +01:00
jesopo
52405cbd9d
Prefix !rust out/err with the requesting user's nickname
2018-10-08 12:55:10 +01:00
jesopo
de2a390d92
!eval -> !python in modules/eval_python.py
2018-10-08 12:51:04 +01:00
jesopo
19ffcacd4d
We don't need to use \" inside a """ """
2018-10-08 12:49:36 +01:00
jesopo
b462ac265e
eval.py -> eval_python.py, rust_eval.py -> eval_rust.py
2018-10-08 12:47:48 +01:00
jesopo
0b975b72de
Add !rust in modules/rust_eval.py
2018-10-08 12:43:47 +01:00
jesopo
fdccba9bf0
Change modules/signals.py to use bot.trigger(), add a !serverset @utils.export
...
for quit-quote
2018-10-07 11:28:51 +01:00
jesopo
af39136f83
Pass $HOME and $PATH through to scripts in modules/scripts.py
2018-10-07 11:24:00 +01:00
jesopo
02c3a5c336
Also capture stderr from scripts in modules/scripts.py
2018-10-07 08:22:46 +01:00
jesopo
dc37eb4f2f
I always forget about scopes in for loops
2018-10-07 08:10:52 +01:00
jesopo
fab3caa7be
do send.stdout event call in bot.trigger func param
2018-10-07 08:03:58 +01:00
Evelyn
9c15431925
Life's but a walking shadow, a poor player that struts and frets his hour upon the stage, and then is heard no more. It is a tale told by an idiot, full of sound and fury, signifying nothing
2018-10-06 22:30:26 +01:00
jesopo
69eda4bf1b
Allow user/channel/server/bot settings to be "hidden" from settings lists in
...
modules/set.py
2018-10-06 17:16:17 +01:00
jesopo
0cf7deed24
Slightly change format of commit messages in modules/github.py
2018-10-06 16:44:39 +01:00
jesopo
930a4bcbc2
Correctly scope 'filename' in modules/script.py._load_scripts
2018-10-06 16:18:59 +01:00
jesopo
79aff93b5d
Add a ControlSocket client to IRCBot.py, use it to trigger the epoll loop when a
...
github webhook has been caught!
2018-10-06 15:45:56 +01:00
jesopo
0a609ca695
Strip/replace \n from git commit messages in modules/github.py
2018-10-06 15:42:57 +01:00
jesopo
1fa66eebc6
Attempt to register servers for read/write when sending github hook notices
2018-10-06 10:02:02 +01:00
jesopo
df94020ef5
Add database.find_by_setting, send github commits to interested channels
2018-10-06 09:54:21 +01:00
jesopo
4296d1ee8e
raw.* events should be call_unsafe
2018-10-06 09:30:40 +01:00
jesopo
908edeb1e1
Typo in modules/github.py ('command' -> 'commit') and declare event_response
...
outside of try/except in modules/rest_api.py
2018-10-06 09:24:43 +01:00
jesopo
c3ace4be2e
Return 500 when an exception is thrown, never try to .encode None
2018-10-06 09:23:50 +01:00
jesopo
b0c27eff0b
Typo, add missing "
2018-10-05 23:32:20 +01:00
jesopo
d817ec9832
Add the basics of a github webhook in modules/github.py
2018-10-05 23:29:59 +01:00
jesopo
ff00ec1226
Require modules/rest_api.py has tls cert/key
2018-10-05 23:16:34 +01:00
jesopo
b3f8933f3f
POST shouldn't use body as 'params'
2018-10-05 23:14:32 +01:00
jesopo
95e7b9ea77
Support POST through modules/rest_api.py
2018-10-05 22:49:06 +01:00
jesopo
bc3c9b742e
Add api.server endpoint for individual server information
2018-10-05 09:51:17 +01:00
jesopo
808694c113
Return more info for api.servers and api.channels
2018-10-05 09:46:03 +01:00
jesopo
187220c25e
Remove prints
2018-10-05 09:45:49 +01:00
jesopo
e5f475cdeb
Allow API endpoints to not request authentication
2018-10-04 17:59:24 +01:00
jesopo
f31fdc48b3
Add api.modules in modules/stats.py
2018-10-04 17:37:47 +01:00
jesopo
52b7beb407
Provide more information for api.channels
2018-10-04 17:37:34 +01:00
jesopo
d7f4050ae8
Strip empty /path/arguments in modulse/rest_api.py
2018-10-04 17:37:03 +01:00
jesopo
f8170d8751
Use URL path for args, not get params
2018-10-04 17:21:40 +01:00
jesopo
b341320e37
Add api.servers endpoint
2018-10-04 17:18:40 +01:00
jesopo
7fc0359e3d
Make sure bot.lock is released in do_GET
2018-10-04 17:18:24 +01:00
jesopo
fdddb33f32
Added api.channels handler
2018-10-04 17:10:15 +01:00
jesopo
a220ff8485
Timeout REST API requests after 10 seconds
2018-10-04 17:10:05 +01:00
jesopo
57b72a94c5
Implement !botset/!botget in modules/set.py
2018-10-04 17:09:52 +01:00
jesopo
a533228112
Implement api keys in modules/rest_api.py
2018-10-04 17:09:35 +01:00
jesopo
82b40cc8b2
Add basics of (by-default disabled) REST API
2018-10-04 16:01:13 +01:00
jesopo
1c20eab9d6
send.stdout/send.stderr need a server kwarg
2018-10-04 14:44:33 +01:00
Evelyn
6a0dfdc663
NR: Slightly shorten service output
2018-10-04 14:13:13 +01:00
jesopo
6b122523c0
Improve(?) IPv6 regex
2018-10-04 13:19:59 +01:00
jesopo
26b653555b
Look back through scrollback to find ipv4/ipv6 addresses to get rDNS for
2018-10-04 12:15:15 +01:00
jesopo
18b227cbc4
Update modules/channel_op.py to use docstring prefix denotation
2018-10-04 11:05:43 +01:00
jesopo
b778ad2902
Support denoting command response [prefix] in docstring
2018-10-04 11:04:24 +01:00
jesopo
ded6ff03ce
Also catch gaierror in !rdns, print e.strerror instead of str(e)
2018-10-04 10:29:22 +01:00
jesopo
078891127d
Combile modules/dns.py and modules/geoip.py in to modules/ip_addresses.py, add
...
!rdns command
2018-10-04 10:18:44 +01:00
jesopo
d89c984d95
'ModuleWarning' -> 'ModuleManager.ModuleWarning' in modules/modules.py
2018-10-04 10:18:17 +01:00
jesopo
75f25db4cd
Move 'top 10' logic to utils, add !wordiest to modules/words.py
2018-10-04 05:33:15 +01:00
jesopo
17caaa08dd
Actually use the sorted mode list in print_activity
2018-10-04 04:46:32 +01:00
jesopo
75f8f4d955
Fix order of user status symbols in modules/print_activity.py
2018-10-03 17:11:01 +01:00
jesopo
09b6f52d8e
Fix showing usage when a user doesn't provide enough args to a command
2018-10-03 17:01:26 +01:00
jesopo
02e76444d1
Add 'remove_empty' kwarg for commands, to strip out empty space
2018-10-03 17:01:10 +01:00
jesopo
04ab018048
Correctly get BitBot's own modes in modules/print_activity.py
2018-10-03 16:47:52 +01:00
jesopo
84ebe5351b
Replace ' ' with '+' in modules/define.py's URL-getting
2018-10-03 16:45:19 +01:00
jesopo
ce2231900d
Print user status symbols in modules/print_activity.py
2018-10-03 16:44:44 +01:00
jesopo
98207be7b1
'mode_prefixes' -> prefix_modes and prefix_symbols
2018-10-03 16:44:00 +01:00
jesopo
27c191a668
Remove unneeded \n
2018-10-03 16:00:07 +01:00
jesopo
cf397c395d
Update old usage/help method
2018-10-03 15:59:49 +01:00
jesopo
89951aace5
Add !connect in modules/admin.py
2018-10-03 15:59:36 +01:00
jesopo
69d58eede2
Move src/Utils.py in to src/utils/, splitting functionality out in to modules of
...
related functionality
2018-10-03 13:22:37 +01:00
jesopo
489d508997
Fix BATCH parsing
2018-10-03 11:32:20 +01:00
jesopo
2b349105aa
Move parsing IRC lines to src/Utils.py, added base support for parsing outgoing
...
messages
2018-10-03 11:31:51 +01:00
Evelyn
92477e0fba
NR: Fix message colouring
2018-10-03 07:19:59 +01:00
jesopo
9118af5e9c
Support changing command responses from PRIVMSG to NOTICE
2018-10-02 21:40:34 +01:00
jesopo
22740e2faa
Re-add lost "!" prefix on stderr prefix
2018-10-02 17:48:07 +01:00
jesopo
e27c0e0a0c
Simplify modules/line_handler.handle
2018-10-02 17:47:45 +01:00
jesopo
8f05f66a03
.strip() target name in !karma
2018-10-02 15:14:42 +01:00
jesopo
a9b0dd331b
Correctly set nickname-only karma
2018-10-02 15:14:34 +01:00
jesopo
c7e4ae6e12
use Utils.irc_lower, not .lower()
2018-10-02 15:14:06 +01:00
jesopo
150788c6c6
Add !leave to modules/channel_op.py
2018-10-02 14:55:12 +01:00
jesopo
16474dacef
Don't complain when modules/karma.py can't find a user when it's in
...
karma-nickname-only mode
2018-10-02 14:35:35 +01:00
jesopo
67c22416cc
Use PRIORITY_MONITOR for keeping count of words (to avoid seeing commands)
2018-10-02 14:29:51 +01:00
jesopo
64733eb37f
Implement karma-nickname-only, to only allow karma for users in the current
...
channel
2018-10-02 14:29:32 +01:00
jesopo
a7563c9653
Pass msgid in send_stdout/send_stdin in modules/commands.py
2018-10-02 14:22:42 +01:00
jesopo
a76f206551
It's 'draft/msgid' not just 'msgid', also actually store 'msgid' in self._msgid
2018-10-01 17:52:04 +01:00
jesopo
26bfd61487
The correct msgid reply tag (at the moment) is '+draft/reply'
2018-10-01 17:28:45 +01:00
jesopo
976b6ae335
Better support for msgtags with PRIVMSGs; put functionality in to
...
modules/commands.py to reply to specific messages by use of msgids
2018-10-01 17:26:31 +01:00
jesopo
e9416034df
Typo in modules.commands.py, 'unsafe_call' -> 'call_unsafe'
2018-10-01 16:32:24 +01:00
jesopo
ee96b3310b
Some networks send NICK as 'nick!user@host NICK newnick` instead of
...
'nick!user@host NICK :newnick' (which is RFC compliant but BitBot didn't support
it)
2018-10-01 16:13:08 +01:00
jesopo
7eb31820d7
Add call_unsafe functions to EventManager.EventHook, to not swallow errors on
...
specific function calls (e.g. preprocess.command)
2018-10-01 16:04:06 +01:00
jesopo
59243f492f
Implement src/IRCObject.py to convert specific objects in to strings when
...
passing them to modules/scripts.py scripts
2018-10-01 13:48:55 +01:00
jesopo
120acf54ec
Add 'trace' logging level for src/Database.py and src/EventManager.py very
...
verbose debugging
2018-10-01 13:48:22 +01:00
jesopo
300eadf9b6
Change modules/line_handler.py to use @Utils.hook
2018-10-01 13:47:45 +01:00
jesopo
31c19aec69
Added setpassword command to modules/permissions.py
2018-09-30 22:11:37 +01:00
jesopo
1cbca6fb88
Update a reference from buffer
to target.buffer
in modules/commands.py
2018-09-30 20:53:58 +01:00
jesopo
a879125883
Typo in modules/check_mode.py; 'required_mode' -> 'require_mode'
2018-09-30 20:53:36 +01:00
jesopo
43740d40f4
Add modules/strip_color.py
2018-09-30 20:12:11 +01:00
jesopo
c87728a87d
Move src/IRCLineHandler.py to modules/line_handler.py
2018-09-30 19:43:20 +01:00
jesopo
10ef985a8a
Switch to using docstring for usage, permission and require_mode
2018-09-30 17:29:09 +01:00
jesopo
16dc2c39a9
Refactor modules/channel_op.py and add !tempban/!tempkickban
2018-09-30 13:28:26 +01:00
jesopo
30641ce312
We don't need to explicitly pass "buffer" through on command events
2018-09-30 11:43:34 +01:00
jesopo
7ab8948101
Fix piece of modules/define.py._get_definition( that was accepting a word or an
...
event.
2018-09-30 10:27:50 +01:00
jesopo
aa0c9ec9f1
Update modules/signals.py to use the new Config "system"
2018-09-29 20:27:20 +01:00
jesopo
bcb67db3fd
Add !reloadscripts to modules/scripts.py
2018-09-29 15:05:50 +01:00
jesopo
47ec11bbef
Add src/Cache.py, use it in modules/coins.py
2018-09-29 12:53:39 +01:00
jesopo
c5a7978c9b
Make 'account' arg for identify command optional
2018-09-29 10:51:16 +01:00
jesopo
3dbd997a90
Better .strip()/.split() logic for !help
2018-09-29 10:50:25 +01:00
jesopo
c12e8220ac
Strip trailing newlines from scripts.py returns
2018-09-29 09:46:47 +01:00
jesopo
1721e40c61
Add scripts.py, to support basic modules in languages other than python
2018-09-29 09:45:08 +01:00
jesopo
746155fd57
Support command hooks not coming from a class instance
2018-09-29 09:44:13 +01:00
jesopo
7c7e5553d1
Update ModuleManager.load_module calls in modules.py
2018-09-29 09:23:57 +01:00
jesopo
a8bf3c9300
Remove cyclical references to IRCBot
2018-09-28 16:51:36 +01:00
jesopo
02a2b41246
Fix typo in database_backup.py, 'ocation' -> 'location'
2018-09-27 14:06:46 +01:00
jesopo
0fb947dc5a
'full_location' -> 'location' in database_backup.py
2018-09-27 13:16:27 +01:00
jesopo
8dc83e5aac
Put linebreak in a better place for @Utils.export in bot_channel.py
2018-09-27 12:10:54 +01:00
jesopo
b2bdd93f09
Change old-style event hook in coins.py
2018-09-27 12:08:26 +01:00
jesopo
6eb8b1ba6d
Move all exports to @Utils.export calls
2018-09-27 12:08:07 +01:00
jesopo
8b0314b190
Use ModuleManager.BaseModule in more modules
2018-09-27 11:46:10 +01:00
jesopo
f3d98d0e95
Implement @Utils.export, to denote an export on a module
2018-09-27 11:45:23 +01:00
jesopo
6274159ac6
Fix event typo in greeting.py ("recevied" -> "received")
2018-09-27 10:27:19 +01:00
jesopo
9a7b93928b
Didn't mean to commit this module yet.
2018-09-26 20:39:24 +01:00
jesopo
51a52e2b0e
Switch to using @Utils.hook and docstrings for event hooks
2018-09-26 18:27:17 +01:00
jesopo
4d41848b57
Also use docstrings to check if a command has help available, allow one-string
...
denotation of multiple event hooks
2018-09-26 18:26:29 +01:00
jesopo
ebc77fa501
Support using docstrings as command help
2018-09-26 15:58:16 +01:00
jesopo
8d946fb60b
Add !suggest, to get suggested searches from google
2018-09-26 14:36:33 +01:00
jesopo
c3e8e234eb
Typo, 'e' -> 'warning'
2018-09-25 11:02:31 +01:00
jesopo
894e95d37d
Fix typo that was causing database_backup.py to not work
2018-09-25 11:02:07 +01:00
jesopo
67edca067c
Be more verbose about reloading modules in modules.py
2018-09-24 16:15:44 +01:00
jesopo
bb641b0870
Move log and database files to their own folders
2018-09-24 15:26:31 +01:00
jesopo
ecb9d7cb3f
Move most code in root directory to src/
2018-09-24 15:13:27 +01:00
jesopo
da7e02ffc9
Remove empty spaces in coins.py
2018-09-24 13:25:09 +01:00
jesopo
fc643cc87a
last_called -> _last_called
2018-09-24 13:24:36 +01:00
jesopo
dd0ab3211e
Refactor define.py
2018-09-24 13:23:59 +01:00
jesopo
967ed65e00
Actually implement !reloadallmodules in modules.py
2018-09-24 13:18:15 +01:00
jesopo
b7f7c9342b
Better communicate issues with load/unload/reload of modules
2018-09-24 13:10:39 +01:00
dngfx
c3c3eba476
Fix permission bug
2018-09-23 11:09:46 +01:00
dngfx
36f0672f2b
Fix permission bug
2018-09-23 11:06:15 +01:00
dngfx
1d3f05a8fe
Add .reloadallmodules, and fix permissions.
2018-09-23 11:01:24 +01:00
dngfx
8b8c59ee21
Rename the functions to be more generic.
2018-09-23 10:23:12 +01:00
dngfx
a37dfe5301
Remove superfluous function.
2018-09-23 10:20:20 +01:00
dngfx
e8bdcf8f19
Remove intrusive styling.
2018-09-23 10:16:43 +01:00
dngfx
fdcf3e45c7
Add .randomword command, and change the api to use https
2018-09-23 09:52:53 +01:00
dngfx
0cb2c43ee3
Add setcoins command for admins, for people that abuse the coin game, or rewards and such.
2018-09-23 07:04:50 +01:00
dngfx
bb15f8b8e2
make last.fm say "is now playing", if they're currently playing.
2018-09-23 02:21:43 +01:00
dngfx
d335deed40
make last.fm say "is now playing", if they're currently playing.
2018-09-23 01:39:38 +01:00
dngfx
e5283ed2e2
Update last.fm to include a youtube link. Also change the module name to last.fm
2018-09-23 00:55:36 +01:00
dngfx
9220f84c27
clear channel.games properly.
2018-09-22 20:08:07 +01:00
dngfx
56afe77b52
Fix duck timing and stupid indenting.
2018-09-22 19:32:54 +01:00
dngfx
1a54c11df8
Fix ducks.py having a superfluous function
2018-09-22 19:28:57 +01:00
dngfx
febb6d66e3
font reset at the beginning of commands to stop wonkiness with highlighting and fix duck decoys.
2018-09-22 19:10:52 +01:00
dngfx
000ee14711
Make tweets say Twitter instead of tweets, and update ducks to add decoys and make minimum/unique a channel setting rather than hard setting.
2018-09-22 16:02:39 +01:00
jesopo
3c3583e30c
Disable sed by default
2018-09-21 11:55:17 +01:00
jesopo
a87196c608
Change Utils.color to take a string to wrap in color
2018-09-21 11:39:09 +01:00
jesopo
ecb8698fb7
Don't send ducks when they're disabled.
2018-09-19 14:28:59 +01:00
jesopo
a0bb738abc
Add eval.py
2018-09-19 14:14:51 +01:00
jesopo
287d031281
Add ModuleManager.BaseModule so modules don't *have* to implement __init__
2018-09-19 13:28:18 +01:00
jesopo
fcbb7c960c
Refactor everything to use delimited events
2018-09-19 13:25:12 +01:00
jesopo
b86ca6088f
Fix some styling in ducks.py
2018-09-19 13:23:18 +01:00
jesopo
b8aca72861
Support hooking functions in modules with @Utils.hook
2018-09-19 12:37:41 +01:00
jesopo
f3d8d35083
Send a FONT_RESET (\x0F) after stderr module names because a bug in weechat
...
pre-2.2 means that because red colors are displayed as red+bold, the second
FONT_COLOR (\x03) only resets the red coloring, not the bold, meaning the rest
of the line is bold.
2018-09-19 02:22:30 +01:00
jesopo
b3609db92c
Actually remove channels from channel_save when the bot leaves the channel
2018-09-19 01:41:53 +01:00
jesopo
702b6a4dd3
permissions._identified takes server, user and nickname
2018-09-19 01:19:04 +01:00
jesopo
2abb3c6787
Only allow the register command on networks that support internal identity
2018-09-19 00:45:14 +01:00
jesopo
e6f25e31db
User.id doesn't exist anymore; it's User.get_id()
2018-09-19 00:45:01 +01:00
jesopo
11e62bb945
Fix exception in commands.py any time anyone sends an empty or
...
whitespace-prefixed PRIVMSG
2018-09-19 00:44:04 +01:00
jesopo
f796fddee5
Typo in sasl.py; proceed with sasl regardless of mechanism when using CAP 3.1
2018-09-17 13:25:11 +01:00
jesopo
b07da8c8c0
Fix a copypaste fail that caused sasl.py to have two sasl_success functions
2018-09-17 13:10:22 +01:00
jesopo
007ffec762
Handle 904 (ERR_SASLFAIL) in sasl.py
2018-09-17 12:57:03 +01:00
jesopo
d522997992
Don't just listen for 'sasl=PLAIN' in IRCv3 CAP 3.2
2018-09-17 11:49:23 +01:00
jesopo
fad61c2664
Support EXTERNAL sasl authentication
2018-09-17 11:31:40 +01:00
jesopo
bb5ff8ee0d
Fix highlight checking in commands.py
2018-09-17 11:31:29 +01:00
jesopo
1eed727bc5
Add !enablemodule and !disablemodule to modules.py
2018-09-13 13:35:05 +01:00
jesopo
6db97c7df5
join.py -> bot_channel.py, make the bot channel (default #bitbot) configurable
2018-09-12 15:44:50 +01:00
jesopo
614f63bda3
Remove boot_time from stats.py, move it to start_time in IRCBot otherwise a
...
module reload of stats.py would reset !uptime
2018-09-11 18:24:34 +01:00
jesopo
ae78324c44
Typo, event["server"] -> server
2018-09-10 08:58:15 +01:00
dngfx
5d8ad6a37a
Replace bit.ly with is.gd. No API key, no beeping Bit. It's a win win!
2018-09-09 21:47:28 +01:00
dngfx
169d1705ac
There's nothing regular about these expressions.
2018-09-09 18:39:56 +01:00
jesopo
4eaf9e5aeb
Fix an incorrect call to event["stderr"] in karma.py
2018-09-09 17:34:44 +01:00
jesopo
59912776c1
Make commands be processed under received.message.* at PRIORITY_LOW, eat the
...
event when it's done, change karma.py to use PRIORITY_MONITOR
2018-09-09 17:09:04 +01:00
jesopo
2a37e10533
Change default priority to "medium", add priority lower than "low" ("monitor")
2018-09-09 17:08:38 +01:00
jesopo
67c89f0580
Change bitly.py to use delimited events
2018-09-09 16:07:39 +01:00
jesopo
7f647a40c5
Tidy up indentation in tweets.py
2018-09-09 16:07:18 +01:00
dngfx
a9e49fd36b
Fix up tweets.py
2018-09-09 15:50:05 +01:00
dngfx
23fbc2cb95
Make URL shortening generic in tweets.py
2018-09-09 15:37:44 +01:00
dngfx
931c941f42
Fix spacing.
2018-09-09 15:35:32 +01:00
jesopo
8959b6cfd2
Utilise !serverset in more modules
2018-09-09 13:34:25 +01:00
jesopo
2fa7d9b8a9
Add nickserv-password and sasl to !serverset
2018-09-09 13:34:25 +01:00
jesopo
c3ebb32111
Don't add a qualifier for server settings
2018-09-09 13:34:25 +01:00
jesopo
87ff49c4d2
Add !serverset and !serverget
2018-09-09 13:34:25 +01:00
jesopo
561dcdf799
Switch set.py to use delimited events
2018-09-09 13:34:25 +01:00
dngfx
a5ff20fca3
i dun fixed it!
2018-09-09 13:34:32 +01:00
dngfx
2d4dbf922f
h8 everything right now
2018-09-09 13:20:59 +01:00
dngfx
7aecd2b4ca
WOOP WOOP THAT'S THE SOUND OF LINKS FOR TWEETS
2018-09-09 13:12:06 +01:00
jesopo
1af290b954
Better indentation in commands.py
2018-09-09 09:09:22 +01:00
dngfx
2211cb0542
Fix a few niggles
2018-09-09 08:59:36 +01:00
dngfx
20339d0a64
Grammar fix
2018-09-09 07:38:14 +01:00
dngfx
c626a9d047
A shakespear insult generator, with optional target. Because why not?
2018-09-09 06:34:50 +01:00
dngfx
c8bbdddc59
FONT_RESET should be FONT_COLOR, also more string wizardry in ducks.py!
2018-09-09 03:39:29 +01:00
dngfx
fb3fa55477
String formatting exists and it is a wonderful thing.
2018-09-09 03:07:21 +01:00
dongfix
11f7ebaa86
Add channel prefix to .usage (So it shows .8ball <question> instead of just 8ball <question>, based on the channel's prefix)
...
Updated ducks.py, more efficient code and style tweaks.
2018-09-09 01:19:00 +01:00
dngfx
69543c04db
Make google.py show the search term in the results.
2018-09-08 22:53:31 +01:00
jesopo
22ee129ca6
Clean up combining new.channel and __init__ channel bootstrapping
2018-09-08 22:51:56 +01:00
dngfx
3bdc43cf71
Bootstrap properly on module reload.
2018-09-08 21:58:32 +01:00
dngfx
558e2eb846
Trim garbage code.
2018-09-08 20:38:45 +01:00
dngfx
f17cce3c3d
More duck timing tweaks
2018-09-08 19:58:44 +01:00
dngfx
89bc48cf0c
Correct comparison
2018-09-08 19:32:10 +01:00
dngfx
83f2ec673c
Typo fix.
2018-09-08 19:23:35 +01:00
dngfx
6d31f5ef3c
Full metal duck.
2018-09-08 19:11:12 +01:00
dngfx
119ea1a4f6
Refactor ducks.py to make sense.
2018-09-08 19:10:09 +01:00
dngfx
a25139d828
Remove old ducks.py
2018-09-08 17:24:31 +01:00
dngfx
03b41c3d49
More 8ball answers.
2018-09-08 17:19:52 +01:00
dngfx
2efbf7ec7e
Remove debug code.
2018-09-08 17:18:06 +01:00
dngfx
7023cd45d9
Remove unused code.
2018-09-08 17:16:13 +01:00
dngfx
f0c966403b
Tweak duck timing.
2018-09-08 17:15:11 +01:00
dngfx
54c9616d4c
8ball answer updates and ducks.py fix.
2018-09-08 17:02:03 +01:00
dngfx
763333eea8
PEP8 Compliance.
2018-09-08 16:34:28 +01:00
dngfx
5643af1fe4
Rename ducks_old.py to stop it getting autoloaded.
2018-09-08 16:26:50 +01:00
dngfx
ac1eef729c
New and fresh ducks.py! And an 8ball.py adjustment...!
2018-09-08 16:15:43 +01:00
dngfx
82a20a209a
Set unique user properly.
2018-09-08 11:54:06 +01:00
dngfx
95712e5520
Ducks new progress
2018-09-08 11:51:43 +01:00
jesopo
e06fb1e3c7
Remove starttls.py, it's harder than I thought.
2018-09-07 20:22:27 +01:00
jesopo
a4f0d1bf28
Support IRCv3's tls/STARTTLS
2018-09-07 16:34:51 +01:00
jesopo
208a323d48
Listen for 903 for sasl success, not 900
2018-09-07 16:13:49 +01:00
jesopo
66e10ba11d
Only "finish" a sasl handshake when we get a 900
2018-09-07 16:04:37 +01:00
jesopo
7e3d7542b9
Support CAP 3.2
2018-09-07 15:51:41 +01:00
jesopo
9be8c1d90c
Set +o/+v on a user if they're in the channel at the time of !addop/!addvoice
2018-09-06 18:13:02 +01:00
jesopo
dee26c45be
addvoice/removevoice should use "v" not "o"
2018-09-06 18:10:12 +01:00
jesopo
c8309d96ea
Only do automode when a user is identified, also do automode on an IRCv3
...
ACCOUNT command
2018-09-06 18:06:29 +01:00
jesopo
25ef1965fd
Finally implement auto_mode.py!
2018-09-06 17:58:53 +01:00
jesopo
e76c3b3230
Don't strip out empty arguments on commands.py
2018-09-06 17:25:58 +01:00
jesopo
73bdaff977
Add !topic and !topicappend in channel_op.py
2018-09-06 17:25:38 +01:00
jesopo
a8dd9e059f
Add !ignore and !unignore in commands.py
2018-09-06 16:05:14 +01:00
jesopo
83c0022c4d
Support account-tag in permissions.py
2018-09-05 15:39:29 +01:00
jesopo
07c08ad428
Typo in channel_save; channes -> channels
2018-09-05 13:55:53 +01:00
jesopo
da5b2f5eb1
Merge branch 'master' of github.com:jesopo/bitbot
2018-09-05 13:52:10 +01:00
jesopo
35f07735af
Merge pull request #17 from dngfx/master
...
Update duck timer
2018-09-05 13:52:07 +01:00
jesopo
049590178e
Add !givecoins to coins.py
2018-09-05 13:51:42 +01:00
jesopo
a04a246b67
protect_registered doesn't exist anymore
2018-09-05 13:36:07 +01:00
jesopo
fa18d5ca4c
Get user to do get_id() on in coins.py
2018-09-05 13:32:21 +01:00
jesopo
12143af562
Add another control to prevent coin duplication if someone manages to send coins
...
to themselves
2018-09-05 12:58:30 +01:00
jesopo
f2aeaf7797
Don't use IRCUser.id ever, use IRCUser.get_id()
2018-09-05 12:58:12 +01:00
jesopo
6bd6f2492b
Support IRCv3's account-notify/extended-join along with WHOX to replace internal
...
register/identify
2018-09-05 11:58:10 +01:00
dngfx
5961ff1725
Update duck timer
2018-09-04 13:01:54 +01:00
jesopo
55be2a3586
twitter.py -> tweets.py
2018-09-04 11:30:00 +01:00
jesopo
be39669580
Fix a huge security issue: sign users out when they change nickname
2018-09-04 10:00:42 +01:00
jesopo
ad775239b2
Send message-tags through PRIVMSG, NOTICE and !commands
2018-09-03 21:49:22 +01:00
jesopo
b64e0078d3
Add !reconnect in admin.py
2018-09-03 18:21:13 +01:00
jesopo
d528656ba5
Add database_backup.py for rotated database backups
2018-09-03 18:20:53 +01:00
jesopo
6e257c6e1b
Only offer sasl when we have sasl authentication to send
2018-09-03 12:38:51 +01:00
jesopo
06a750edbd
Remove channel from autojoin when BitBot parts it
2018-09-03 12:22:06 +01:00
jesopo
9d95581c44
Support IRCv3's chghost and invite-notify
2018-09-03 11:47:11 +01:00
jesopo
6a627d9f36
Added !resetpassword in permissions.py
2018-09-03 11:30:54 +01:00
jesopo
29851d4305
Make CAP functionality more part of the framework and support message-tags and
...
multi-prefix
2018-09-03 11:14:52 +01:00
jesopo
61b2682c93
Add greeting.py
2018-09-03 08:29:58 +01:00
jesopo
ecc93183f5
Print mode changes in print_activity
2018-09-02 22:41:04 +01:00
jesopo
72e991f4a5
up min/max duck show time in ducks.py
2018-09-02 20:14:24 +01:00
jesopo
8c6ab17e57
give an Exports object (actually, ExportsContex object) to each module, to
...
facilitate things like !set and !channelset without using the events system
2018-09-02 19:54:45 +01:00
jesopo
14a9e4a6a4
Also optionally (attempt to) kick users that send malicious urls in
...
check_urls.py
2018-09-02 11:50:47 +01:00
jesopo
abc9d92c9d
Add check_urls.py, to opt-in check for malicious urls
2018-09-02 11:44:06 +01:00
jesopo
21abbc33c8
Update reloading config on USR1
2018-09-02 11:43:52 +01:00
jesopo
cc1b4e6fde
change wolframalpha.py to use the "short answer" api
2018-09-02 09:28:55 +01:00
dngfx
e305b17896
Fix iterations
2018-09-01 21:17:42 +01:00
dngfx
d6b0d4653c
Fix duck stats
2018-09-01 20:55:27 +01:00
dngfx
2db5d476a4
Uncomment duck stats
2018-09-01 20:54:18 +01:00
Dan
617fbe301c
Merge branch 'master' into master
2018-09-01 20:44:56 +01:00
dngfx
9eaa1cc6fc
Re-toast ducks.py!
2018-09-01 20:43:46 +01:00
dngfx
93a818ed97
Revert "Toast off ducks.py with .duckstats"
...
This reverts commit 3044b83
2018-09-01 20:40:26 +01:00
dngfx
3044b833fc
Toast off ducks.py with .duckstats
2018-09-01 20:34:10 +01:00
dngfx
8098e8c015
re-add self.events
2018-09-01 19:12:05 +01:00
jesopo
e9b5519e86
re-add self.events in ducks.py
2018-09-01 19:11:25 +01:00
jesopo
cbb6c928a1
Don't persist timer, use events.on("send.stdout")
2018-09-01 19:09:25 +01:00
jesopo
23f859beb2
Don't persist timer, use events.on("send.stdout")
2018-09-01 19:07:50 +01:00
dngfx
0869c17808
Massively optimise ducks.py and remove a bunch of cruft.
2018-09-01 18:58:57 +01:00
dngfx
a0a29eacd0
Convert to booleans and validation.
2018-09-01 18:45:01 +01:00
jesopo
ef645c338a
BitBot is single threaded!
2018-09-01 12:24:00 +01:00
dngfx
090531c0ae
Omg I can't spell.
2018-09-01 11:45:29 +01:00
Dan
ba065ad646
omg it's the future ( #15 )
...
* Add Database.UserChannelSettings.find_all_by_setting
* Turns out we didn't need find_all_by_setting
* Actually, we do need find_all_by_setting
* Table name typo
* Add Utils.bold and Utils.underline
* Added functionality to load, unload and reload modules from a command!
2018-09-01 11:40:57 +01:00
dngfx
7db9a8ea2b
Move lists out of scope
2018-09-01 11:40:08 +01:00
dngfx
80cbf2d66e
Add 8ball module
2018-09-01 11:04:51 +01:00
dngfx
0a96a79077
Cosmetic enhancement for ducks and dice.
2018-09-01 10:52:04 +01:00
dngfx
3f66940e77
Remove superfluous code from ducks.py and introduce dice.py (DND rolling function .roll 1d20)
2018-09-01 10:22:44 +01:00
dngfx
3d3cb9a598
Switch print() to log.info() for next-duck-wave information.
2018-09-01 09:09:02 +01:00
dngfx
e5d298af60
Fix this back to channel.send_message(), stdout just no.
2018-09-01 02:21:57 +01:00
dngfx
cc21f1d9a3
Set a timer for sending out ducks randomly, and change some messages to stdout.
2018-09-01 01:56:07 +01:00
dngfx
4a9d823d54
Adjust timing for production.
2018-08-31 18:31:46 +01:00
dngfx
06466187b6
Introduce .killers for ducks.py
2018-08-31 18:23:46 +01:00
dngfx
7e06e06ee0
THE OVERLORD DEMANDS I TRASH IT
2018-08-31 17:04:15 +01:00
dngfx
4b654ed12d
Change to stdout because i'm a pillock.
2018-08-31 17:02:46 +01:00
dngfx
95d1475f2c
.friends support! Yay, lets be friends.
2018-08-31 16:58:25 +01:00
dngfx
6e400a5470
Just duck things~
2018-08-31 16:06:11 +01:00
dngfx
bce8cef524
Migrate duck data to user_channel_settings.
2018-08-31 14:36:25 +01:00
dngfx
0f1e683cd3
Where on earth did this PHP relic come from?
2018-08-31 14:16:27 +01:00
dngfx
0bb3ae9273
Fix decoys stacking up and attempting to take over irc.
2018-08-31 14:10:20 +01:00
dngfx
309b119ec5
That commit was just a decoy.
2018-08-31 14:00:09 +01:00
dngfx
a6d2f4cd5b
Decoy Fiddling
2018-08-31 13:58:44 +01:00
jesopo
6f2da2c40f
Remove print in ducks.py
2018-08-31 13:44:39 +01:00
jesopo
b7cf524e98
Give modules event objects with "context"s, to facilitate purging all the event
...
hooks for a module
2018-08-31 13:44:39 +01:00
dngfx
90ce92dc39
Revert "Reformat"
...
This reverts commit abed9cf
2018-08-31 10:51:47 +01:00
dngfx
abed9cf4ea
Reformat
2018-08-31 10:50:37 +01:00
dngfx
391671185d
A start on .decoy for ducks.
2018-08-31 06:27:41 +01:00
dngfx
301d3cb45a
Revert the god awful database edits I made and make ducks.py convert to int. Might be an idea to make a make_int function?
2018-08-31 05:48:53 +01:00
dngfx
a635b1f0a0
Apparently i auto-reformatted the code. Either way I fixed ducks spawning endlessly.
2018-08-31 04:35:42 +01:00
dngfx
8d6f0fffa9
Make channel values being inserted into SQLite integers if they're numbers.
...
Update ducks.py, you can now .bef and .bang! Coming soon: .friends, .killers, and .ducks
Update google to use gb instead of us. We're British goddamnit.
2018-08-31 04:14:56 +01:00
dngfx
e272d50f49
Update strax generator with a bunch of new phrases and attacks.
2018-08-30 18:11:17 +01:00
jesopo
d37fc44343
use assure_call for trakt.py and lastfm.py
2018-08-30 18:07:50 +01:00
dngfx
377b7d39df
Update strax generator with a bunch of new phrases and attacks.
2018-08-30 16:57:45 +01:00
dongfix
b13c971507
Update strax generator to make more sense when exclaiming instead of questioning.
2018-08-30 16:17:15 +01:00
jesopo
dceeef8648
Add missing comma in strax.py
2018-08-30 16:15:24 +01:00
dongfix
f6f183c2bd
Fix strax.py to randomise other things and fix random choice 1,2
2018-08-30 16:03:54 +01:00
dongfix
fd94b939e0
Add strax.py .strax command.
2018-08-30 15:55:57 +01:00
jesopo
ebd3ab47c8
Add missing "," in channel_op.py
2018-08-30 11:15:57 +01:00
jesopo
2d4a1d42ce
Only get highlight-spam-threshold setting when there's more than one highlight
...
in a line
2018-08-30 11:14:19 +01:00
jesopo
49cc4d8d7b
Add help and usage for commands in channel_op.py
2018-08-30 11:13:26 +01:00
jesopo
ceb73f586c
Only show 2 biggest units in !seen
2018-08-29 15:52:04 +01:00
jesopo
669aa32c31
Report actual topic setter (use 333, not 332)
2018-08-29 15:17:06 +01:00
jesopo
3ec521538a
Print topics in print_activity.py
2018-08-29 14:57:40 +01:00
jesopo
76d7a8de36
Delete "permissions" setting when it's empty
2018-08-29 14:34:52 +01:00
jesopo
6ecae3b261
Add the ability to only require authentication if your nickname is registered
2018-08-28 18:16:19 +01:00
jesopo
b9d4e11b77
Add !givepermission and !removepermission to permissions.py
2018-08-28 16:53:21 +01:00