yk_login.py 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. # -*- coding: utf-8 -*-
  2. # Author : Charley
  3. # Python : 3.10.8
  4. # Date : 2025/3/24 17:53
  5. import requests
  6. # from loguru import logger
  7. from mysql_pool import MySQLConnectionPool
  8. from settings import *
  9. # logger.remove()
  10. # logger.add("./logs/login_{time:YYYYMMDD}.log", encoding='utf-8', rotation="00:00",
  11. # format="[{time:YYYY-MM-DD HH:mm:ss.SSS}] {level} {message}",
  12. # level="DEBUG", retention="7 day")
  13. def get_token(log):
  14. log.debug("Start fetching token...........")
  15. url = "https://api.joycard.xyz/api/front/login/pwd"
  16. data = {
  17. "phone": "19521500850",
  18. "pwd": "Pass2025",
  19. "spreaderInviteCode": ""
  20. }
  21. response = requests.post(url, headers=HEADERS, json=data)
  22. # print(response.text)
  23. resp_json = response.json()
  24. if resp_json["code"] == 200:
  25. token = resp_json["data"]["token"]
  26. log.debug("Fetch token success!")
  27. return token
  28. else:
  29. log.error(f"Fetch token failed! Msg:{resp_json['message']}")
  30. return None
  31. @retry(stop=stop_after_attempt(100), wait=wait_fixed(3600), after=after_log)
  32. def login_main():
  33. # 配置 MySQL 连接池
  34. sql_pool = MySQLConnectionPool(log=logger)
  35. if not sql_pool.check_pool_health():
  36. logger.error("数据库连接池异常")
  37. raise RuntimeError("数据库连接池异常")
  38. token = get_token(logger)
  39. if token is None:
  40. logger.error("获取token失败")
  41. raise RuntimeError("获取token失败")
  42. else:
  43. sql_pool.update_one_or_dict(table="yueka_token", data={"token": token}, condition={"id": 1})
  44. logger.debug("------------------ 更新token成功 ------------------")
  45. if __name__ == '__main__':
  46. login_main()
  47. # get_token(logger)