def push(self, data): t = data['type'] key = self.genKey(t) if t == self.TYPE_TOURNAMENT: DB.get_list(key).append(json.dumps(data)) else: DB.Redis().hincrby(key, t)
def doPlay(self, idx): cur_step = self.step if self.step is None or cur_step >= self.MAX_STEP: return False seq_key = self.genRkey("seq:%s:%s" % (self.uid_, self.mid_)) seq = DB.get_list(seq_key) number = int(random.choice(list(seq))) cur_step += 1 self.set("s_idx:%s" % cur_step, idx) self.set("s_val:%s" % cur_step, number) seq.remove(number) self.step = cur_step total_rate = self.rate + number self.rate = total_rate left = list(seq) win = 0 bet = self.bet if cur_step >= self.MAX_STEP: win = total_rate * bet self.remove() share = UserShareGift(self.uid_) share.setFlag(UserShareGift.TYPE_BONUS) return (bet, number, win, left)
def get(self): key = self.genKey(self.TYPE_TOURNAMENT) data = [json.loads(i) for i in DB.get_list(key)] key = self.genKey(self.TYPE_SHAREGIFT) h = DB.get_hash(key) for k in h.keys(): data.append({'type':k, 'counter':h[k]}) self.clear() return data
def doPlay(self): cur_step = self.step if self.step is None or cur_step >= self.MAX_STEP: return False cur_step += 1 seq_key = self.genRkey("seq:%s:%s:%s" % (self.uid_, self.mid_, cur_step)) seq = DB.get_list(seq_key) number = int(random.choice(list(seq))) # self.set('s_idx:%s'% cur_step, idx) # self.set('s_val:%s'% cur_step, number) # seq.remove(number) self.step = cur_step if number != self.TRAP: total_rate = self.rate + number self.rate = total_rate win = 0 left = [] for i in range(cur_step, self.MAX_STEP + 1): seq_key = self.genRkey("seq:%s:%s:%s" % (self.uid_, self.mid_, i)) seq = DB.get_list(seq_key) left.append(list(seq)) bet = self.bet if number == self.TRAP or cur_step >= self.MAX_STEP: win = self.rate * bet self.remove() share = UserShareGift(self.uid_) share.setFlag(UserShareGift.TYPE_BONUS) return (bet, number, win, left)