Commit graph

925 commits

Author SHA1 Message Date
jesopo
aaf0c8cf2a Reschedule STS expiration on disconnect 2018-11-05 14:12:21 +00:00
jesopo
3fa16fe678 Explicitly *remove* STS policy when we get a duration of 0 2018-11-05 13:26:11 +00:00
jesopo
5fa442c8a5 info does not exist in on_cap_new context in modules/sts.py 2018-11-05 13:25:51 +00:00
jesopo
061a4ede23 One-shot STS policies should still be cleared if a reconnect fails 2018-11-05 13:14:00 +00:00
jesopo
5981bfa04c Made STS policies one-shot when upgrading from plaintext to tls 2018-11-05 13:03:45 +00:00
jesopo
19864a7e13 duration does not exist in the context of _change_duration 2018-11-05 12:59:40 +00:00
jesopo
c3a2ffc48d Add support for IRCv3's STS 2018-11-05 12:39:02 +00:00
jesopo
7baab0f7d7 Update modules/scripts.py to use utils.parse.hashflags instead of
utils.get_hashflags
2018-11-05 12:15:54 +00:00
jesopo
9c233cd4dd Add src.utils.parse.keyvalue, mostly for IRCv3 CAP negotiation 2018-11-05 11:56:28 +00:00
jesopo
5963580cb8 Fix a crash in modules/line_handler.py; QUIT can have an empty reason! 2018-11-05 10:03:31 +00:00
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