mirror of
https://github.com/TDSCDMAA/AutoMihoyoBBS.git
synced 2026-06-02 18:43:42 +08:00
开始以v5版本进行配置文件加载(未正式启用v5版本)
This commit is contained in:
parent
e9749386f5
commit
f455a56ecd
@ -18,12 +18,12 @@ def stop_module(game_id: str) -> None:
|
||||
# 崩坏2功能敬请期待
|
||||
pass
|
||||
elif game_id == "bh3_cn":
|
||||
config.honkai3rd_Auto_sign = False
|
||||
config.config["games"]["cn"]["honkai3rd"] = False
|
||||
elif game_id == "nxx_cn":
|
||||
# 未定好像没米游社签到
|
||||
pass
|
||||
elif game_id == "hk4e_cn":
|
||||
config.genshin_Auto_sign = False
|
||||
config.config["games"]["cn"]["genshin"] = False
|
||||
else:
|
||||
raise NameError
|
||||
config.save_config()
|
||||
|
||||
86
config.py
86
config.py
@ -5,69 +5,47 @@ from loghelper import log
|
||||
# 这个字段现在还没找好塞什么地方好,就先塞config这里了
|
||||
serverless = False
|
||||
|
||||
# 是否启用config
|
||||
enable = True
|
||||
# 这里的内容会自动获取
|
||||
login_ticket = ""
|
||||
stuid = ""
|
||||
stoken = ""
|
||||
# 这里是米游社的cookie
|
||||
cookies = ""
|
||||
# 这个dist里面的内容和米游社有关
|
||||
mihoyobbs = {
|
||||
# 全局开关,关闭之后下面的都不执行
|
||||
"bbs_Global": True,
|
||||
# 讨论区签到
|
||||
"bbs_Signin": True,
|
||||
# 多个讨论区签到
|
||||
"bbs_Signin_multi": True,
|
||||
# 指定签到讨论区
|
||||
# 1是崩坏3 2是原神 3是崩坏2 4是未定事件簿 5是大别墅
|
||||
# 可以通过设置讨论区的id位置来设置主讨论区,[5,1]就是大别墅为主社区
|
||||
# 看帖子 点赞 分享帖子都是使用主社区获取到的列表
|
||||
"bbs_Signin_multi_list": [],
|
||||
# 浏览3个帖子
|
||||
"bbs_Read_posts": True,
|
||||
# 完成5次点赞
|
||||
"bbs_Like_posts": True,
|
||||
# 完成后取消点赞
|
||||
"bbs_Unlike": True,
|
||||
# 分享帖子
|
||||
"bbs_Share": True,
|
||||
}
|
||||
# 原神自动签到
|
||||
genshin_Auto_sign = True
|
||||
# 崩坏3自动签到
|
||||
honkai3rd_Auto_sign = True
|
||||
v5_config = '{"enable":false,"version":5,"account":{"cookie":"","login_ticket":"","stuid":"","stoken":""},"mihoyobbs":{' \
|
||||
'"enable":true,"checkin":true,"checkin_multi":true,"checkin_multi_list":[2,5],"read_posts":true,' \
|
||||
'"like_posts":true,"un_like":true,"share_post":true},"games":{"cn":{"enable":true,"hokai2":{' \
|
||||
'"auto_checkin":false,"black_list":[]},"honkai3rd":{"auto_checkin":false,"black_list":[]},' \
|
||||
'"tears_of_themis":{"auto_checkin":false,"black_list":[]},"genshin":{"auto_checkin":false,"black_list":[' \
|
||||
']}},"os":{"enable":false,"cookie":"","genshin":{"auto_checkin":false,"black_list":[]}}}} '
|
||||
config = json.loads(v5_config)
|
||||
|
||||
path = os.path.dirname(os.path.realpath(__file__)) + "/config"
|
||||
config_Path = f"{path}/config.json"
|
||||
|
||||
|
||||
def load_v4(data: dict):
|
||||
global enable
|
||||
global login_ticket
|
||||
global stuid
|
||||
global stoken
|
||||
global cookies
|
||||
global mihoyobbs
|
||||
global genshin_Auto_sign
|
||||
global honkai3rd_Auto_sign
|
||||
enable = data["enable_Config"]
|
||||
login_ticket = data["mihoyobbs_Login_ticket"]
|
||||
stuid = data["mihoyobbs_Stuid"]
|
||||
stoken = data["mihoyobbs_Stoken"]
|
||||
cookies = data["mihoyobbs_Cookies"]
|
||||
mihoyobbs = data["mihoyobbs"]
|
||||
genshin_Auto_sign = data["genshin_Auto_sign"]
|
||||
honkai3rd_Auto_sign = data["honkai3rd_Auto_sign"]
|
||||
global config
|
||||
# 配置开关
|
||||
config["enable"] = data["enable_Config"]
|
||||
# 账号 cookie
|
||||
config["account"]["login_ticket"] = data["mihoyobbs_Login_ticket"]
|
||||
config["account"]["stuid"] = data["mihoyobbs_Stuid"]
|
||||
config["account"]["stoken"] = data["mihoyobbs_Stoken"]
|
||||
config["account"]["cookie"] = data["mihoyobbs_Cookies"]
|
||||
# bbs 相关设置(自己之前造的孽)
|
||||
config["mihoyobbs"]["enable"] = data["mihoyobbs"]["bbs_Global"]
|
||||
config["mihoyobbs"]["checkin"] = data["mihoyobbs"]["bbs_Signin"]
|
||||
config["mihoyobbs"]["checkin_multi"] = data["mihoyobbs"]["bbs_Signin_multi"]
|
||||
config["mihoyobbs"]["checkin_multi_list"] = data["mihoyobbs"]["bbs_Signin_multi_list"]
|
||||
config["mihoyobbs"]["read_post"] = data["mihoyobbs"]["bbs_Read_posts"]
|
||||
config["mihoyobbs"]["like_post"] = data["mihoyobbs"]["bbs_Like_posts"]
|
||||
config["mihoyobbs"]["un_like"] = data["mihoyobbs"]["bbs_Unlike"]
|
||||
config["mihoyobbs"]["share_post"] = data["mihoyobbs"]["bbs_Share"]
|
||||
# 游戏相关设置 v4只支持原神和崩坏3,所以其他选项默认关闭
|
||||
config["games"]["cn"]["genshin"] = data["genshin_Auto_sign"]
|
||||
config["games"]["cn"]["honkai3rd"] = data["honkai3rd_Auto_sign"]
|
||||
|
||||
|
||||
def load_config():
|
||||
global config
|
||||
with open(config_Path, "r") as f:
|
||||
data = json.load(f)
|
||||
if data.get('version') == 5:
|
||||
pass
|
||||
config = data
|
||||
else:
|
||||
load_v4(data)
|
||||
f.close()
|
||||
@ -81,9 +59,9 @@ def save_config():
|
||||
return None
|
||||
with open(config_Path, "r+") as f:
|
||||
data = json.load(f)
|
||||
data["mihoyobbs_Login_ticket"] = login_ticket
|
||||
data["mihoyobbs_Stuid"] = stuid
|
||||
data["mihoyobbs_Stoken"] = stoken
|
||||
data["mihoyobbs_Login_ticket"] = config["account"]["login_ticket"]
|
||||
data["mihoyobbs_Stuid"] = config["account"]["stuid"]
|
||||
data["mihoyobbs_Stoken"] = config["account"]["stoken"]
|
||||
temp_text = json.dumps(data, sort_keys=False, indent=4, separators=(', ', ': '))
|
||||
try:
|
||||
f.seek(0)
|
||||
|
||||
@ -24,7 +24,7 @@ class Genshin:
|
||||
'Accept-Encoding': 'gzip, deflate',
|
||||
'Accept-Language': 'zh-CN,en-US;q=0.8',
|
||||
'X-Requested-With': 'com.mihoyo.hyperion',
|
||||
"Cookie": config.cookies,
|
||||
"Cookie": config.config["account"]["cookie"],
|
||||
'x-rpc-device_id': tools.get_device_id()
|
||||
}
|
||||
self.acc_List = get_account_list("hk4e_cn", self.headers)
|
||||
@ -48,7 +48,7 @@ class Genshin:
|
||||
if data["retcode"] != 0:
|
||||
log.warning("获取账号签到信息失败!")
|
||||
print(req.text)
|
||||
config.genshin_Auto_sign = False
|
||||
config.config["games"]["cn"]["genshin"] = False
|
||||
config.save_config()
|
||||
raise CookieError("BBS Cookie Errror")
|
||||
return data["data"]
|
||||
|
||||
@ -25,7 +25,7 @@ class Honkai2:
|
||||
'Accept-Encoding': 'gzip, deflate',
|
||||
'Accept-Language': 'zh-CN,en-US;q=0.8',
|
||||
'X-Requested-With': 'com.mihoyo.hyperion',
|
||||
"Cookie": config.cookies,
|
||||
"Cookie": config.config["account"]["cookie"],
|
||||
'x-rpc-device_id': tools.get_device_id()
|
||||
}
|
||||
self.acc_List = get_account_list("bh2_cn", self.headers)
|
||||
|
||||
@ -24,7 +24,7 @@ class Honkai3rd:
|
||||
'Accept-Encoding': 'gzip, deflate',
|
||||
'Accept-Language': 'zh-CN,en-US;q=0.8',
|
||||
'X-Requested-With': 'com.mihoyo.hyperion',
|
||||
"Cookie": config.cookies,
|
||||
"Cookie": config.config["account"]["cookie"],
|
||||
'x-rpc-device_id': tools.get_device_id()
|
||||
}
|
||||
self.acc_List = get_account_list("bh3_cn", self.headers)
|
||||
|
||||
16
login.py
16
login.py
@ -6,24 +6,24 @@ from error import CookieError
|
||||
|
||||
|
||||
def login():
|
||||
if config.cookies == '':
|
||||
if config.config["account"]["cookie"] == '':
|
||||
log.error("请填入Cookies!")
|
||||
config.clear_cookies()
|
||||
raise CookieError('No cookie')
|
||||
# 判断Cookie里面是否有login_ticket 没有的话直接退了
|
||||
if "login_ticket" in config.cookies:
|
||||
temp_cookies = config.cookies.split(";")
|
||||
if "login_ticket" in config.config["account"]["cookie"]:
|
||||
temp_cookies = config.config["account"]["cookie"].split(";")
|
||||
for i in temp_cookies:
|
||||
if i.split("=")[0] == " login_ticket":
|
||||
config.login_ticket = i.split("=")[1]
|
||||
config.config["account"]["login_ticket"] = i.split("=")[1]
|
||||
break
|
||||
# 这里获取Stuid,但是实际是可以直接拿cookie里面的Uid
|
||||
data = http.get(url=setting.bbs_Cookie_url.format(config.login_ticket)).json()
|
||||
data = http.get(url=setting.bbs_Cookie_url.format(config.config["account"]["login_ticket"])).json()
|
||||
if "成功" in data["data"]["msg"]:
|
||||
config.stuid = str(data["data"]["cookie_info"]["account_id"])
|
||||
config.config["account"]["stuid"] = str(data["data"]["cookie_info"]["account_id"])
|
||||
data = http.get(url=setting.bbs_Cookie_url2.format(
|
||||
config.login_ticket, config.stuid)).json()
|
||||
config.stoken = data["data"]["list"][0]["token"]
|
||||
config.config["account"]["login_ticket"], config.config["account"]["stuid"])).json()
|
||||
config.config["account"]["stoken"] = data["data"]["list"][0]["token"]
|
||||
log.info("登录成功!")
|
||||
log.info("正在保存Config!")
|
||||
config.save_config()
|
||||
|
||||
26
main.py
26
main.py
@ -15,17 +15,17 @@ def main():
|
||||
# 初始化,加载配置
|
||||
return_data = "\n米游社: "
|
||||
config.load_config()
|
||||
if config.enable:
|
||||
if config.config["enable"]:
|
||||
# 检测参数是否齐全,如果缺少就进行登入操作
|
||||
if config.login_ticket == "" or config.stuid == "" or config.stoken == "":
|
||||
if config.config["account"]["login_ticket"] == "" or config.config["account"]["stuid"] == "" or config.config["account"]["stoken"] == "":
|
||||
# 登入,如果没开启bbs全局没打开就无需进行登入操作
|
||||
if config.mihoyobbs["bbs_Global"]:
|
||||
if config.config["mihoyobbs"]["enable"] :
|
||||
login.login()
|
||||
time.sleep(random.randint(2, 8))
|
||||
# 获取要使用的BBS列表,#判断是否开启bbs_Signin_multi
|
||||
if config.mihoyobbs["bbs_Signin_multi"]:
|
||||
if config.config["mihoyobbs"]["checkin_multi"] :
|
||||
# 用这里的方案可以实现当让id在第一个的时候为主社区
|
||||
for i in config.mihoyobbs["bbs_Signin_multi_list"]:
|
||||
for i in config.config["mihoyobbs"]["checkin_multi_list"] :
|
||||
for i2 in setting.mihoyobbs_List:
|
||||
if i == int(i2["id"]):
|
||||
setting.mihoyobbs_List_Use.append(i2)
|
||||
@ -35,7 +35,7 @@ def main():
|
||||
if int(i["id"]) == 5:
|
||||
setting.mihoyobbs_List_Use.append(i)
|
||||
# 米游社签到
|
||||
if config.mihoyobbs["bbs_Global"]:
|
||||
if config.config["mihoyobbs"]["enable"] :
|
||||
bbs = mihoyobbs.Mihoyobbs()
|
||||
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"]:
|
||||
@ -47,13 +47,13 @@ def main():
|
||||
while mihoyobbs.today_get_coins != 0 and i < 3:
|
||||
if i > 0:
|
||||
bbs.refresh_list()
|
||||
if config.mihoyobbs["bbs_Signin"]:
|
||||
if config.config["mihoyobbs"]["checkin"] :
|
||||
bbs.signing()
|
||||
if config.mihoyobbs["bbs_Read_posts"]:
|
||||
if config.config["mihoyobbs"]["read_post"] :
|
||||
bbs.read_posts()
|
||||
if config.mihoyobbs["bbs_Like_posts"]:
|
||||
if config.config["mihoyobbs"]["like_post"] :
|
||||
bbs.like_posts()
|
||||
if config.mihoyobbs["bbs_Share"]:
|
||||
if config.config["mihoyobbs"]["share_post"] :
|
||||
bbs.share_post()
|
||||
bbs.get_tasks_list()
|
||||
i += 1
|
||||
@ -66,7 +66,7 @@ def main():
|
||||
return_data += "\n" + "米游社功能未启用!"
|
||||
log.info("米游社功能未启用!")
|
||||
# 原神签到
|
||||
if config.genshin_Auto_sign:
|
||||
if config.config["games"]["cn"]["genshin"]:
|
||||
log.info("正在进行原神签到")
|
||||
genshin_help = genshin.Genshin()
|
||||
return_data += "\n\n" + genshin_help.sign_account()
|
||||
@ -74,14 +74,14 @@ def main():
|
||||
else:
|
||||
log.info("原神签到功能未启用!")
|
||||
# 崩坏3签到
|
||||
if config.honkai3rd_Auto_sign:
|
||||
if config.config["games"]["cn"]["honkai3rd"]:
|
||||
log.info("正在进行崩坏3签到")
|
||||
honkai3rd_help = honkai3rd.Honkai3rd()
|
||||
return_data += "\n\n" + honkai3rd_help.sign_account()
|
||||
else:
|
||||
log.info("崩坏3签到功能未启用!")
|
||||
return 0, return_data
|
||||
elif config.cookies == "CookieError":
|
||||
elif config.config["account"]["cookie"] == "CookieError":
|
||||
raise CookieError('Cookie expires')
|
||||
else:
|
||||
log.warning("Config未启用!")
|
||||
|
||||
@ -16,7 +16,7 @@ class Mihoyobbs:
|
||||
def __init__(self):
|
||||
self.headers = {
|
||||
"DS": tools.get_ds(web=False, web_old=False),
|
||||
"cookie": f"stuid={config.stuid};stoken={config.stoken}",
|
||||
"cookie": f'stuid={config.config["account"]["stuid"]};stoken={config.config["account"]["stoken"]}',
|
||||
"x-rpc-client_type": setting.mihoyobbs_Client_type,
|
||||
"x-rpc-app_version": setting.mihoyobbs_Version,
|
||||
"x-rpc-sys_version": "6.0.1",
|
||||
@ -159,7 +159,7 @@ class Mihoyobbs:
|
||||
if data["message"] == "OK":
|
||||
log.debug("点赞:{} 成功".format(self.postsList[i][1]))
|
||||
# 判断取消点赞是否打开
|
||||
if config.mihoyobbs["bbs_Unlike"]:
|
||||
if config.config["mihoyobbs"]["un_like"] :
|
||||
time.sleep(random.randint(2, 8))
|
||||
req = http.post(url=setting.bbs_Like_url, headers=self.headers,
|
||||
json={"post_id": self.postsList[i][0], "is_cancel": True})
|
||||
|
||||
Loading…
Reference in New Issue
Block a user