| import json | |
| import time | |
| from utils.Logger import logger | |
| import utils.globals as globals | |
| def save_wss_map(wss_map): | |
| with open(globals.WSS_MAP_FILE, "w") as f: | |
| json.dump(wss_map, f, indent=4) | |
| async def token2wss(token): | |
| if not token: | |
| return False, None | |
| if token in globals.wss_map: | |
| wss_mode = globals.wss_map[token]["wss_mode"] | |
| if wss_mode: | |
| if int(time.time()) - globals.wss_map.get(token, {}).get("timestamp", 0) < 60 * 60: | |
| wss_url = globals.wss_map[token]["wss_url"] | |
| logger.info(f"token -> wss_url from cache") | |
| return wss_mode, wss_url | |
| else: | |
| logger.info(f"token -> wss_url expired") | |
| return wss_mode, None | |
| else: | |
| return False, None | |
| return False, None | |
| async def set_wss(token, wss_mode, wss_url=None): | |
| if not token: | |
| return True | |
| globals.wss_map[token] = {"timestamp": int(time.time()), "wss_url": wss_url, "wss_mode": wss_mode} | |
| save_wss_map(globals.wss_map) | |
| return True | |