diff options
| author | 2018-09-29 12:53:39 +0100 | |
|---|---|---|
| committer | 2018-09-29 12:53:39 +0100 | |
| commit | 47ec11bbef27eeefedb26fff678b577c5d50eb17 (patch) | |
| tree | 47a1744ee18da7fc413bc89ef5c05eeefdf22540 /modules/coins.py | |
| parent | Make '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.py | 18 |
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: |
