def query_left_chance(cls, uid, tid): datestr = time.strftime('%y%m%d', time.localtime()) key = cls.LIVE_USER_TASK % {'uid': uid, 'date': datestr} left_chance = Redis.hget(key, tid) if left_chance is None: left_chance = 0 return int(left_chance)
def format(self, uid): tid = str(self._id) datestr = time.strftime('%y%m%d', time.localtime()) if uid: key = self.LIVE_USER_TASK % {'uid': uid, 'date': datestr} left_chance = int(Redis.hget(key, tid)) else: left_chance = self.chance icon_login = self.icon_login or self.icon icon_break = self.icon_break or self.icon icon_reward = self.icon_reward or self.icon icon_out = self.icon_out or self.icon data = { 'id': tid, 'name': self.name, 'duration': self.duration, 'expire_at': self.expire_at, 'chance': left_chance, 'icon': urljoin(app.config.get("MEDIA_URL"), self.icon), 'icon_login': urljoin(app.config.get("MEDIA_URL"), icon_login), 'icon_break': urljoin(app.config.get("MEDIA_URL"), icon_break), 'icon_reward': urljoin(app.config.get("MEDIA_URL"), icon_reward), 'icon_out': urljoin(app.config.get("MEDIA_URL"), icon_out), } return data
def update_left_chance(cls, uid, tid): datestr = time.strftime('%y%m%d', time.localtime()) key = cls.LIVE_USER_TASK % {'uid': uid, 'date': datestr} left_chance = Redis.hget(key, tid) if left_chance is None: left_chance = cls.get_one(tid)['chance'] if int(left_chance) < 1: return False left_chance = int(left_chance) - 1 Redis.hset(key, tid, left_chance) return True
def test_cached_hash(self): self._cached_hash() self.assertFalse(Redis.exists(self.HASH_KEY)) self._cached_hash({'dog': 1, 'pig': 2}) self.assertEqual(Redis.hget(self.HASH_KEY, 'dog'), '1') self.assertEqual(Redis.hget(self.HASH_KEY, 'pig'), '2')