AutoMihoyoBBS/login.py

38 lines
1.7 KiB
Python
Raw Normal View History

2021-05-23 21:24:20 +08:00
import config
import setting
2022-04-24 13:06:26 +08:00
from request import http
2022-01-06 13:49:25 +08:00
from loghelper import log
from error import CookieError
2021-05-23 21:24:20 +08:00
2021-10-25 22:53:34 +08:00
2021-05-23 21:24:20 +08:00
def login():
if config.config["account"]["cookie"] == '':
2021-05-23 21:24:20 +08:00
log.error("请填入Cookies!")
2022-01-06 13:49:25 +08:00
config.clear_cookies()
raise CookieError('No cookie')
2021-10-25 22:53:34 +08:00
# 判断Cookie里面是否有login_ticket 没有的话直接退了
if "login_ticket" in config.config["account"]["cookie"]:
temp_cookies = config.config["account"]["cookie"].split(";")
2022-04-24 13:06:26 +08:00
for i in temp_cookies:
2021-06-06 21:19:28 +08:00
if i.split("=")[0] == " login_ticket":
config.config["account"]["login_ticket"] = i.split("=")[1]
2021-05-23 21:24:20 +08:00
break
2021-10-25 22:53:34 +08:00
# 这里获取Stuid但是实际是可以直接拿cookie里面的Uid
2022-10-12 22:12:30 +08:00
data = http.get(url=setting.bbs_cookie_url.format(config.config["account"]["login_ticket"])).json()
2021-06-06 21:19:28 +08:00
if "成功" in data["data"]["msg"]:
config.config["account"]["stuid"] = str(data["data"]["cookie_info"]["account_id"])
2022-10-12 22:12:30 +08:00
data = http.get(url=setting.bbs_cookie_url2.format(
config.config["account"]["login_ticket"], config.config["account"]["stuid"])).json()
config.config["account"]["stoken"] = data["data"]["list"][0]["token"]
2021-05-23 21:24:20 +08:00
log.info("登录成功!")
log.info("正在保存Config")
2022-01-06 13:49:25 +08:00
config.save_config()
2021-05-23 21:24:20 +08:00
else:
log.error("cookie已失效,请重新登录米游社抓取cookie")
2022-01-06 13:49:25 +08:00
config.clear_cookies()
raise CookieError('Cookie expires')
2021-05-23 21:24:20 +08:00
else:
log.error("cookie中没有'login_ticket'字段,请重新登录米游社重新抓取cookie!")
2022-01-06 13:49:25 +08:00
config.clear_cookies()
raise CookieError('Cookie lost login_ticket')