def get_group(group_id): tmp = hashlib.md5(str(mktime(datetime.now().timetuple()))).hexdigest() + "group_" + str(group_id) zscore = rs.zscore("group_ids", group_id) if zscore is not None: rs.zadd(tmp, group_id, zscore) res = get_groups_arr_by_set(tmp, 0, 1) rs.delete(tmp) return {} if len(res) == 0 else res[0] else: rs.delete(tmp) return {}
def get_battle(battle_id): tmp = hashlib.md5(str(mktime( datetime.now().timetuple()))).hexdigest() + "battle_" + str(battle_id) zscore = rs.zscore("battles_ids", battle_id) if zscore is not None: rs.zadd(tmp, battle_id, 10 * zscore) res = get_battles_arr_by_set(tmp, None, 0, 1) rs.delete(tmp) return {} if len(res) == 0 else res[0] else: rs.delete(tmp) return {}
def battleAcceptUser(battle_id, user_id, admin=False): if rs.exists("battle:" + str(battle_id)) != 1: return -1 uid = loggedUserUid() if rs.hget("battle:%s" % battle_id, "uid") != str(uid) and not admin: return -2 rs.zadd('battle:%s:users' % battle_id, user_id, 1) rs.sadd('battle:%s:accepted' % battle_id, user_id) rs.zadd('user:%s:battles' % user_id, battle_id, rs.zscore("battles_ids", battle_id)) if uid != user_id: create_battle_notification(loggedUserUid(), user_id, battle_id, NTFY_BATTLE_ACCEPT) return rs.scard('battle:%s:accepted' % battle_id)
def battleFollowUser(battle_id): if rs.exists("battle:" + str(battle_id)) != 1: return -1 uid = loggedUserUid() if uid == 0: return -2 if rs.sismember('battle:%s:invited' % battle_id, uid): create_battle_notification(uid, 0, battle_id, NTFY_INVITE_ACCEPT) rs.srem('battle:%s:invited' % battle_id, uid) rs.zadd('battle:%s:users' % battle_id, uid, 1) rs.sadd('battle:%s:accepted' % battle_id, uid) rs.zadd('user:%s:battles' % uid, battle_id, rs.zscore("battles_ids", battle_id)) return 1 else: create_battle_notification(uid, 0, battle_id, NTFY_BATTLE_FOLLOW) return followBattleByUser(battle_id, uid)
def create_group_battle(group_id): uid = loggedUserUid() if uid == 0: return -2 if rs.sismember("group:%s:users" % group_id, uid) == 0: return -1 try: data = json.loads(request.stream.read()) except: return -3 data["privacy"] = "PRIVATE" from warg.views.battle import do_create_battle battle_id = do_create_battle(uid, data) if int(battle_id) > 0: zscore = rs.zscore("battles_ids", battle_id) rs.zadd("group:%s:battles" % group_id, battle_id, zscore) return battle_id
def followBattleByUser(battle_id, by_user_id): rs.zadd('battle:%s:users' % battle_id, by_user_id, 0) rs.zadd('user:%s:battles' % by_user_id, battle_id, rs.zscore("battles_ids", battle_id)) return rs.zcard('battle:%s:users' % battle_id)