Commit graph

884 commits

Author SHA1 Message Date
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