增加重试

This commit is contained in:
Womsxd 2022-04-23 09:35:26 +08:00
parent 1e1f3459a5
commit 25cc35461c
No known key found for this signature in database
GPG Key ID: 0FE76418EE689B68
2 changed files with 49 additions and 36 deletions

41
main.py
View File

@ -13,7 +13,7 @@ from error import CookieError
def main():
# 初始化,加载配置
return_data = "\n米游社"
return_data = "\n米游社: "
config.load_config()
if config.enable_Config:
# 检测参数是否齐全,如果缺少就进行登入操作
@ -36,26 +36,31 @@ def main():
setting.mihoyobbs_List_Use.append(i)
# 米游社签到
if config.mihoyobbs["bbs_Global"]:
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 \
bbs.Task_do["bbs_Share"]:
return_data += "\n" + f"今天已经全部完成了!\n"\
f"一共获得{mihoyobbs.Today_have_getcoins}个米游币\n目前有{mihoyobbs.Have_coins}个米游币"
log.info(f"今天已经全部完成了!一共获得{mihoyobbs.Today_have_getcoins}个米游币,目前有{mihoyobbs.Have_coins}个米游币")
return_data += "\n" + f"今天已经全部完成了!\n" \
f"一共获得{mihoyobbs.today_have_get_coins}个米游币\n目前有{mihoyobbs.Have_coins}个米游币"
log.info(f"今天已经全部完成了!一共获得{mihoyobbs.today_have_get_coins}个米游币,目前有{mihoyobbs.Have_coins}个米游币")
else:
if config.mihoyobbs["bbs_Signin"]:
bbs.signing()
if config.mihoyobbs["bbs_Read_posts"]:
bbs.read_posts()
if config.mihoyobbs["bbs_Like_posts"]:
bbs.Likeposts()
if config.mihoyobbs["bbs_Share"]:
bbs.share_post()
bbs.Get_taskslist()
return_data += "\n" + f"今天已经获得{mihoyobbs.Today_have_getcoins}个米游币\n"\
f"还能获得{mihoyobbs.Today_getcoins}个米游币\n目前有{mihoyobbs.Have_coins}个米游币"
log.info(f"今天已经获得{mihoyobbs.Today_have_getcoins}个米游币,"
f"还能获得{mihoyobbs.Today_getcoins}个米游币,目前有{mihoyobbs.Have_coins}个米游币")
i = 0
while mihoyobbs.today_get_coins != 0 and i < 3:
if i > 0:
bbs.refresh_list()
if config.mihoyobbs["bbs_Signin"]:
bbs.signing()
if config.mihoyobbs["bbs_Read_posts"]:
bbs.read_posts()
if config.mihoyobbs["bbs_Like_posts"]:
bbs.like_posts()
if config.mihoyobbs["bbs_Share"]:
bbs.share_post()
bbs.get_tasks_list()
i += 1
return_data += "\n" + f"今天已经获得{mihoyobbs.today_have_get_coins}个米游币\n" \
f"还能获得{mihoyobbs.today_get_coins}个米游币\n目前有{mihoyobbs.Have_coins}个米游币"
log.info(f"今天已经获得{mihoyobbs.today_have_get_coins}个米游币,"
f"还能获得{mihoyobbs.today_get_coins}个米游币,目前有{mihoyobbs.Have_coins}个米游币")
time.sleep(random.randint(2, 8))
else:
return_data += "\n" + "米游社功能未启用!"

View File

