88 lines
2.2 KiB
Python
88 lines
2.2 KiB
Python
import os
|
||
import uuid
|
||
import time
|
||
import config
|
||
import random
|
||
import string
|
||
import logging
|
||
import hashlib
|
||
import setting
|
||
|
||
# Log输出,这里提供了自定义logging输出的机会,只需要创建一个logging.ini并且写入配置文件即可自定义输出
|
||
if os.path.exists(f"{config.path}/logging.ini"):
|
||
import logging.config
|
||
|
||
logging.config.fileConfig(f"{config.path}/logging.ini")
|
||
log = logging.getLogger("AutoMihoyoBBS")
|
||
else:
|
||
logging.basicConfig(
|
||
level=logging.INFO,
|
||
format='%(asctime)s %(levelname)s %(message)s',
|
||
datefmt='%Y-%m-%dT%H:%M:%S')
|
||
log = logger = logging
|
||
|
||
|
||
# md5计算
|
||
def MD5(text: str) -> str:
|
||
md5 = hashlib.md5()
|
||
md5.update(text.encode())
|
||
return md5.hexdigest()
|
||
|
||
|
||
# 随机文本
|
||
def Random_text(num: int) -> str:
|
||
return ''.join(random.sample(string.ascii_lowercase + string.digits, num))
|
||
|
||
|
||
# 时间戳
|
||
def Timestamp() -> int:
|
||
return int(time.time())
|
||
|
||
|
||
# 获取请求Header里的DS 当web为true则生成网页端的DS
|
||
def Get_ds(web: bool, web_old: bool) -> str:
|
||
if web:
|
||
if web_old:
|
||
n = setting.mihoyobbs_Salt_web_old
|
||
else:
|
||
n = setting.mihoyobbs_Salt_web
|
||
else:
|
||
n = setting.mihoyobbs_Salt
|
||
i = str(Timestamp())
|
||
r = Random_text(6)
|
||
c = MD5("salt=" + n + "&t=" + i + "&r=" + r)
|
||
return f"{i},{r},{c}"
|
||
|
||
|
||
# 生成一个device id
|
||
def Get_deviceid() -> str:
|
||
return str(uuid.uuid3(uuid.NAMESPACE_URL, config.mihoyobbs_Cookies)).replace(
|
||
'-', '').upper()
|
||
|
||
|
||
# 获取签到的奖励名称
|
||
def Get_item(raw_data: dict) -> str:
|
||
temp_Name = raw_data["name"]
|
||
temp_Cnt = raw_data["cnt"]
|
||
return f"{temp_Name}x{temp_Cnt}"
|
||
|
||
|
||
# 获取明天早晨0点的时间戳
|
||
def Nextday() -> int:
|
||
now_time = int(time.time())
|
||
nextday_time = now_time - now_time % 86400 + time.timezone + 86400
|
||
return nextday_time
|
||
|
||
|
||
# 获取Openssl版本
|
||
def Get_openssl_Version() -> int:
|
||
try:
|
||
import ssl
|
||
except ImportError:
|
||
log.error("Openssl Lib Error !!")
|
||
# return -99
|
||
# 建议直接更新Python的版本,有特殊情况请提交issues
|
||
exit(-1)
|
||
temp_List = ssl.OPENSSL_VERSION_INFO
|
||
return int(f"{str(temp_List[0])}{str(temp_List[1])}{str(temp_List[2])}")
|