小改动,以及初步的多账户支持

Readme.md
This commit is contained in:
Womsxd 2021-05-25 17:45:35 +08:00
parent ba6d71b8ad
commit 3288717e5d
6 changed files with 34 additions and 14 deletions

BIN
README.md

Binary file not shown.

View File

@ -31,9 +31,10 @@ mihoyobbs = {
genshin_AutoSingin = True
path = os.path.dirname(os.path.realpath(__file__)) + "/config"
config_Path = f"{path}/config.json"
def Load_config():
with open(f"{path}/config.json", "r") as f:
with open(config_Path, "r") as f:
data = json.load(f)
global mihoyobbs_Login_ticket
global mihoyobbs_Stuid
@ -57,7 +58,7 @@ def Load_config():
tools.log.info("Config加载完毕")
def Save_config():
with open(f"{path}/config.json","r+") as f:
with open(config_Path,"r+") as f:
data = json.load(f)
data["mihoyobbs_Login_ticket"] = mihoyobbs_Login_ticket
data["mihoyobbs_Stuid"] = mihoyobbs_Stuid
@ -71,7 +72,7 @@ def Save_config():
tools.log.info("Config保存完毕")
def Clear_cookies():
with open(f"{path}/config.json","r+") as f:
with open(config_Path,"r+") as f:
data = json.load(f)
data["mihoyobbs_Login_ticket"] = ""
data["mihoyobbs_Stuid"] = ""

View File

@ -1,6 +1,8 @@
import time
import httpx
import tools
import config
import random
import setting
class genshin:
@ -17,12 +19,14 @@ class genshin:
'Accept-Language': 'zh-CN,en-US;q=0.8',
'X-Requested-With': 'com.mihoyo.hyperion',
"Cookie": config.mihoyobbs_Cookies,
'x-rpc-device_id': tools.Get_driveid()
'x-rpc-device_id': tools.Get_deviceid()
}
self.acc_List = self.Getacc_list()
self.sing_Give = self.Get_singgive()
#获取绑定的账号列表
def Getacc_list(self) -> list:
tools.log.info("正在获取米哈游账号绑定的游戏账号列表...")
temp_List = []
req = httpx.get(setting.genshin_Accinfo_url, headers=self.headers)
data = req.json()
@ -32,8 +36,10 @@ class genshin:
for i in data["data"]["list"]:
temp_List.append([i["nickname"], i["game_uid"], i["region"]])
return (temp_List)
#获取已经签到奖励列表
def Get_singgive(self) -> list:
tools.log.info("正在获取签到奖励列表...")
req = httpx.get(setting.genshin_Singlisturl.format(setting.genshin_Act_id),headers=self.headers)
data = req.json()
if (data["retcode"] != 0):
@ -41,6 +47,7 @@ class genshin:
print (req.text)
exit()
return (data["data"]["awards"])
#判断签到
def Is_sing(self, region:str, uid:str):
req = httpx.get(setting.genshin_Is_singurl.format(setting.genshin_Act_id, region, uid), headers=self.headers)
@ -50,14 +57,18 @@ class genshin:
print (req.text)
exit()
return (data["data"])
#签到
#获取签到的奖励名称
def Get_item(self, raw_data:dict) ->str:
temp_Name = raw_data["name"]
temp_Cnt = raw_data["cnt"]
return (f"{temp_Name}x{temp_Cnt}")
#签到
def Sing_acc(self):
for i in self.acc_List:
tools.log.info(f"正在为旅行者{i[0]}进行签到...")
time.sleep(random.randint(2, 6))
is_data = self.Is_sing(region = i[2], uid = i[1])
if (is_data["first_bind"] == True):
tools.log.warn(f"旅行者{i[0]}是第一次绑定米游社,请先手动签到一次")
@ -66,6 +77,7 @@ class genshin:
if (is_data["is_sign"] == True):
tools.log.info(f"旅行者{i[0]}今天已经签到过了~\r\n今天获得的奖励是{self.Get_item(self.sing_Give[sing_Days])}")
else:
time.sleep(random.randint(2, 6))
req = httpx.post(url=setting.genshin_Singurl, headers=self.headers,
json={'act_id': setting.genshin_Act_id, 'region': i[2], 'uid': i[1]})
data = req.json()

