def Level_Info(self) -> Tuple[int, str, int]: """ Level -> int 等级、段位、全国排名 :return: Tuple[int, str, int] """ self.Get.Get_Level() return (USER_INFO().Level, USER_INFO().Level_Name, USER_INFO().Rank_Accumulate_In_Country)
def __init__(self, token: str): """ GET_INFO(token: str) 初始化 :param token: 令牌 """ self.__cookie = {'token': token} self.__info = USER_INFO() self._Init_Info()
def Id(self) -> int: """ Id - > int 用户ID :return: int """ return USER_INFO().User_Id
def Task_Bar(self) -> Dict[int, TASK_INFO]: """ Task_Bar -> Dict[int, TASK_INFO] 任务进度 :return: Dict[int, TASK_INFO] """ self.Get.Get_Task_Bar() return USER_INFO().Task_Bar
def Daily_Score(self) -> float: """ Daily_Score -> float 每日积分 :return: float """ self.Get.Get_Daily_Score() return USER_INFO().Daily_Score
def Aggregate_Score(self) -> float: """ Aggregate_Score -> float 总积分 :return: float """ self.Get.Get_Aggregate_Score() return USER_INFO().Aggregate_Score
class GET_INFO(metaclass=SINGLETON): """获取信息类""" def __init__(self, token: str): """ GET_INFO(token: str) 初始化 :param token: 令牌 """ self.__cookie = {'token': token} self.__info = USER_INFO() self._Init_Info() def _Init_Info(self) -> None: """ _Init_Info() -> None 初始化用户id :return: None """ while True: try: html = REQUESTS().Get(url=API().Aggregate_Score.geturl(), cookies=self.__cookie) data = html.json() self.__info.User_Id = data['data']['userId'] break except TypeError: continue def Get_Aggregate_Score(self) -> None: """ Get_Aggregate_Score() -> None 获取总积分 :return: None """ while True: try: html = REQUESTS().Get(url=API().Aggregate_Score.geturl(), cookies=self.__cookie) data = html.json() self.__info.Aggregate_Score = data['data']['score'] break except TypeError: continue def Get_Level(self) -> None: """ Get_Level() -> None 获取等级 :return: None """ while True: try: html = REQUESTS().Get(url=API().Level.geturl(), cookies=self.__cookie) data = html.json() self.__info.Level = data['data']['level'] self.__info.Level_Name = data['data']['levelName'] self.__info.Rank_Accumulate_In_Country = \ data['data']['rankAccumulateInCountry'] break except TypeError: continue def Get_Daily_Score(self) -> None: """ Get_Daily_Score() -> None 获取每日积分 :return: None """ while True: try: html = REQUESTS().Get(url=API().Daily_Score.geturl(), cookies=self.__cookie) data = html.json() self.__info.Daily_Score = data['data']['score'] break except TypeError: continue def Get_Task_Bar(self) -> None: """ Get_Task_Bar() -> None 获取任务进度 :return: None """ while True: try: html = REQUESTS().Get(url=API().Task_Bar.geturl(), cookies=self.__cookie) data = html.json() for rule in data['data']['dayScoreDtos']: task = self.__info.Task_Bar.get(rule['ruleId']) if not task: ruleId = rule['ruleId'] name = rule['name'] desc = rule['desc'] currentScore = rule['currentScore'] dayMaxScore = rule['dayMaxScore'] task = TASK_INFO(ruleId=ruleId, name=name, desc=desc, currentScore=currentScore, dayMaxScore=dayMaxScore) else: task.Current_Score = rule['currentScore'] self.__info.Update_Task_Bar_Info(task_info=task) break except TypeError: continue