Commit graph

1757 commits

Author SHA1 Message Date
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
40ffb6ce0e Typo in src/IRCServer.py, 'defau;t' -> 'default' 2018-10-14 14:31:30 +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
43d026cc9d Typo in src/Timers.py, 'conteext' -> 'context' 2018-10-13 09:16:53 +01:00
jesopo
381b00f2cd Only get list of github-hook channels once 2018-10-13 09:16:22 +01:00
jesopo
5e3399f73e Actually, don't give contexts to timers that aren't contextual. (e.g. pesistent
timers)
2018-10-13 09:10:26 +01:00
jesopo
33921a8912 Timers._add takes a "context" param 2018-10-13 09:09:51 +01:00
jesopo
64cc1bf16c a Timer object can have a context yet not be a contextual timer 2018-10-13 09:09:24 +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
561d686643 Correctly remove contextual timers from src/Timers.py 2018-10-13 01:13:14 +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
0a93e76333 Use Timers.get_timers() instead of Timers.timers 2018-10-12 18:15:22 +01:00
jesopo
e901f105dd Actually pass timers to src/ModuleManager.py 2018-10-12 18:13:48 +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
cb94fa9ae4 Add TimersContext, to be able to purge timers when modules are unloaded 2018-10-12 17:54:15 +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
d460375629 Use decimal.Decimal in utils.parse_number 2018-10-12 11:28:14 +01:00
jesopo
d427e29936 Actually pass format args to ValueErrors in utils.parse_number 2018-10-12 11:21:57 +01:00
jesopo
f096bddff4 Support unit-based bets (1k/1m/1b) in modules/coins.py 2018-10-12 11:19:41 +01:00
jesopo
a810d273d1 int(number) after we've checked .isdigit() in utils.parse_number 2018-10-12 11:19:04 +01:00
jesopo
9771fc9f7a Add utils.parse_number, to turn 1k/1m/1b in to 1_000/1_000_000/1_000_000_000 2018-10-12 11:16:39 +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