View File

@ -5,7 +5,6 @@ import config
import random
import setting
class mihoyobbs:
def __init__(self):
self.headers = {
@ -15,7 +14,7 @@ class mihoyobbs:
"x-rpc-app_version": setting.mihoyobbs_Version,
"x-rpc-sys_version": "6.0.1",
"x-rpc-channel": "mihoyo",
"x-rpc-device_id": tools.Get_driveid(),
"x-rpc-device_id": tools.Get_deviceid(),
"x-rpc-device_name": tools.Random_text(random.randint(1, 10)),
"x-rpc-device_model": "Mi 10",
"Referer": "https://app.mihoyo.com",
@ -23,6 +22,7 @@ class mihoyobbs:
"User-Agent": "okhttp/4.8.0"
}
self.postsList = self.Getlist()
#进行签到操作
def Singin(self):
tools.log.info("正在签到......")
@ -36,6 +36,7 @@ class mihoyobbs:
tools.log.info("签到失败你的cookie可能已过期请重新设置cookie。")
config.Clear_cookies()
exit()
#获取要帖子列表
def Getlist(self) -> list:
temp_List = []
@ -43,11 +44,12 @@ class mihoyobbs:
for i in setting.mihoyobbs_List_Use:
req = httpx.get(url=setting.bbs_Listurl.format(i["forumId"]), headers=self.headers)
data = req.json()
for n in range(10):
for n in range(5):
temp_List.append([data["data"]["list"][n]["post"]["post_id"], data["data"]["list"][n]["post"]["subject"]])
tools.log.info("已获取{}个帖子".format(len(temp_List)))
time.sleep(random.randrange(5))
time.sleep(random.randint(2, 6))
return (temp_List)
#看帖子
def Readposts(self):
tools.log.info("正在看帖......")
@ -56,7 +58,8 @@ class mihoyobbs:
data = req.json()
if data["message"] == "OK":
tools.log.info("看帖:{} 成功".format(self.postsList[i][1]))
time.sleep(random.randrange(5))
time.sleep(random.randint(2, 6))
#点赞
def Likeposts(self):
tools.log.info("正在点赞......")
@ -68,16 +71,19 @@ class mihoyobbs:
tools.log.info("点赞:{} 成功".format(self.postsList[i][1]))
#判断取消点赞是否打开
if (config.mihoyobbs["bbs_Unlike"] == True):
time.sleep(random.randrange(5))
time.sleep(random.randint(2, 6))
req = httpx.post(url=setting.bbs_Likeurl, headers=self.headers,
json={"post_id": self.postsList[i][0], "is_cancel": True})
data = req.json()
if (data["message"] == "OK"):
tools.log.info("取消点赞:{} 成功".format(self.postsList[i][1]))
time.sleep(random.randrange(5))
time.sleep(random.randint(2, 6))
#分享操作
def Share(self):
tools.log.info("正在分享......")
req = httpx.get(url=setting.bbs_Shareurl.format(self.postsList[0][0]), headers=self.headers)
data = req.json()
if data["message"] == "OK":
tools.log.info("分享:{} 成功".format(self.postsList[0][1]))
tools.log.info("分享:{} 成功".format(self.postsList[0][1]))
time.sleep(random.randint(2, 6))

View File

@ -43,7 +43,8 @@ def Get_ds(web:bool, web_old:bool) -> str:
c = MD5("salt=" + n + "&t=" + i + "&r=" + r)
return (i + "," + r + "," + c)
def Get_driveid() -> str:
#生成一个device id
def Get_deviceid() -> str:
return (str(uuid.uuid3(uuid.NAMESPACE_URL, config.mihoyobbs_Cookies)).replace(
'-', '').upper())