2021-06-06 09:50:00 +00:00
|
|
|
|
import os
|
2021-05-24 08:16:52 +00:00
|
|
|
|
import uuid
|
2021-05-23 13:24:20 +00:00
|
|
|
|
import time
|
2021-05-24 08:16:52 +00:00
|
|
|
|
import config
|
2021-05-23 13:24:20 +00:00
|
|
|
|
import random
|
|
|
|
|
import string
|
2021-05-24 08:16:52 +00:00
|
|
|
|
import logging
|
2021-05-23 13:24:20 +00:00
|
|
|
|
import hashlib
|
|
|
|
|
import setting
|
|
|
|
|
|
2021-06-06 09:50:00 +00:00
|
|
|
|
#Log输出,这里提供了自定义logging输出的机会,只需要创建一个logging.ini并且写入配置文件即可自定义输出
|
|
|
|
|
if (os.path.exists(f"{config.path}/logging.ini") == True):
|
|
|
|
|
logging.config.fileConfig(f"{config.path}/logging.ini")
|
|
|
|
|
else:
|
|
|
|
|
logging.basicConfig(
|
|
|
|
|
level=logging.INFO,
|
|
|
|
|
format='%(asctime)s %(levelname)s %(message)s',
|
|
|
|
|
datefmt='%Y-%m-%dT%H:%M:%S')
|
2021-05-23 13:24:20 +00:00
|
|
|
|
|
|
|
|
|
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 == True):
|
|
|
|
|
if(web_old == True):
|
|
|
|
|
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 (i + "," + r + "," + c)
|
|
|
|
|
|
2021-05-25 09:45:35 +00:00
|
|
|
|
#生成一个device id
|
|
|
|
|
def Get_deviceid() -> str:
|
2021-05-24 08:16:52 +00:00
|
|
|
|
return (str(uuid.uuid3(uuid.NAMESPACE_URL, config.mihoyobbs_Cookies)).replace(
|
|
|
|
|
'-', '').upper())
|
|
|
|
|
|
2021-05-23 13:24:20 +00:00
|
|
|
|
#获取明天早晨0点的时间戳
|
|
|
|
|
def Nextday() -> int:
|
|
|
|
|
now_time = int(time.time())
|
|
|
|
|
nextday_time = now_time - now_time % 86400 + time.timezone + 86400
|
|
|
|
|
return (nextday_time)
|