aboutsummaryrefslogtreecommitdiff
path: root/modules/coins.py
diff options
context:
space:
mode:
authorGravatar jesopo2018-09-29 12:53:39 +0100
committerGravatar jesopo2018-09-29 12:53:39 +0100
commit47ec11bbef27eeefedb26fff678b577c5d50eb17 (patch)
tree47a1744ee18da7fc413bc89ef5c05eeefdf22540 /modules/coins.py
parentMake 'account' arg for identify command optional (diff)
signature
Add src/Cache.py, use it in modules/coins.py
Diffstat (limited to 'modules/coins.py')
-rw-r--r--modules/coins.py18
1 files changed, 10 insertions, 8 deletions
diff --git a/modules/coins.py b/modules/coins.py
index 86c334e2..4e0f966e 100644
--- a/modules/coins.py
+++ b/modules/coins.py
@@ -101,6 +101,9 @@ class Module(object):
all_coins[nickname])) for nickname in top_10)
event["stdout"].write("Richest users: %s" % top_10)
+ def _redeem_cache(self, server, user):
+ return "redeem|%s|%s@%s" % (server.id, user.username, user.hostname)
+
@Utils.hook("received.command.redeemcoins")
def redeem_coins(self, event):
"""
@@ -109,21 +112,20 @@ class Module(object):
user_coins = decimal.Decimal(event["user"].get_setting(
"coins", "0.0"))
if user_coins == DECIMAL_ZERO:
- last_redeem = event["user"].get_setting("last-redeem", None)
- redeem_delay = event["server"].get_setting("redeem-delay",
- DEFAULT_REDEEM_DELAY)
-
- if last_redeem == None or (time.time()-last_redeem
- ) >= redeem_delay:
+ cache = self._redeem_cache(event["server"], event["user"])
+ if not self.bot.cache.has_item(cache):
redeem_amount = decimal.Decimal(event["server"
].get_setting("redeem-amount", DEFAULT_REDEEM_AMOUNT))
event["user"].set_setting("coins", str(
user_coins+redeem_amount))
event["stdout"].write("Redeemed %s coins" % "{0:.2f}".format(
redeem_amount))
- event["user"].set_setting("last-redeem", time.time())
+
+ redeem_delay = event["server"].get_setting("redeem-delay",
+ DEFAULT_REDEEM_DELAY)
+ self.bot.cache.temporary_cache(cache, redeem_delay)
else:
- time_left = (last_redeem+redeem_delay)-time.time()
+ time_left = self.bot.cache.until_expiration(cache)
event["stderr"].write("Please wait %s before redeeming" %
Utils.to_pretty_time(math.ceil(time_left)))
else: