mirror of
https://github.com/TDSCDMAA/AutoMihoyoBBS.git
synced 2026-06-02 18:43:42 +08:00
变量名小写,Log单独文件
This commit is contained in:
parent
08a5e53233
commit
3903607f7e
14
config.py
14
config.py
@ -1,6 +1,6 @@
|
|||||||
import os
|
import os
|
||||||
import json
|
import json
|
||||||
import tools
|
from loghelper import log
|
||||||
|
|
||||||
# 是否启用config
|
# 是否启用config
|
||||||
enable_Config = True
|
enable_Config = True
|
||||||
@ -41,7 +41,7 @@ path = os.path.dirname(os.path.realpath(__file__)) + "/config"
|
|||||||
config_Path = f"{path}/config.json"
|
config_Path = f"{path}/config.json"
|
||||||
|
|
||||||
|
|
||||||
def Load_config():
|
def load_config():
|
||||||
with open(config_Path, "r") as f:
|
with open(config_Path, "r") as f:
|
||||||
data = json.load(f)
|
data = json.load(f)
|
||||||
global enable_Config
|
global enable_Config
|
||||||
@ -68,10 +68,10 @@ def Load_config():
|
|||||||
genshin_Auto_sign = data["genshin_Auto_sign"]
|
genshin_Auto_sign = data["genshin_Auto_sign"]
|
||||||
honkai3rd_Auto_sign = data["honkai3rd_Auto_sign"]
|
honkai3rd_Auto_sign = data["honkai3rd_Auto_sign"]
|
||||||
f.close()
|
f.close()
|
||||||
tools.log.info("Config加载完毕")
|
log.info("Config加载完毕")
|
||||||
|
|
||||||
|
|
||||||
def Save_config():
|
def save_config():
|
||||||
with open(config_Path, "r+") as f:
|
with open(config_Path, "r+") as f:
|
||||||
data = json.load(f)
|
data = json.load(f)
|
||||||
data["mihoyobbs_Login_ticket"] = mihoyobbs_Login_ticket
|
data["mihoyobbs_Login_ticket"] = mihoyobbs_Login_ticket
|
||||||
@ -83,10 +83,10 @@ def Save_config():
|
|||||||
f.write(temp_Text)
|
f.write(temp_Text)
|
||||||
f.flush()
|
f.flush()
|
||||||
f.close()
|
f.close()
|
||||||
tools.log.info("Config保存完毕")
|
log.info("Config保存完毕")
|
||||||
|
|
||||||
|
|
||||||
def Clear_cookies():
|
def clear_cookies():
|
||||||
with open(config_Path, "r+") as f:
|
with open(config_Path, "r+") as f:
|
||||||
data = json.load(f)
|
data = json.load(f)
|
||||||
data["enable_Config"] = False
|
data["enable_Config"] = False
|
||||||
@ -100,4 +100,4 @@ def Clear_cookies():
|
|||||||
f.write(temp_Text)
|
f.write(temp_Text)
|
||||||
f.flush()
|
f.flush()
|
||||||
f.close()
|
f.close()
|
||||||
tools.log.info("Cookie删除完毕")
|
log.info("Cookie删除完毕")
|
||||||
|
|||||||
3
error.py
3
error.py
@ -1,5 +1,6 @@
|
|||||||
class cookieError(Exception):
|
class CookieError(Exception):
|
||||||
def __init__(self, info):
|
def __init__(self, info):
|
||||||
self.info = info
|
self.info = info
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return repr(self.info)
|
return repr(self.info)
|
||||||
61
genshin.py
61
genshin.py
@ -4,13 +4,14 @@ import config
|
|||||||
import random
|
import random
|
||||||
import setting
|
import setting
|
||||||
from request import http
|
from request import http
|
||||||
|
from loghelper import log
|
||||||
|
|
||||||
|
|
||||||
class genshin:
|
class Genshin:
|
||||||
def __init__(self) -> None:
|
def __init__(self) -> None:
|
||||||
self.headers = {
|
self.headers = {
|
||||||
'Accept': 'application/json, text/plain, */*',
|
'Accept': 'application/json, text/plain, */*',
|
||||||
'DS': tools.Get_ds(web=True, web_old=True),
|
'DS': tools.get_ds(web=True, web_old=True),
|
||||||
'Origin': 'https://webstatic.mihoyo.com',
|
'Origin': 'https://webstatic.mihoyo.com',
|
||||||
'x-rpc-app_version': setting.mihoyobbs_Version_old,
|
'x-rpc-app_version': setting.mihoyobbs_Version_old,
|
||||||
'User-Agent': 'Mozilla/5.0 (Linux; Android 9; Unspecified Device) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/39.0.0.0 Mobile Safari/537.36 miHoYoBBS/2.3.0',
|
'User-Agent': 'Mozilla/5.0 (Linux; Android 9; Unspecified Device) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/39.0.0.0 Mobile Safari/537.36 miHoYoBBS/2.3.0',
|
||||||
@ -20,75 +21,75 @@ class genshin:
|
|||||||
'Accept-Language': 'zh-CN,en-US;q=0.8',
|
'Accept-Language': 'zh-CN,en-US;q=0.8',
|
||||||
'X-Requested-With': 'com.mihoyo.hyperion',
|
'X-Requested-With': 'com.mihoyo.hyperion',
|
||||||
"Cookie": config.mihoyobbs_Cookies,
|
"Cookie": config.mihoyobbs_Cookies,
|
||||||
'x-rpc-device_id': tools.Get_deviceid()
|
'x-rpc-device_id': tools.get_device_id()
|
||||||
}
|
}
|
||||||
self.acc_List = self.Getacc_list()
|
self.acc_List = self.get_account_list()
|
||||||
if len(self.acc_List) != 0:
|
if len(self.acc_List) != 0:
|
||||||
self.sign_Give = self.Get_signgive()
|
self.sign_Give = self.get_signgive()
|
||||||
|
|
||||||
# 获取绑定的账号列表
|
# 获取绑定的账号列表
|
||||||
def Getacc_list(self) -> list:
|
def get_account_list(self) -> list:
|
||||||
tools.log.info("正在获取米哈游账号绑定原神账号列表...")
|
log.info("正在获取米哈游账号绑定原神账号列表...")
|
||||||
temp_List = []
|
temp_list = []
|
||||||
req = http.get(setting.genshin_Account_info_url, headers=self.headers)
|
req = http.get(setting.genshin_Account_info_url, headers=self.headers)
|
||||||
data = req.json()
|
data = req.json()
|
||||||
if data["retcode"] != 0:
|
if data["retcode"] != 0:
|
||||||
tools.log.warning("获取账号列表失败!")
|
log.warning("获取账号列表失败!")
|
||||||
exit(1)
|
exit(1)
|
||||||
for i in data["data"]["list"]:
|
for i in data["data"]["list"]:
|
||||||
temp_List.append([i["nickname"], i["game_uid"], i["region"]])
|
temp_list.append([i["nickname"], i["game_uid"], i["region"]])
|
||||||
tools.log.info(f"已获取到{len(temp_List)}个原神账号信息")
|
log.info(f"已获取到{len(temp_list)}个原神账号信息")
|
||||||
return temp_List
|
return temp_list
|
||||||
|
|
||||||
# 获取已经签到奖励列表
|
# 获取已经签到奖励列表
|
||||||
def Get_signgive(self) -> list:
|
def get_signgive(self) -> list:
|
||||||
tools.log.info("正在获取签到奖励列表...")
|
log.info("正在获取签到奖励列表...")
|
||||||
req = http.get(setting.genshin_Signlisturl.format(setting.genshin_Act_id), headers=self.headers)
|
req = http.get(setting.genshin_Signlisturl.format(setting.genshin_Act_id), headers=self.headers)
|
||||||
data = req.json()
|
data = req.json()
|
||||||
if data["retcode"] != 0:
|
if data["retcode"] != 0:
|
||||||
tools.log.warning("获取签到奖励列表失败")
|
log.warning("获取签到奖励列表失败")
|
||||||
print(req.text)
|
print(req.text)
|
||||||
exit(1)
|
exit(1)
|
||||||
return data["data"]["awards"]
|
return data["data"]["awards"]
|
||||||
|
|
||||||
# 判断签到
|
# 判断签到
|
||||||
def Is_sign(self, region: str, uid: str):
|
def is_sign(self, region: str, uid: str):
|
||||||
req = http.get(setting.genshin_Is_signurl.format(setting.genshin_Act_id, region, uid), headers=self.headers)
|
req = http.get(setting.genshin_Is_signurl.format(setting.genshin_Act_id, region, uid), headers=self.headers)
|
||||||
data = req.json()
|
data = req.json()
|
||||||
if data["retcode"] != 0:
|
if data["retcode"] != 0:
|
||||||
tools.log.warning("获取账号签到信息失败!")
|
log.warning("获取账号签到信息失败!")
|
||||||
print(req.text)
|
print(req.text)
|
||||||
exit(1)
|
exit(1)
|
||||||
return data["data"]
|
return data["data"]
|
||||||
|
|
||||||
# 签到
|
# 签到
|
||||||
def Sign_acc(self):
|
def sign_account(self):
|
||||||
if len(self.acc_List) != 0:
|
if len(self.acc_List) != 0:
|
||||||
for i in self.acc_List:
|
for i in self.acc_List:
|
||||||
tools.log.info(f"正在为旅行者{i[0]}进行签到...")
|
log.info(f"正在为旅行者{i[0]}进行签到...")
|
||||||
time.sleep(random.randint(2, 8))
|
time.sleep(random.randint(2, 8))
|
||||||
is_data = self.Is_sign(region=i[2], uid=i[1])
|
is_data = self.is_sign(region=i[2], uid=i[1])
|
||||||
if is_data["first_bind"]:
|
if is_data["first_bind"]:
|
||||||
tools.log.warning(f"旅行者{i[0]}是第一次绑定米游社,请先手动签到一次")
|
log.warning(f"旅行者{i[0]}是第一次绑定米游社,请先手动签到一次")
|
||||||
else:
|
else:
|
||||||
sign_Days = is_data["total_sign_day"] - 1
|
sign_days = is_data["total_sign_day"] - 1
|
||||||
if is_data["is_sign"]:
|
if is_data["is_sign"]:
|
||||||
tools.log.info(f"旅行者{i[0]}今天已经签到过了~\r\n今天获得的奖励是{tools.Get_item(self.sign_Give[sign_Days])}")
|
log.info(f"旅行者{i[0]}今天已经签到过了~\r\n今天获得的奖励是{tools.get_item(self.sign_Give[sign_days])}")
|
||||||
else:
|
else:
|
||||||
time.sleep(random.randint(2, 8))
|
time.sleep(random.randint(2, 8))
|
||||||
req = http.post(url=setting.genshin_Signurl, headers=self.headers,
|
req = http.post(url=setting.genshin_Signurl, headers=self.headers,
|
||||||
json={'act_id': setting.genshin_Act_id, 'region': i[2], 'uid': i[1]})
|
json={'act_id': setting.genshin_Act_id, 'region': i[2], 'uid': i[1]})
|
||||||
data = req.json()
|
data = req.json()
|
||||||
if data["retcode"] == 0:
|
if data["retcode"] == 0:
|
||||||
if sign_Days == 0:
|
if sign_days == 0:
|
||||||
tools.log.info(f"旅行者{i[0]}签到成功~\r\n今天获得的奖励是{tools.Get_item(self.sign_Give[sign_Days])}")
|
log.info(f"旅行者{i[0]}签到成功~\r\n今天获得的奖励是{tools.get_item(self.sign_Give[sign_days])}")
|
||||||
else:
|
else:
|
||||||
tools.log.info(
|
log.info(
|
||||||
f"旅行者{i[0]}签到成功~\r\n今天获得的奖励是{tools.Get_item(self.sign_Give[sign_Days + 1])}")
|
f"旅行者{i[0]}签到成功~\r\n今天获得的奖励是{tools.get_item(self.sign_Give[sign_days + 1])}")
|
||||||
elif data["retcode"] == -5003:
|
elif data["retcode"] == -5003:
|
||||||
tools.log.info(f"旅行者{i[0]}今天已经签到过了~\r\n今天获得的奖励是{tools.Get_item(self.sign_Give[sign_Days])}")
|
log.info(f"旅行者{i[0]}今天已经签到过了~\r\n今天获得的奖励是{tools.get_item(self.sign_Give[sign_days])}")
|
||||||
else:
|
else:
|
||||||
tools.log.warning("账号签到失败!")
|
log.warning("账号签到失败!")
|
||||||
print(req.text)
|
print(req.text)
|
||||||
else:
|
else:
|
||||||
tools.log.warning("账号没有绑定任何原神账号!")
|
log.warning("账号没有绑定任何原神账号!")
|
||||||
|
|||||||
25
honkai3rd.py
25
honkai3rd.py
@ -4,13 +4,14 @@ import config
|
|||||||
import random
|
import random
|
||||||
import setting
|
import setting
|
||||||
from request import http
|
from request import http
|
||||||
|
from loghelper import log
|
||||||
|
|
||||||
|
|
||||||
class honkai3rd:
|
class honkai3rd:
|
||||||
def __init__(self) -> None:
|
def __init__(self) -> None:
|
||||||
self.headers = {
|
self.headers = {
|
||||||
'Accept': 'application/json, text/plain, */*',
|
'Accept': 'application/json, text/plain, */*',
|
||||||
'DS': tools.Get_ds(web=True, web_old=True),
|
'DS': tools.get_ds(web=True, web_old=True),
|
||||||
'Origin': 'https://webstatic.mihoyo.com',
|
'Origin': 'https://webstatic.mihoyo.com',
|
||||||
'x-rpc-app_version': setting.mihoyobbs_Version_old,
|
'x-rpc-app_version': setting.mihoyobbs_Version_old,
|
||||||
'User-Agent': 'Mozilla/5.0 (Linux; Android 9; Unspecified Device) AppleWebKit/537.36 (KHTML, like Gecko) '
|
'User-Agent': 'Mozilla/5.0 (Linux; Android 9; Unspecified Device) AppleWebKit/537.36 (KHTML, like Gecko) '
|
||||||
@ -23,22 +24,22 @@ class honkai3rd:
|
|||||||
'Accept-Language': 'zh-CN,en-US;q=0.8',
|
'Accept-Language': 'zh-CN,en-US;q=0.8',
|
||||||
'X-Requested-With': 'com.mihoyo.hyperion',
|
'X-Requested-With': 'com.mihoyo.hyperion',
|
||||||
"Cookie": config.mihoyobbs_Cookies,
|
"Cookie": config.mihoyobbs_Cookies,
|
||||||
'x-rpc-device_id': tools.Get_deviceid()
|
'x-rpc-device_id': tools.get_device_id()
|
||||||
}
|
}
|
||||||
self.acc_List = self.Getacc_list()
|
self.acc_List = self.Getacc_list()
|
||||||
|
|
||||||
# 获取绑定的账号列表
|
# 获取绑定的账号列表
|
||||||
def Getacc_list(self) -> list:
|
def Getacc_list(self) -> list:
|
||||||
tools.log.info("正在获取米哈游账号绑定的崩坏3账号列表...")
|
log.info("正在获取米哈游账号绑定的崩坏3账号列表...")
|
||||||
temp_List = []
|
temp_List = []
|
||||||
req = http.get(setting.honkai3rd_Account_info_url, headers=self.headers)
|
req = http.get(setting.honkai3rd_Account_info_url, headers=self.headers)
|
||||||
data = req.json()
|
data = req.json()
|
||||||
if data["retcode"] != 0:
|
if data["retcode"] != 0:
|
||||||
tools.log.warning("获取账号列表失败!")
|
log.warning("获取账号列表失败!")
|
||||||
exit(1)
|
exit(1)
|
||||||
for i in data["data"]["list"]:
|
for i in data["data"]["list"]:
|
||||||
temp_List.append([i["nickname"], i["game_uid"], i["region"]])
|
temp_List.append([i["nickname"], i["game_uid"], i["region"]])
|
||||||
tools.log.info(f"已获取到{len(temp_List)}个崩坏3账号信息")
|
log.info(f"已获取到{len(temp_List)}个崩坏3账号信息")
|
||||||
return temp_List
|
return temp_List
|
||||||
|
|
||||||
# 获取今天已经签到了的dict
|
# 获取今天已经签到了的dict
|
||||||
@ -57,21 +58,21 @@ class honkai3rd:
|
|||||||
req = http.get(setting.honkai3rd_Is_signurl.format(setting.honkai3rd_Act_id, region, uid), headers=self.headers)
|
req = http.get(setting.honkai3rd_Is_signurl.format(setting.honkai3rd_Act_id, region, uid), headers=self.headers)
|
||||||
data = req.json()
|
data = req.json()
|
||||||
if data["retcode"] != 0:
|
if data["retcode"] != 0:
|
||||||
tools.log.warning("获取账号签到信息失败!")
|
log.warning("获取账号签到信息失败!")
|
||||||
print(req.text)
|
print(req.text)
|
||||||
exit(1)
|
exit(1)
|
||||||
today_Item = self.Get_today_item(data["data"]["sign"]["list"])
|
today_Item = self.Get_today_item(data["data"]["sign"]["list"])
|
||||||
if today_Item["status"] == 1:
|
if today_Item["status"] == 1:
|
||||||
return True
|
return True
|
||||||
else:
|
else:
|
||||||
tools.log.info(f"舰长{nickname}今天已经签到过了~\r\n今天获得的奖励是{tools.Get_item(today_Item)}")
|
log.info(f"舰长{nickname}今天已经签到过了~\r\n今天获得的奖励是{tools.get_item(today_Item)}")
|
||||||
return False
|
return False
|
||||||
|
|
||||||
# 签到
|
# 签到
|
||||||
def Sign_acc(self):
|
def Sign_acc(self):
|
||||||
if len(self.acc_List) != 0:
|
if len(self.acc_List) != 0:
|
||||||
for i in self.acc_List:
|
for i in self.acc_List:
|
||||||
tools.log.info(f"正在为舰长{i[0]}进行签到...")
|
log.info(f"正在为舰长{i[0]}进行签到...")
|
||||||
time.sleep(random.randint(2, 8))
|
time.sleep(random.randint(2, 8))
|
||||||
is_data = self.Is_sign(region=i[2], uid=i[1], nickname=i[0])
|
is_data = self.Is_sign(region=i[2], uid=i[1], nickname=i[0])
|
||||||
if is_data:
|
if is_data:
|
||||||
@ -81,12 +82,12 @@ class honkai3rd:
|
|||||||
data = req.json()
|
data = req.json()
|
||||||
if data["retcode"] == 0:
|
if data["retcode"] == 0:
|
||||||
today_Item = self.Get_today_item(data["data"]["list"])
|
today_Item = self.Get_today_item(data["data"]["list"])
|
||||||
tools.log.info(f"舰长{i[0]}签到成功~\r\n今天获得的奖励是{tools.Get_item(today_Item)}")
|
log.info(f"舰长{i[0]}签到成功~\r\n今天获得的奖励是{tools.get_item(today_Item)}")
|
||||||
elif data["retcode"] == -5003:
|
elif data["retcode"] == -5003:
|
||||||
# 崩坏3应为奖励列表和签到信息在一起了,加上上面已经可以进行了一次判断,所以这里旧不重复再次执行判断来获取内容了
|
# 崩坏3应为奖励列表和签到信息在一起了,加上上面已经可以进行了一次判断,所以这里旧不重复再次执行判断来获取内容了
|
||||||
tools.log.info(f"舰长{i[0]}今天已经签到过了~")
|
log.info(f"舰长{i[0]}今天已经签到过了~")
|
||||||
else:
|
else:
|
||||||
tools.log.warning("账号签到失败!")
|
log.warning("账号签到失败!")
|
||||||
print(req.text)
|
print(req.text)
|
||||||
else:
|
else:
|
||||||
tools.log.warning("账号没有绑定任何崩坏3账号!")
|
log.warning("账号没有绑定任何崩坏3账号!")
|
||||||
|
|||||||
16
loghelper.py
Normal file
16
loghelper.py
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
import os
|
||||||
|
import logging
|
||||||
|
|
||||||
|
# Log输出,这里提供了自定义logging输出的机会,只需要创建一个logging.ini并且写入配置文件即可自定义输出
|
||||||
|
file_path = os.path.dirname(os.path.realpath(__file__)) + "/config/logging.ini"
|
||||||
|
if os.path.exists(file_path):
|
||||||
|
import logging.config
|
||||||
|
|
||||||
|
logging.config.fileConfig(file_path)
|
||||||
|
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
|
||||||
18
login.py
18
login.py
@ -1,15 +1,15 @@
|
|||||||
import config
|
import config
|
||||||
import request
|
import request
|
||||||
import setting
|
import setting
|
||||||
from tools import log
|
from loghelper import log
|
||||||
from error import cookieError
|
from error import CookieError
|
||||||
|
|
||||||
|
|
||||||
def login():
|
def login():
|
||||||
if config.mihoyobbs_Cookies == '':
|
if config.mihoyobbs_Cookies == '':
|
||||||
log.error("请填入Cookies!")
|
log.error("请填入Cookies!")
|
||||||
config.Clear_cookies()
|
config.clear_cookies()
|
||||||
raise cookieError('No cookie')
|
raise CookieError('No cookie')
|
||||||
# 判断Cookie里面是否有login_ticket 没有的话直接退了
|
# 判断Cookie里面是否有login_ticket 没有的话直接退了
|
||||||
if "login_ticket" in config.mihoyobbs_Cookies:
|
if "login_ticket" in config.mihoyobbs_Cookies:
|
||||||
temp_Cookies = config.mihoyobbs_Cookies.split(";")
|
temp_Cookies = config.mihoyobbs_Cookies.split(";")
|
||||||
@ -25,12 +25,12 @@ def login():
|
|||||||
config.mihoyobbs_Stoken = data["data"]["list"][0]["token"]
|
config.mihoyobbs_Stoken = data["data"]["list"][0]["token"]
|
||||||
log.info("登录成功!")
|
log.info("登录成功!")
|
||||||
log.info("正在保存Config!")
|
log.info("正在保存Config!")
|
||||||
config.Save_config()
|
config.save_config()
|
||||||
else:
|
else:
|
||||||
log.error("cookie已失效,请重新登录米游社抓取cookie")
|
log.error("cookie已失效,请重新登录米游社抓取cookie")
|
||||||
config.Clear_cookies()
|
config.clear_cookies()
|
||||||
raise cookieError('Cookie expires')
|
raise CookieError('Cookie expires')
|
||||||
else:
|
else:
|
||||||
log.error("cookie中没有'login_ticket'字段,请重新登录米游社,重新抓取cookie!")
|
log.error("cookie中没有'login_ticket'字段,请重新登录米游社,重新抓取cookie!")
|
||||||
config.Clear_cookies()
|
config.clear_cookies()
|
||||||
raise cookieError('Cookie lost login_ticket')
|
raise CookieError('Cookie lost login_ticket')
|
||||||
|
|||||||
39
main.py
39
main.py
@ -7,12 +7,13 @@ import genshin
|
|||||||
import setting
|
import setting
|
||||||
import mihoyobbs
|
import mihoyobbs
|
||||||
import honkai3rd
|
import honkai3rd
|
||||||
from error import cookieError
|
from loghelper import log
|
||||||
|
from error import CookieError
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
# 初始化,加载配置
|
# 初始化,加载配置
|
||||||
config.Load_config()
|
config.load_config()
|
||||||
if config.enable_Config:
|
if config.enable_Config:
|
||||||
# 检测参数是否齐全,如果缺少就进行登入操作
|
# 检测参数是否齐全,如果缺少就进行登入操作
|
||||||
if config.mihoyobbs_Login_ticket == "" or config.mihoyobbs_Stuid == "" or config.mihoyobbs_Stoken == "":
|
if config.mihoyobbs_Login_ticket == "" or config.mihoyobbs_Stuid == "" or config.mihoyobbs_Stoken == "":
|
||||||
@ -43,44 +44,44 @@ def main():
|
|||||||
bbs = mihoyobbs.mihoyobbs()
|
bbs = mihoyobbs.mihoyobbs()
|
||||||
if bbs.Task_do["bbs_Sign"] and bbs.Task_do["bbs_Read_posts"] and bbs.Task_do["bbs_Like_posts"] and \
|
if bbs.Task_do["bbs_Sign"] and bbs.Task_do["bbs_Read_posts"] and bbs.Task_do["bbs_Like_posts"] and \
|
||||||
bbs.Task_do["bbs_Share"]:
|
bbs.Task_do["bbs_Share"]:
|
||||||
tools.log.info(f"今天已经全部完成了!一共获得{mihoyobbs.Today_have_getcoins}个米游币,目前有{mihoyobbs.Have_coins}个米游币")
|
log.info(f"今天已经全部完成了!一共获得{mihoyobbs.Today_have_getcoins}个米游币,目前有{mihoyobbs.Have_coins}个米游币")
|
||||||
else:
|
else:
|
||||||
if config.mihoyobbs["bbs_Signin"]:
|
if config.mihoyobbs["bbs_Signin"]:
|
||||||
bbs.Signin()
|
bbs.signing()
|
||||||
if config.mihoyobbs["bbs_Read_posts"]:
|
if config.mihoyobbs["bbs_Read_posts"]:
|
||||||
bbs.Readposts()
|
bbs.read_posts()
|
||||||
if config.mihoyobbs["bbs_Like_posts"]:
|
if config.mihoyobbs["bbs_Like_posts"]:
|
||||||
bbs.Likeposts()
|
bbs.Likeposts()
|
||||||
if config.mihoyobbs["bbs_Share"]:
|
if config.mihoyobbs["bbs_Share"]:
|
||||||
bbs.Share()
|
bbs.share_post()
|
||||||
bbs.Get_taskslist()
|
bbs.Get_taskslist()
|
||||||
tools.log.info(
|
log.info(
|
||||||
f"今天已经获得{mihoyobbs.Today_have_getcoins}个米游币,还能获得{mihoyobbs.Today_getcoins}个米游币,目前有{mihoyobbs.Have_coins}个米游币")
|
f"今天已经获得{mihoyobbs.Today_have_getcoins}个米游币,还能获得{mihoyobbs.Today_getcoins}个米游币,目前有{mihoyobbs.Have_coins}个米游币")
|
||||||
time.sleep(random.randint(2, 8))
|
time.sleep(random.randint(2, 8))
|
||||||
else:
|
else:
|
||||||
tools.log.info("米游社功能未启用!")
|
log.info("米游社功能未启用!")
|
||||||
# 原神签到
|
# 原神签到
|
||||||
if config.genshin_Auto_sign:
|
if config.genshin_Auto_sign:
|
||||||
tools.log.info("正在进行原神签到")
|
log.info("正在进行原神签到")
|
||||||
genshin_Help = genshin.genshin()
|
genshin_help = genshin.Genshin()
|
||||||
genshin_Help.Sign_acc()
|
genshin_help.sign_account()
|
||||||
time.sleep(random.randint(2, 8))
|
time.sleep(random.randint(2, 8))
|
||||||
else:
|
else:
|
||||||
tools.log.info("原神签到功能未启用!")
|
log.info("原神签到功能未启用!")
|
||||||
# 崩坏3签到
|
# 崩坏3签到
|
||||||
if config.honkai3rd_Auto_sign:
|
if config.honkai3rd_Auto_sign:
|
||||||
tools.log.info("正在进行崩坏3签到")
|
log.info("正在进行崩坏3签到")
|
||||||
honkai3rd_Help = honkai3rd.honkai3rd()
|
honkai3rd_help = honkai3rd.honkai3rd()
|
||||||
honkai3rd_Help.Sign_acc()
|
honkai3rd_help.Sign_acc()
|
||||||
else:
|
else:
|
||||||
tools.log.info("崩坏3签到功能未启用!")
|
log.info("崩坏3签到功能未启用!")
|
||||||
else:
|
else:
|
||||||
tools.log.warning("Config未启用!")
|
log.warning("Config未启用!")
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
try:
|
try:
|
||||||
main()
|
main()
|
||||||
except cookieError:
|
except CookieError:
|
||||||
tools.log.error("账号Cookie有问题!")
|
log.error("账号Cookie有问题!")
|
||||||
pass
|
pass
|
||||||
|
|||||||
@ -2,51 +2,51 @@ import os
|
|||||||
import sys
|
import sys
|
||||||
import main
|
import main
|
||||||
import time
|
import time
|
||||||
import tools
|
|
||||||
import config
|
import config
|
||||||
import random
|
import random
|
||||||
import setting
|
import setting
|
||||||
from error import cookieError
|
from loghelper import log
|
||||||
|
from error import CookieError
|
||||||
|
|
||||||
|
|
||||||
# 搜索配置文件
|
# 搜索配置文件
|
||||||
def Fund_config() -> list:
|
def fund_config() -> list:
|
||||||
file_Name = []
|
file_name = []
|
||||||
for files in os.listdir(config.path):
|
for files in os.listdir(config.path):
|
||||||
if os.path.splitext(files)[1] == '.json':
|
if os.path.splitext(files)[1] == '.json':
|
||||||
file_Name.append(files)
|
file_name.append(files)
|
||||||
return file_Name
|
return file_name
|
||||||
|
|
||||||
|
|
||||||
def main_multi(autorun: bool):
|
def main_multi(autorun: bool):
|
||||||
tools.log.info("AutoMihoyoBBS Multi User mode")
|
log.info("AutoMihoyoBBS Multi User mode")
|
||||||
tools.log.info("正在搜索配置文件!")
|
log.info("正在搜索配置文件!")
|
||||||
config_List = Fund_config()
|
config_list = fund_config()
|
||||||
if len(config_List) == 0:
|
if len(config_list) == 0:
|
||||||
tools.log.warning("未检测到配置文件,请确认config文件夹存在.json后缀名的配置文件!")
|
log.warning("未检测到配置文件,请确认config文件夹存在.json后缀名的配置文件!")
|
||||||
exit(1)
|
exit(1)
|
||||||
if autorun:
|
if autorun:
|
||||||
tools.log.info(f"已搜索到{len(config_List)}个配置文件,正在开始执行!")
|
log.info(f"已搜索到{len(config_list)}个配置文件,正在开始执行!")
|
||||||
else:
|
else:
|
||||||
tools.log.info(f"已搜索到{len(config_List)}个配置文件,请确认是否无多余文件!\r\n{config_List}")
|
log.info(f"已搜索到{len(config_list)}个配置文件,请确认是否无多余文件!\r\n{config_list}")
|
||||||
try:
|
try:
|
||||||
input("请输入回车继续,需要重新搜索配置文件请Ctrl+C退出脚本")
|
input("请输入回车继续,需要重新搜索配置文件请Ctrl+C退出脚本")
|
||||||
except:
|
except:
|
||||||
exit(0)
|
exit(0)
|
||||||
results = {"ok":[],"error":[]}
|
results = {"ok": [], "error": []}
|
||||||
for i in iter(config_List):
|
for i in iter(config_list):
|
||||||
tools.log.info(f"正在执行{i}")
|
log.info(f"正在执行{i}")
|
||||||
setting.mihoyobbs_List_Use = []
|
setting.mihoyobbs_List_Use = []
|
||||||
config.config_Path = f"{config.path}/{i}"
|
config.config_Path = f"{config.path}/{i}"
|
||||||
try:
|
try:
|
||||||
main.main()
|
main.main()
|
||||||
except cookieError:
|
except CookieError:
|
||||||
results["error"].append(i)
|
results["error"].append(i)
|
||||||
else:
|
else:
|
||||||
results["ok"].append(i)
|
results["ok"].append(i)
|
||||||
tools.log.info(f"{i}执行完毕")
|
log.info(f"{i}执行完毕")
|
||||||
time.sleep(random.randint(3, 10))
|
time.sleep(random.randint(3, 10))
|
||||||
tools.log.info(f'脚本执行完毕,共执行{len(config_List)}个配置文件,成功{len(results["ok"])}个,失败{len(results["error"])}个')
|
log.info(f'脚本执行完毕,共执行{len(config_list)}个配置文件,成功{len(results["ok"])}个,失败{len(results["error"])}个')
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
|||||||
73
mihoyobbs.py
73
mihoyobbs.py
@ -4,7 +4,8 @@ import config
|
|||||||
import random
|
import random
|
||||||
import setting
|
import setting
|
||||||
from request import http
|
from request import http
|
||||||
from error import cookieError
|
from loghelper import log
|
||||||
|
from error import CookieError
|
||||||
|
|
||||||
|
|
||||||
Today_getcoins = 0
|
Today_getcoins = 0
|
||||||
@ -15,14 +16,14 @@ Have_coins = 0
|
|||||||
class mihoyobbs:
|
class mihoyobbs:
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.headers = {
|
self.headers = {
|
||||||
"DS": tools.Get_ds(web=False, web_old=False),
|
"DS": tools.get_ds(web=False, web_old=False),
|
||||||
"cookie": f"stuid={config.mihoyobbs_Stuid};stoken={config.mihoyobbs_Stoken}",
|
"cookie": f"stuid={config.mihoyobbs_Stuid};stoken={config.mihoyobbs_Stoken}",
|
||||||
"x-rpc-client_type": setting.mihoyobbs_Client_type,
|
"x-rpc-client_type": setting.mihoyobbs_Client_type,
|
||||||
"x-rpc-app_version": setting.mihoyobbs_Version,
|
"x-rpc-app_version": setting.mihoyobbs_Version,
|
||||||
"x-rpc-sys_version": "6.0.1",
|
"x-rpc-sys_version": "6.0.1",
|
||||||
"x-rpc-channel": "mihoyo",
|
"x-rpc-channel": "mihoyo",
|
||||||
"x-rpc-device_id": tools.Get_deviceid(),
|
"x-rpc-device_id": tools.get_device_id(),
|
||||||
"x-rpc-device_name": tools.Random_text(random.randint(1, 10)),
|
"x-rpc-device_name": tools.random_text(random.randint(1, 10)),
|
||||||
"x-rpc-device_model": "Mi 10",
|
"x-rpc-device_model": "Mi 10",
|
||||||
"Referer": "https://app.mihoyo.com",
|
"Referer": "https://app.mihoyo.com",
|
||||||
"Host": "bbs-api.mihoyo.com",
|
"Host": "bbs-api.mihoyo.com",
|
||||||
@ -41,20 +42,20 @@ class mihoyobbs:
|
|||||||
if self.Task_do["bbs_Read_posts"] and self.Task_do["bbs_Like_posts"] and self.Task_do["bbs_Share"]:
|
if self.Task_do["bbs_Read_posts"] and self.Task_do["bbs_Like_posts"] and self.Task_do["bbs_Share"]:
|
||||||
pass
|
pass
|
||||||
else:
|
else:
|
||||||
self.postsList = self.Getlist()
|
self.postsList = self.get_list()
|
||||||
|
|
||||||
# 获取任务列表,用来判断做了哪些任务
|
# 获取任务列表,用来判断做了哪些任务
|
||||||
def Get_taskslist(self):
|
def Get_taskslist(self):
|
||||||
global Today_getcoins
|
global Today_getcoins
|
||||||
global Today_have_getcoins
|
global Today_have_getcoins
|
||||||
global Have_coins
|
global Have_coins
|
||||||
tools.log.info("正在获取任务列表")
|
log.info("正在获取任务列表")
|
||||||
req = http.get(url=setting.bbs_Taskslist, headers=self.headers)
|
req = http.get(url=setting.bbs_Taskslist, headers=self.headers)
|
||||||
data = req.json()
|
data = req.json()
|
||||||
if "err" in data["message"] or data["retcode"] == -100:
|
if "err" in data["message"] or data["retcode"] == -100:
|
||||||
tools.log.error("获取任务列表失败,你的cookie可能已过期,请重新设置cookie。")
|
log.error("获取任务列表失败,你的cookie可能已过期,请重新设置cookie。")
|
||||||
config.Clear_cookies()
|
config.clear_cookies()
|
||||||
raise cookieError('Cookie expires')
|
raise CookieError('Cookie expires')
|
||||||
else:
|
else:
|
||||||
Today_getcoins = data["data"]["can_get_points"]
|
Today_getcoins = data["data"]["can_get_points"]
|
||||||
Today_have_getcoins = data["data"]["already_received_points"]
|
Today_have_getcoins = data["data"]["already_received_points"]
|
||||||
@ -68,10 +69,10 @@ class mihoyobbs:
|
|||||||
else:
|
else:
|
||||||
# 如果第0个大于或等于62则直接判定任务没做
|
# 如果第0个大于或等于62则直接判定任务没做
|
||||||
if data["data"]["states"][0]["mission_id"] >= 62:
|
if data["data"]["states"][0]["mission_id"] >= 62:
|
||||||
tools.log.info(f"新的一天,今天可以获得{Today_getcoins}个米游币")
|
log.info(f"新的一天,今天可以获得{Today_getcoins}个米游币")
|
||||||
pass
|
pass
|
||||||
else:
|
else:
|
||||||
tools.log.info(f"似乎还有任务没完成,今天还能获得{Today_getcoins}")
|
log.info(f"似乎还有任务没完成,今天还能获得{Today_getcoins}")
|
||||||
for i in data["data"]["states"]:
|
for i in data["data"]["states"]:
|
||||||
# 58是讨论区签到
|
# 58是讨论区签到
|
||||||
if i["mission_id"] == 58:
|
if i["mission_id"] == 58:
|
||||||
@ -97,58 +98,58 @@ class mihoyobbs:
|
|||||||
break
|
break
|
||||||
|
|
||||||
# 获取要帖子列表
|
# 获取要帖子列表
|
||||||
def Getlist(self) -> list:
|
def get_list(self) -> list:
|
||||||
temp_List = []
|
temp_list = []
|
||||||
tools.log.info("正在获取帖子列表......")
|
log.info("正在获取帖子列表......")
|
||||||
req = http.get(url=setting.bbs_Listurl.format(setting.mihoyobbs_List_Use[0]["forumId"]), headers=self.headers)
|
req = http.get(url=setting.bbs_Listurl.format(setting.mihoyobbs_List_Use[0]["forumId"]), headers=self.headers)
|
||||||
data = req.json()
|
data = req.json()
|
||||||
for n in range(5):
|
for n in range(5):
|
||||||
temp_List.append([data["data"]["list"][n]["post"]["post_id"], data["data"]["list"][n]["post"]["subject"]])
|
temp_list.append([data["data"]["list"][n]["post"]["post_id"], data["data"]["list"][n]["post"]["subject"]])
|
||||||
tools.log.info("已获取{}个帖子".format(len(temp_List)))
|
log.info("已获取{}个帖子".format(len(temp_list)))
|
||||||
return temp_List
|
return temp_list
|
||||||
|
|
||||||
# 进行签到操作
|
# 进行签到操作
|
||||||
def Signin(self):
|
def signing(self):
|
||||||
if self.Task_do["bbs_Sign"]:
|
if self.Task_do["bbs_Sign"]:
|
||||||
tools.log.info("讨论区任务已经完成过了~")
|
log.info("讨论区任务已经完成过了~")
|
||||||
else:
|
else:
|
||||||
tools.log.info("正在签到......")
|
log.info("正在签到......")
|
||||||
for i in setting.mihoyobbs_List_Use:
|
for i in setting.mihoyobbs_List_Use:
|
||||||
req = http.post(url=setting.bbs_Signurl.format(i["id"]), data={}, headers=self.headers)
|
req = http.post(url=setting.bbs_Signurl.format(i["id"]), data={}, headers=self.headers)
|
||||||
data = req.json()
|
data = req.json()
|
||||||
if "err" not in data["message"]:
|
if "err" not in data["message"]:
|
||||||
tools.log.info(str(i["name"] + data["message"]))
|
log.info(str(i["name"] + data["message"]))
|
||||||
time.sleep(random.randint(2, 8))
|
time.sleep(random.randint(2, 8))
|
||||||
else:
|
else:
|
||||||
tools.log.error("签到失败,你的cookie可能已过期,请重新设置cookie。")
|
log.error("签到失败,你的cookie可能已过期,请重新设置cookie。")
|
||||||
config.Clear_cookies()
|
config.clear_cookies()
|
||||||
raise cookieError('Cookie expires')
|
raise CookieError('Cookie expires')
|
||||||
|
|
||||||
# 看帖子
|
# 看帖子
|
||||||
def Readposts(self):
|
def read_posts(self):
|
||||||
if self.Task_do["bbs_Read_posts"]:
|
if self.Task_do["bbs_Read_posts"]:
|
||||||
tools.log.info("看帖任务已经完成过了~")
|
log.info("看帖任务已经完成过了~")
|
||||||
else:
|
else:
|
||||||
tools.log.info("正在看帖......")
|
log.info("正在看帖......")
|
||||||
for i in range(self.Task_do["bbs_Read_posts_num"]):
|
for i in range(self.Task_do["bbs_Read_posts_num"]):
|
||||||
req = http.get(url=setting.bbs_Detailurl.format(self.postsList[i][0]), headers=self.headers)
|
req = http.get(url=setting.bbs_Detailurl.format(self.postsList[i][0]), headers=self.headers)
|
||||||
data = req.json()
|
data = req.json()
|
||||||
if data["message"] == "OK":
|
if data["message"] == "OK":
|
||||||
tools.log.info("看帖:{} 成功".format(self.postsList[i][1]))
|
log.info("看帖:{} 成功".format(self.postsList[i][1]))
|
||||||
time.sleep(random.randint(2, 8))
|
time.sleep(random.randint(2, 8))
|
||||||
|
|
||||||
# 点赞
|
# 点赞
|
||||||
def Likeposts(self):
|
def Likeposts(self):
|
||||||
if self.Task_do["bbs_Like_posts"]:
|
if self.Task_do["bbs_Like_posts"]:
|
||||||
tools.log.info("点赞任务已经完成过了~")
|
log.info("点赞任务已经完成过了~")
|
||||||
else:
|
else:
|
||||||
tools.log.info("正在点赞......")
|
log.info("正在点赞......")
|
||||||
for i in range(self.Task_do["bbs_Like_posts_num"]):
|
for i in range(self.Task_do["bbs_Like_posts_num"]):
|
||||||
req = http.post(url=setting.bbs_Likeurl, headers=self.headers,
|
req = http.post(url=setting.bbs_Likeurl, headers=self.headers,
|
||||||
json={"post_id": self.postsList[i][0], "is_cancel": False})
|
json={"post_id": self.postsList[i][0], "is_cancel": False})
|
||||||
data = req.json()
|
data = req.json()
|
||||||
if data["message"] == "OK":
|
if data["message"] == "OK":
|
||||||
tools.log.info("点赞:{} 成功".format(self.postsList[i][1]))
|
log.info("点赞:{} 成功".format(self.postsList[i][1]))
|
||||||
# 判断取消点赞是否打开
|
# 判断取消点赞是否打开
|
||||||
if config.mihoyobbs["bbs_Unlike"]:
|
if config.mihoyobbs["bbs_Unlike"]:
|
||||||
time.sleep(random.randint(2, 8))
|
time.sleep(random.randint(2, 8))
|
||||||
@ -156,18 +157,18 @@ class mihoyobbs:
|
|||||||
json={"post_id": self.postsList[i][0], "is_cancel": True})
|
json={"post_id": self.postsList[i][0], "is_cancel": True})
|
||||||
data = req.json()
|
data = req.json()
|
||||||
if data["message"] == "OK":
|
if data["message"] == "OK":
|
||||||
tools.log.info("取消点赞:{} 成功".format(self.postsList[i][1]))
|
log.info("取消点赞:{} 成功".format(self.postsList[i][1]))
|
||||||
time.sleep(random.randint(2, 8))
|
time.sleep(random.randint(2, 8))
|
||||||
|
|
||||||
# 分享操作
|
# 分享操作
|
||||||
|
|
||||||
def Share(self):
|
def share_post(self):
|
||||||
if self.Task_do["bbs_Share"]:
|
if self.Task_do["bbs_Share"]:
|
||||||
tools.log.info("分享任务已经完成过了~")
|
log.info("分享任务已经完成过了~")
|
||||||
else:
|
else:
|
||||||
tools.log.info("正在分享......")
|
log.info("正在分享......")
|
||||||
req = http.get(url=setting.bbs_Shareurl.format(self.postsList[0][0]), headers=self.headers)
|
req = http.get(url=setting.bbs_Shareurl.format(self.postsList[0][0]), headers=self.headers)
|
||||||
data = req.json()
|
data = req.json()
|
||||||
if data["message"] == "OK":
|
if data["message"] == "OK":
|
||||||
tools.log.info("分享:{} 成功".format(self.postsList[0][1]))
|
log.info("分享:{} 成功".format(self.postsList[0][1]))
|
||||||
time.sleep(random.randint(2, 8))
|
time.sleep(random.randint(2, 8))
|
||||||
|
|||||||
@ -5,7 +5,7 @@ try:
|
|||||||
http = httpx.Client(timeout=10, transport=httpx.HTTPTransport(retries=5))
|
http = httpx.Client(timeout=10, transport=httpx.HTTPTransport(retries=5))
|
||||||
# 当openssl版本小于1.0.2的时候直接进行一个空请求让httpx报错
|
# 当openssl版本小于1.0.2的时候直接进行一个空请求让httpx报错
|
||||||
import tools
|
import tools
|
||||||
if tools.Get_openssl_Version() <= 102:
|
if tools.get_openssl_version() <= 102:
|
||||||
httpx.get()
|
httpx.get()
|
||||||
except:
|
except:
|
||||||
import requests
|
import requests
|
||||||
|
|||||||
48
tools.py
48
tools.py
@ -1,46 +1,31 @@
|
|||||||
import os
|
|
||||||
import uuid
|
import uuid
|
||||||
import time
|
import time
|
||||||
import config
|
import config
|
||||||
import random
|
import random
|
||||||
import string
|
import string
|
||||||
import logging
|
|
||||||
import hashlib
|
import hashlib
|
||||||
import setting
|
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计算
|
# md5计算
|
||||||
def MD5(text: str) -> str:
|
def md5(text: str) -> str:
|
||||||
md5 = hashlib.md5()
|
md5 = hashlib.md5()
|
||||||
md5.update(text.encode())
|
md5.update(text.encode())
|
||||||
return md5.hexdigest()
|
return md5.hexdigest()
|
||||||
|
|
||||||
|
|
||||||
# 随机文本
|
# 随机文本
|
||||||
def Random_text(num: int) -> str:
|
def random_text(num: int) -> str:
|
||||||
return ''.join(random.sample(string.ascii_lowercase + string.digits, num))
|
return ''.join(random.sample(string.ascii_lowercase + string.digits, num))
|
||||||
|
|
||||||
|
|
||||||
# 时间戳
|
# 时间戳
|
||||||
def Timestamp() -> int:
|
def timestamp() -> int:
|
||||||
return int(time.time())
|
return int(time.time())
|
||||||
|
|
||||||
|
|
||||||
# 获取请求Header里的DS 当web为true则生成网页端的DS
|
# 获取请求Header里的DS 当web为true则生成网页端的DS
|
||||||
def Get_ds(web: bool, web_old: bool) -> str:
|
def get_ds(web: bool, web_old: bool) -> str:
|
||||||
if web:
|
if web:
|
||||||
if web_old:
|
if web_old:
|
||||||
n = setting.mihoyobbs_Salt_web_old
|
n = setting.mihoyobbs_Salt_web_old
|
||||||
@ -48,40 +33,41 @@ def Get_ds(web: bool, web_old: bool) -> str:
|
|||||||
n = setting.mihoyobbs_Salt_web
|
n = setting.mihoyobbs_Salt_web
|
||||||
else:
|
else:
|
||||||
n = setting.mihoyobbs_Salt
|
n = setting.mihoyobbs_Salt
|
||||||
i = str(Timestamp())
|
i = str(timestamp())
|
||||||
r = Random_text(6)
|
r = random_text(6)
|
||||||
c = MD5("salt=" + n + "&t=" + i + "&r=" + r)
|
c = md5("salt=" + n + "&t=" + i + "&r=" + r)
|
||||||
return f"{i},{r},{c}"
|
return f"{i},{r},{c}"
|
||||||
|
|
||||||
|
|
||||||
# 生成一个device id
|
# 生成一个device id
|
||||||
def Get_deviceid() -> str:
|
def get_device_id() -> str:
|
||||||
return str(uuid.uuid3(uuid.NAMESPACE_URL, config.mihoyobbs_Cookies)).replace(
|
return str(uuid.uuid3(uuid.NAMESPACE_URL, config.mihoyobbs_Cookies)).replace(
|
||||||
'-', '').upper()
|
'-', '').upper()
|
||||||
|
|
||||||
|
|
||||||
# 获取签到的奖励名称
|
# 获取签到的奖励名称
|
||||||
def Get_item(raw_data: dict) -> str:
|
def get_item(raw_data: dict) -> str:
|
||||||
temp_Name = raw_data["name"]
|
temp_name = raw_data["name"]
|
||||||
temp_Cnt = raw_data["cnt"]
|
temp_cnt = raw_data["cnt"]
|
||||||
return f"{temp_Name}x{temp_Cnt}"
|
return f"{temp_name}x{temp_cnt}"
|
||||||
|
|
||||||
|
|
||||||
# 获取明天早晨0点的时间戳
|
# 获取明天早晨0点的时间戳
|
||||||
def Nextday() -> int:
|
def nextday() -> int:
|
||||||
now_time = int(time.time())
|
now_time = int(time.time())
|
||||||
nextday_time = now_time - now_time % 86400 + time.timezone + 86400
|
nextday_time = now_time - now_time % 86400 + time.timezone + 86400
|
||||||
return nextday_time
|
return nextday_time
|
||||||
|
|
||||||
|
|
||||||
# 获取Openssl版本
|
# 获取Openssl版本
|
||||||
def Get_openssl_Version() -> int:
|
def get_openssl_version() -> int:
|
||||||
try:
|
try:
|
||||||
import ssl
|
import ssl
|
||||||
except ImportError:
|
except ImportError:
|
||||||
|
from loghelper import log
|
||||||
log.error("Openssl Lib Error !!")
|
log.error("Openssl Lib Error !!")
|
||||||
# return -99
|
# return -99
|
||||||
# 建议直接更新Python的版本,有特殊情况请提交issues
|
# 建议直接更新Python的版本,有特殊情况请提交issues
|
||||||
exit(-1)
|
exit(-1)
|
||||||
temp_List = ssl.OPENSSL_VERSION_INFO
|
temp_list = ssl.OPENSSL_VERSION_INFO
|
||||||
return int(f"{str(temp_List[0])}{str(temp_List[1])}{str(temp_List[2])}")
|
return int(f"{str(temp_list[0])}{str(temp_list[1])}{str(temp_list[2])}")
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user