jesopo
|
58363895f1
|
Change line parsing to put arbitrary-length args on the end of
`args` so we can get rid of `last`/`arbitrary` and add IRCArgs (with .get())
to help only getting an arg index if it exists
|
2018-11-04 15:37:06 +00:00 |
|
jesopo
|
6d742f6a74
|
Implement IRCv3's draft/rename
|
2018-11-04 14:48:55 +00:00 |
|
jesopo
|
9b2040e280
|
Show wallet balances in a human format (with ","s)
|
2018-11-02 13:09:09 +00:00 |
|
jesopo
|
44f3e241d2
|
Don't let users bet 0 coins
|
2018-11-02 13:07:46 +00:00 |
|
jesopo
|
2acf9bdd31
|
Show !coins in a human format (with ","s)
|
2018-11-02 12:47:00 +00:00 |
|
jesopo
|
24e4e2c5ad
|
Add a way to silently stop commands executing in modules/commands.py
(preprocess.command)
|
2018-11-02 11:13:43 +00:00 |
|
jesopo
|
4fcb80b834
|
serverset identity-mechanism should be in modules/permissions.py
|
2018-11-02 11:08:03 +00:00 |
|
jesopo
|
18d055bb9e
|
Check if a url is a gallery first, 'event' -> 'data' typo, actually return from
_prefix
|
2018-10-31 17:54:44 +00:00 |
|
jesopo
|
04e369a92d
|
Use gallery API endpoint for gallery urls
|
2018-10-31 17:44:21 +00:00 |
|
jesopo
|
ff1d4da362
|
Support galleries in modules/imgur.py
|
2018-10-31 17:41:12 +00:00 |
|
jesopo
|
60151dc1a0
|
Comma-delimit numbers in the !richest response
|
2018-10-31 16:46:40 +00:00 |
|
jesopo
|
8212fc51eb
|
imgur url hashids aren't always 7 characters
|
2018-10-31 16:29:24 +00:00 |
|
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 |
|