@ -7,13 +7,12 @@ from request import http
from loghelper import log
from error import CookieError
Today_getcoins = 0
Today_have_getcoins = 0 # 这个变量以后可能会用上,先留着了
today_get_coins = 0
today_have_get_coins = 0 # 这个变量以后可能会用上,先留着了
Have_coins = 0
class mihoyobbs:
class Mihoyobbs:
def __init__(self):
self.headers = {
"DS": tools.get_ds(web=False, web_old=False),
@ -37,17 +36,20 @@ class mihoyobbs:
"bbs_Like_posts_num": 5,
"bbs_Share": False
}
self.Get_taskslist()
self.get_tasks_list()
# 如果这三个任务都做了就没必要获取帖子了
if self.Task_do["bbs_Read_posts"] and self.Task_do["bbs_Like_posts"] and self.Task_do["bbs_Share"]:
pass
else:
self.postsList = self.get_list()
def refresh_list(self) -> None:
self.postsList = self.get_list()
# 获取任务列表,用来判断做了哪些任务
def Get_taskslist(self):
global Today_getcoins
global Today_have_getcoins
def get_tasks_list(self):
global today_get_coins
global today_have_get_coins
global Have_coins
log.info("正在获取任务列表")
req = http.get(url=setting.bbs_Tasks_list, headers=self.headers)
@ -57,11 +59,11 @@ class mihoyobbs:
config.clear_cookies()
raise CookieError('Cookie expires')
else:
Today_getcoins = data["data"]["can_get_points"]
Today_have_getcoins = data["data"]["already_received_points"]
today_get_coins = data["data"]["can_get_points"]
today_have_get_coins = data["data"]["already_received_points"]
Have_coins = data["data"]["total_points"]
# 如果当日可获取米游币数量为0直接判断全部任务都完成了
if Today_getcoins == 0:
if today_get_coins == 0:
self.Task_do["bbs_Sign"] = True
self.Task_do["bbs_Read_posts"] = True
self.Task_do["bbs_Like_posts"] = True
@ -69,10 +71,10 @@ class mihoyobbs:
else:
# 如果第0个大于或等于62则直接判定任务没做
if data["data"]["states"][0]["mission_id"] >= 62:
log.info(f"新的一天,今天可以获得{Today_getcoins}个米游币")
log.info(f"新的一天,今天可以获得{today_get_coins}个米游币")
pass
else:
log.info(f"似乎还有任务没完成,今天还能获得{Today_getcoins}")
log.info(f"似乎还有任务没完成,今天还能获得{today_get_coins}")
for i in data["data"]["states"]:
# 58是讨论区签到
if i["mission_id"] == 58:
@ -101,10 +103,16 @@ class mihoyobbs:
def get_list(self) -> list:
temp_list = []
log.info("正在获取帖子列表......")
req = http.get(url=setting.bbs_List_url.format(setting.mihoyobbs_List_Use[0]["forumId"]), headers=self.headers)
data = req.json()
req = http.get(url=setting.bbs_List_url.format(setting.mihoyobbs_List_Use[0]["forumId"]),
headers=self.headers)
data = req.json()["data"]["list"]
for n in range(5):
temp_list.append([data["data"]["list"][n]["post"]["post_id"], data["data"]["list"][n]["post"]["subject"]])
r_l = random.choice(data)
while r_l["post"]["subject"] in str(temp_list):
r_l = random.choice(data)
temp_list.append([r_l["post"]["post_id"], r_l["post"]["subject"]])
# temp_list.append([data["data"]["list"][n]["post"]["post_id"], data["data"]["list"][n]["post"]["subject"]])
log.info("已获取{}个帖子".format(len(temp_list)))
return temp_list
@ -139,7 +147,7 @@ class mihoyobbs:
time.sleep(random.randint(2, 8))
# 点赞
def Likeposts(self):
def like_posts(self):
if self.Task_do["bbs_Like_posts"]:
log.info("点赞任务已经完成过了~")
else:
@ -175,6 +183,6 @@ class mihoyobbs:
log.info("分享任务执行成功......")
break
else:
log.debug(f"分享任务执行失败,正在执行第{i+2}共3次")
log.debug(f"分享任务执行失败,正在执行第{i + 2}共3次")
time.sleep(random.randint(2, 8))
time.sleep(random.randint(2, 8))