def blizzard_get_token_and_save(): """ Gets token and saves :return: """ token = blizzard_get_token() db = blizzard_db() DataStore.set(db, "token", value=token['access_token']) DataStore.set(db, "token_created", value=str(time.time()).split('.')[0])
def blizzard_support_get_token(): """ Returns the token :return: """ if blizzard_support_is_token_expired(): blizzard_get_token_and_save() return DataStore.get(blizzard_db(), "token").value
def blizzard_support_is_token_expired(): """ Returns true, if token expired :return: """ try: created = int(DataStore.get(blizzard_db(), "token_created").value) except Exception: created = 0 return (time.time() - created) > 60 * 60
def update_info(): """ Updates the main guild info :return: """ db = blizzard_db() data = blizzard_guild_info() logger.info(f"Guild identifier: {data['id']}") DataStore.set(db, "gid", data["id"]) logger.info(f"Guild name: {data['name']}") DataStore.set(db, "guild_name", data["name"]) logger.info(f"Guild achievement points: {data['achievement_points']}") DataStore.set(db, "achievement_points", data["achievement_points"]) logger.info(f"Guild faction: {data['faction']['name']}") DataStore.set(db, "faction_name", data['faction']['name']) DataStore.set(db, "faction_type", data['faction']['type']) logger.info(f"Guild created timestamp: {data['created_timestamp']}") DataStore.set(db, "created_timestamp", data['created_timestamp']) logger.info(f"Guild players: {data['member_count']}") DataStore.set(db, "players", data['member_count']) logger.info(f"Guild crest: {data['crest']['emblem']['id']}") crest_url = f'https://render-eu.worldofwarcraft.com/guild/tabards/emblem_{data["crest"]["emblem"]["id"]}.png' background_color = data["crest"]["background"]["color"]["rgba"] background_color = f"{background_color['r']}, {background_color['g']}, {background_color['b']}, {background_color['a']}" DataStore.set(db, "crest_emblem_url", crest_url) DataStore.set(db, "crest_background_color", background_color)
def guild_get_info(param: str, db=Depends(get_db)): return DataStore.get(db, field=param)
def guild_get_info_object(db=Depends(get_db)): o = {} for it in DataStore.list(db): if it.field != 'token': o[it.field] = it.value return o
def guild_get_info(db=Depends(get_db)): return list(filter(lambda x: x.field != 'token', DataStore.list(db)))
def api_data_remove(field: str, db=Depends(get_db)): return DataStore.remove(db, field=field)
def api_data_get(field: str, db=Depends(get_db)): return DataStore.get(db, field=field)
def api_data_set(field: str, body: _DataValueBody, db=Depends(get_db)): return DataStore.set(db, field=field, value=body.value)
def api_data_list(db=Depends(get_db)): return DataStore.list(db)