aboutsummaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorGravatar jesopo2018-10-16 13:58:02 +0100
committerGravatar jesopo2018-10-16 13:58:02 +0100
commit5d6a7a60eb2b2bb622e1f987c6439b7e69ee4765 (patch)
tree6fca946fee722b0ae53950d87a3625439ae786f0 /modules
parentAdd missing help strings to commands in modules/coins.py (diff)
signature
Move logic to get all coins to it's own function in modules/coins.py
Diffstat (limited to 'modules')
-rw-r--r--modules/coins.py19
1 files changed, 9 insertions, 10 deletions
diff --git a/modules/coins.py b/modules/coins.py
index 7570af03..738ecf15 100644
--- a/modules/coins.py
+++ b/modules/coins.py
@@ -69,6 +69,11 @@ class Module(ModuleManager.BaseModule):
def _reset_user_coins(self, user):
user.del_setting("coins")
+ def _all_coins(self, server):
+ coins = server.get_all_user_settings("coins", [])
+ coins = list(filter(lambda coin: decimal.Decimal(coin[1]), coins))
+ return dict([(coin[0], decimal.Decimal(coin[1])) for coin in coins])
+
def _give(self, server, user, amount):
user_coins = self._get_user_coins(user)
self._take_from_pool(server, amount)
@@ -177,13 +182,7 @@ class Module(ModuleManager.BaseModule):
"""
:help: Show the top 10 richest users
"""
- all_coins = event["server"].get_all_user_settings("coins", [])
- all_coins = list(filter(lambda coin: decimal.Decimal(coin[1]),
- all_coins))
- items = [(coin[0], decimal.Decimal(coin[1])) for coin in all_coins]
- all_coins = dict(items)
-
- top_10 = utils.top_10(all_coins,
+ top_10 = utils.top_10(self._all_coins(event["server"]),
convert_key=lambda nickname: utils.prevent_highlight(
event["server"].get_user(nickname).nickname),
value_format=lambda value: self._coin_str(value))
@@ -459,14 +458,14 @@ class Module(ModuleManager.BaseModule):
@utils.hook("timer.coin-interest")
def interest(self, event):
for server in self.bot.servers.values():
- all_coins = server.get_all_user_settings(
- "coins", [])
+ all_coins = self._all_coins(server)
+
interest_rate = decimal.Decimal(server.get_setting(
"interest-rate", DEFAULT_INTEREST_RATE))
redeem_amount = decimal.Decimal(server.get_setting(
"redeem-amount", DEFAULT_REDEEM_AMOUNT))
+
for nickname, coins in all_coins:
- coins = decimal.Decimal(coins)
if coins > redeem_amount:
interest = round(coins*interest_rate, 2)
self._take_from_pool(server, interest)