This commit is contained in:
Wuyi无疑 2021-12-04 19:12:19 +08:00
parent ed7e5c5b79
commit f8a7e1c34b
4 changed files with 252 additions and 186 deletions

View File

@ -48,6 +48,18 @@ $ pip3 install -r requirements.txt
**作者已经转用NoneBot2Hoshino的更新可能未经测试有bug及时提Issues** **作者已经转用NoneBot2Hoshino的更新可能未经测试有bug及时提Issues**
#### 2021-12-04
修复:`查询词云`功能失效的问题。
修复:`查询`功能只能查到8个角色的问题经测试应该BanIP概率极低需要在配置文件中加入`genshinuid_use_new_get_chars_method=1`才可生效)。
修复:`校验全部Cookies`命令错误的问题(**由于API返回字段变化的缘故旧版本使用该命令会清空所有Ck旧版本请不要使用该命令**),该问题同时导致`添加`命令不可用,均已修复。
优化查询时优先从数据库中调用主人的Cookies。
优化错误Cookies将在`NewCookiesTable`中的`Extra`标记为`error`(失效)或者`limit30`(今天达到30人限制),其中`limit30`将在每日零点清空。
#### 2021-11-21 #### 2021-11-21
新增:`查询词云`功能 新增:`查询词云`功能

View File

@ -212,7 +212,7 @@ async def setting(ctx):
mys_data = await GetMysInfo(mysid,cookie) mys_data = await GetMysInfo(mysid,cookie)
mys_data = mys_data[0] mys_data = mys_data[0]
for i in mys_data['data']['list']: for i in mys_data['data']['list']:
if i['data'][0]['name'] != '活跃天数': if i['game_id'] != 2:
mys_data['data']['list'].remove(i) mys_data['data']['list'].remove(i)
uid = mys_data['data']['list'][0]['game_role_id'] uid = mys_data['data']['list'][0]['game_role_id']
await cookiesDB(uid,cookie,userid) await cookiesDB(uid,cookie,userid)

View File

@ -47,7 +47,9 @@ async def CheckDB():
mysid_data = aid.group(0).split('=') mysid_data = aid.group(0).split('=')
mysid = mysid_data[1] mysid = mysid_data[1]
mys_data = await GetMysInfo(mysid,row[1]) mys_data = await GetMysInfo(mysid,row[1])
mys_data = mys_data[0] for i in mys_data['data']['list']:
if i['game_id'] != 2:
mys_data['data']['list'].remove(i)
uid = mys_data['data']['list'][0]['game_role_id'] uid = mys_data['data']['list'][0]['game_role_id']
str = str + f"uid{row[0]}/mysid{mysid}的Cookies是正常的\n" str = str + f"uid{row[0]}/mysid{mysid}的Cookies是正常的\n"
except: except:
@ -141,11 +143,24 @@ async def selectDB(userid,mode = "auto"):
return [row[2],3] return [row[2],3]
def deletecache(): def deletecache():
try:
conn = sqlite3.connect('ID_DATA.db')
c = conn.cursor()
c.execute("DROP TABLE CookiesCache")
c.execute("UPDATE NewCookiesTable SET Extra = ? WHERE Extra=?",(None,"limit30"))
copyfile("ID_DATA.db", "ID_DATA_bak.db")
conn.commit()
conn.close()
except:
print("\nerror\n")
def errorDB(ck,err):
conn = sqlite3.connect('ID_DATA.db') conn = sqlite3.connect('ID_DATA.db')
c = conn.cursor() c = conn.cursor()
c.execute("DROP TABLE CookiesCache") if err == "error":
conn.commit() c.execute("UPDATE NewCookiesTable SET Extra = ? WHERE Cookies=?",("error",ck))
conn.close() elif err == "limit30":
c.execute("UPDATE NewCookiesTable SET Extra = ? WHERE Cookies=?",("limit30",ck))
def cacheDB(uid,mode = 1,mys = None): def cacheDB(uid,mode = 1,mys = None):
use = '' use = ''
@ -168,15 +183,36 @@ def cacheDB(uid,mode = 1,mys = None):
c_data = cursor.fetchall() c_data = cursor.fetchall()
if len(c_data)==0: if len(c_data)==0:
cookiesrow = c.execute("SELECT * FROM NewCookiesTable ORDER BY RANDOM() limit 1") if mode == 2:
for row2 in cookiesrow: conn.create_function("REGEXP", 2, functionRegex)
cursor = c.execute("SELECT * FROM NewCookiesTable WHERE REGEXP(Cookies, ?) AND Extra != ?",(uid,"error"))
d_data = cursor.fetchall()
elif mode == 1:
cursor = c.execute("SELECT * FROM NewCookiesTable WHERE UID = ? AND Extra != ?",(uid,"error"))
d_data = cursor.fetchall()
if len(d_data)!=0:
use = d_data[0][1]
if mode == 1: if mode == 1:
c.execute("INSERT OR IGNORE INTO CookiesCache (Cookies,UID) \ c.execute("INSERT OR IGNORE INTO CookiesCache (Cookies,UID) \
VALUES (?, ?)",(row2[1],uid)) VALUES (?, ?)",(use,uid))
if mode == 2: elif mode == 2:
c.execute("INSERT OR IGNORE INTO CookiesCache (Cookies,MYSID) \ c.execute("INSERT OR IGNORE INTO CookiesCache (Cookies,MYSID) \
VALUES (?, ?)",(row2[1],uid)) VALUES (?, ?)",(use,uid))
use = row2[1] else:
cookiesrow = c.execute("SELECT * FROM NewCookiesTable WHERE Extra IS NULL ORDER BY RANDOM() LIMIT 1")
e_data = cookiesrow.fetchall()
if len(e_data) != 0:
if mode == 1:
c.execute("INSERT OR IGNORE INTO CookiesCache (Cookies,UID) \
VALUES (?, ?)",(e_data[0][1],uid))
elif mode == 2:
c.execute("INSERT OR IGNORE INTO CookiesCache (Cookies,MYSID) \
VALUES (?, ?)",(e_data[0][1],uid))
use = e_data[0][1]
else:
return "没有可以使用的Cookies"
else: else:
use = c_data[0][2] use = c_data[0][2]
if mys: if mys:
@ -189,6 +225,10 @@ def cacheDB(uid,mode = 1,mys = None):
conn.close() conn.close()
return use return use
def functionRegex(value,patter):
c_pattern = re.compile(r"account_id={}".format(patter))
return c_pattern.search(value) is not None
async def cookiesDB(uid,Cookies,qid): async def cookiesDB(uid,Cookies,qid):
conn = sqlite3.connect('ID_DATA.db') conn = sqlite3.connect('ID_DATA.db')
c = conn.cursor() c = conn.cursor()
@ -338,7 +378,6 @@ async def GetSignList():
return data return data
except: except:
print("访问失败,请重试!") print("访问失败,请重试!")
#sys.exit(1)
async def GetSignInfo(Uid,ServerID="cn_gf01"): async def GetSignInfo(Uid,ServerID="cn_gf01"):
if Uid[0] == '5': if Uid[0] == '5':
@ -357,7 +396,6 @@ async def GetSignInfo(Uid,ServerID="cn_gf01"):
return data return data
except: except:
print("访问失败,请重试!") print("访问失败,请重试!")
#sys.exit(1)
async def MysSign(Uid,ServerID="cn_gf01"): async def MysSign(Uid,ServerID="cn_gf01"):
if Uid[0] == '5': if Uid[0] == '5':
@ -382,7 +420,6 @@ async def MysSign(Uid,ServerID="cn_gf01"):
return data2 return data2
except: except:
print("访问失败,请重试!") print("访问失败,请重试!")
#sys.exit(1)
async def GetAward(Uid,ServerID="cn_gf01"): async def GetAward(Uid,ServerID="cn_gf01"):
if Uid[0] == '5': if Uid[0] == '5':
@ -405,7 +442,7 @@ async def GetAward(Uid,ServerID="cn_gf01"):
print("访问失败,请重试!") print("访问失败,请重试!")
#sys.exit(1) #sys.exit(1)
async def GetInfo(Uid,ServerID="cn_gf01",Schedule_type="1",mysid = None): async def GetInfo(Uid,ck,ServerID="cn_gf01"):
if Uid[0] == '5': if Uid[0] == '5':
ServerID = "cn_qd01" ServerID = "cn_qd01"
try: try:
@ -418,14 +455,14 @@ async def GetInfo(Uid,ServerID="cn_gf01",Schedule_type="1",mysid = None):
'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) miHoYoBBS/2.11.1', 'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) miHoYoBBS/2.11.1',
'x-rpc-client_type': '5', 'x-rpc-client_type': '5',
'Referer': 'https://webstatic.mihoyo.com/', 'Referer': 'https://webstatic.mihoyo.com/',
"Cookie": cacheDB(Uid,1,mysid)}) "Cookie": ck})
data = json.loads(req.text) data = json.loads(req.text)
return data return data
except: except:
print("访问失败,请重试!") print("访问失败,请重试!")
#sys.exit(1) #sys.exit(1)
async def GetSpiralAbyssInfo(Uid, ServerID="cn_gf01",Schedule_type="1",mysid = None): async def GetSpiralAbyssInfo(Uid, ck,Schedule_type="1",ServerID="cn_gf01"):
if Uid[0] == '5': if Uid[0] == '5':
ServerID = "cn_qd01" ServerID = "cn_qd01"
try: try:
@ -435,7 +472,7 @@ async def GetSpiralAbyssInfo(Uid, ServerID="cn_gf01",Schedule_type="1",mysid = N
headers={ headers={
'DS': DSGet("role_id=" + Uid + "&schedule_type=" + Schedule_type + "&server="+ ServerID), 'DS': DSGet("role_id=" + Uid + "&schedule_type=" + Schedule_type + "&server="+ ServerID),
'Origin': 'https://webstatic.mihoyo.com', 'Origin': 'https://webstatic.mihoyo.com',
'Cookie': cacheDB(Uid,1,mysid), 'Cookie': ck,
'x-rpc-app_version': mhyVersion, 'x-rpc-app_version': mhyVersion,
'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) miHoYoBBS/2.11.1', 'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) miHoYoBBS/2.11.1',
'x-rpc-client_type': '5', 'x-rpc-client_type': '5',
@ -446,9 +483,10 @@ async def GetSpiralAbyssInfo(Uid, ServerID="cn_gf01",Schedule_type="1",mysid = N
return data return data
except: except:
print("1访问失败请重试") print("1访问失败请重试")
#sys.exit(1)
def GetCharacter(Uid,Character_ids, ServerID="cn_gf01",mysid = None): def GetCharacter(Uid,Character_ids, ck,ServerID="cn_gf01"):
if Uid[0] == '5': if Uid[0] == '5':
ServerID = "cn_qd01" ServerID = "cn_qd01"
try: try:
@ -457,7 +495,7 @@ def GetCharacter(Uid,Character_ids, ServerID="cn_gf01",mysid = None):
headers={ headers={
'DS': DSGet('',{"character_ids": Character_ids ,"role_id": Uid ,"server": ServerID}), 'DS': DSGet('',{"character_ids": Character_ids ,"role_id": Uid ,"server": ServerID}),
'Origin': 'https://webstatic.mihoyo.com', 'Origin': 'https://webstatic.mihoyo.com',
'Cookie': cacheDB(Uid,1,mysid), 'Cookie': ck,
'x-rpc-app_version': mhyVersion, 'x-rpc-app_version': mhyVersion,
'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) miHoYoBBS/2.11.1', 'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) miHoYoBBS/2.11.1',
'x-rpc-client_type': '5', 'x-rpc-client_type': '5',
@ -471,11 +509,7 @@ def GetCharacter(Uid,Character_ids, ServerID="cn_gf01",mysid = None):
print("访问失败,请重试!") print("访问失败,请重试!")
#sys.exit(1) #sys.exit(1)
async def GetMysInfo(mysid,cookies = None): async def GetMysInfo(mysid,ck):
if cookies:
ck = cookies
else:
ck = cacheDB(mysid,2)
try: try:
async with AsyncClient() as client: async with AsyncClient() as client:
req = await client.get( req = await client.get(
@ -488,7 +522,7 @@ async def GetMysInfo(mysid,cookies = None):
'Referer': 'https://webstatic.mihoyo.com/', 'Referer': 'https://webstatic.mihoyo.com/',
"Cookie": ck}) "Cookie": ck})
data = json.loads(req.text) data = json.loads(req.text)
return [data,mysid] return data
except: except:
im = "err" im = "err"
return im return im
@ -505,7 +539,6 @@ async def GetWeaponInfo(name):
async def GetCharInfo(name,mode = 0): async def GetCharInfo(name,mode = 0):
str = "" str = ""
if mode == 1: if mode == 1:
str = "&talents=1" str = "&talents=1"
elif mode == 2: elif mode == 2:

339
getImg.py
View File

@ -10,7 +10,7 @@ import numpy as np
from PIL import Image, ImageDraw, ImageFont, ImageFilter from PIL import Image, ImageDraw, ImageFont, ImageFilter
from .getDB import GetInfo,GetCharacter,GetSpiralAbyssInfo,GetMysInfo from .getDB import GetInfo,GetCharacter,GetSpiralAbyssInfo,GetMysInfo,errorDB
import os import os
import json import json
@ -61,67 +61,76 @@ def get_weapon_pic(url):
urllib.request.urlretrieve(url, os.path.join(WEAPON_PATH, url.split('/')[-1])) urllib.request.urlretrieve(url, os.path.join(WEAPON_PATH, url.split('/')[-1]))
async def draw_wordcloud(uid,image = None,mode = 2): async def draw_wordcloud(uid,image = None,mode = 2):
if mode == 3: while 1:
mys_data = await GetMysInfo(uid) use_cookies = cacheDB(uid,mode-1)
mysid_data = mys_data[1] if use_cookies == '':
mys_data = mys_data[0] return "绑定记录不存在。"
for i in mys_data['data']['list']: elif use_cookies == "没有可以使用的Cookies":
if i['data'][0]['name'] != '活跃天数': return "没有可以使用的Cookies"
mys_data['data']['list'].remove(i)
uid = mys_data['data']['list'][0]['game_role_id'] if mode == 3:
nickname = mys_data['data']['list'][0]['nickname'] mys_data = await GetMysInfo(uid,use_cookies)
role_level = mys_data['data']['list'][0]['level'] mysid_data = uid
raw_data = await GetInfo(uid,"cn_gf01","1",mysid_data) for i in mys_data['data']['list']:
raw_Abyss_data = await GetSpiralAbyssInfo(uid,"cn_gf01","1",mysid_data) if i['game_id'] != 2:
else: mys_data['data']['list'].remove(i)
raw_Abyss_data = await GetSpiralAbyssInfo(uid,"cn_gf01","1") uid = mys_data['data']['list'][0]['game_role_id']
raw_data = await GetInfo(uid) nickname = mys_data['data']['list'][0]['nickname']
role_level = mys_data['data']['list'][0]['level']
if (raw_data["retcode"] != 0): raw_data = await GetInfo(uid,use_cookies)
if (raw_data["retcode"] == 10001): raw_Abyss_data = await GetSpiralAbyssInfo(uid,use_cookies)
return ("Cookie错误/过期请重置Cookie") else:
elif (raw_data["retcode"] == 10101): raw_Abyss_data = await GetSpiralAbyssInfo(uid,use_cookies)
return ("当前cookies已达到30人上限") raw_data = await GetInfo(uid,use_cookies)
elif (raw_data["retcode"] == 10102):
return ("当前查询id已经设置了隐私无法查询") if (raw_data["retcode"] != 0):
return ( if (raw_data["retcode"] == 10001):
"Api报错返回内容为\r\n" #return ("Cookie错误/过期请重置Cookie")
+ str(raw_data) + "\r\n出现这种情况可能的UID输入错误 or 不存在" errorDB(use_cookies,"error")
) elif (raw_data["retcode"] == 10101):
else: #return ("当前cookies已达到30人上限")
pass errorDB(use_cookies,"limit30")
elif (raw_data["retcode"] == 10102):
return ("当前查询id已经设置了隐私无法查询")
return (
"Api报错返回内容为\r\n"
+ str(raw_data) + "\r\n出现这种情况可能的UID输入错误 or 不存在"
)
else:
break
raw_Abyss_data = raw_Abyss_data['data'] raw_Abyss_data = raw_Abyss_data['data']
raw_data = raw_data['data'] raw_data = raw_data['data']
char_data = raw_data["avatars"] char_data = raw_data["avatars"]
char_num = len(raw_data["avatars"]) char_num = len(raw_data["avatars"])
if mode == 2:
char_ids = []
char_rawdata = []
for i in char_data:
char_ids.append(i["id"])
char_rawdata = await GetCharacter(uid,char_ids) char_datas = []
char_datas = char_rawdata["data"]["avatars"] def get_charid(start,end):
for i in range(start,end):
char_rawdata = GetCharacter(uid,[i],use_cookies)
weapons_datas = [] if char_rawdata["retcode"] == -1:
for i in char_datas: pass
weapons_datas.append(i['weapon']) else:
elif mode == 3: char_datas.append(char_rawdata["data"]['avatars'][0])
char_ids = []
char_rawdata = []
for i in char_data:
char_ids.append(i["id"])
char_rawdata = await GetCharacter(uid,char_ids,"cn_gf01",mysid_data) thread_list = []
char_datas = char_rawdata["data"]["avatars"] st = 8
for i in range(0,8):
thread = threading.Thread(target = get_charid,args = (10000002+i*st,10000002+(i+1)*st))
thread_list.append(thread)
weapons_datas = [] for t in thread_list:
for i in char_datas: t.setDaemon(True)
weapons_datas.append(i['weapon']) t.start()
for t in thread_list:
t.join()
weapons_datas = []
for i in char_datas:
weapons_datas.append(i['weapon'])
l1_size = 2 l1_size = 2
l2_size = 4 l2_size = 4
@ -149,7 +158,7 @@ async def draw_wordcloud(uid,image = None,mode = 2):
star5num = 0 star5num = 0
star5numcon = 0 star5numcon = 0
for i in raw_data['avatars']: for i in char_datas:
if i["name"] in ['雷电将军','温迪','钟离','枫原万叶']: if i["name"] in ['雷电将军','温迪','钟离','枫原万叶']:
g3d1 += 1 g3d1 += 1
if i["name"] in ['甘雨','','胡桃']: if i["name"] in ['甘雨','','胡桃']:
@ -232,10 +241,13 @@ async def draw_wordcloud(uid,image = None,mode = 2):
if raw_data['homes'][0]['comfort_num'] >= 25000: if raw_data['homes'][0]['comfort_num'] >= 25000:
word_str["团雀附体"] = l2_size word_str["团雀附体"] = l2_size
if raw_Abyss_data['total_battle_times'] <= 12 and raw_Abyss_data['max_floor'] == '12-3': if raw_Abyss_data["reveal_rank"] != []:
word_str["PVP资格证"] = l4_size if raw_Abyss_data['total_battle_times'] <= 12 and raw_Abyss_data['max_floor'] == '12-3':
if raw_Abyss_data["damage_rank"][0]["value"] >= 150000: word_str["PVP资格证"] = l4_size
word_str["这一击,贯穿星辰"] = l4_size if raw_Abyss_data["damage_rank"][0]["value"] >= 150000:
word_str["这一击,贯穿星辰"] = l4_size
else:
pass
bg_list = random.choice([x for x in os.listdir(BG_PATH) bg_list = random.choice([x for x in os.listdir(BG_PATH)
if os.path.isfile(os.path.join(BG_PATH, x))]) if os.path.isfile(os.path.join(BG_PATH, x))])
@ -325,36 +337,42 @@ def multi_color_func(word=None, font_size=None,
return "hsl({}, {}%, {}%)".format(colors[rand][0], colors[rand][1], colors[rand][2]) return "hsl({}, {}%, {}%)".format(colors[rand][0], colors[rand][1], colors[rand][2])
async def draw_abyss0_pic(uid,nickname,image = None,mode = 2,date = "1"): async def draw_abyss0_pic(uid,nickname,image = None,mode = 2,date = "1"):
if mode == 3: while 1:
mys_data = await GetMysInfo(uid) use_cookies = cacheDB(uid,mode-1)
mysid_data = mys_data[1] if use_cookies == '':
mys_data = mys_data[0] return "绑定记录不存在。"
for i in mys_data['data']['list']: elif use_cookies == "没有可以使用的Cookies":
if i['data'][0]['name'] != '活跃天数': return "没有可以使用的Cookies"
mys_data['data']['list'].remove(i)
uid = mys_data['data']['list'][0]['game_role_id']
nickname = mys_data['data']['list'][0]['nickname']
#role_region = mys_data['data']['list'][0]['region']
role_level = mys_data['data']['list'][0]['level']
raw_data = await GetSpiralAbyssInfo(uid,"cn_gf01",date,mysid_data)
raw_char_data = await GetInfo(uid,"cn_gf01",date,mysid_data)
else:
raw_data = await GetSpiralAbyssInfo(uid,"cn_gf01",date)
raw_char_data = await GetInfo(uid,"cn_gf01",date)
if (raw_data["retcode"] != 0): if mode == 3:
if (raw_data["retcode"] == 10001): mys_data = await GetMysInfo(uid,use_cookies)
return ("Cookie错误/过期请重置Cookie") mysid_data = uid
elif (raw_data["retcode"] == 10101): for i in mys_data['data']['list']:
return ("当前cookies已达到30人上限") if i['game_id'] != 2:
elif (raw_data["retcode"] == 10102): mys_data['data']['list'].remove(i)
return ("当前查询id已经设置了隐私无法查询") uid = mys_data['data']['list'][0]['game_role_id']
return ( nickname = mys_data['data']['list'][0]['nickname']
"Api报错返回内容为\r\n" #role_region = mys_data['data']['list'][0]['region']
+ str(raw_data) + "\r\n出现这种情况可能的UID输入错误 or 不存在" role_level = mys_data['data']['list'][0]['level']
)
else: raw_data = await GetSpiralAbyssInfo(uid,use_cookies,date)
pass raw_char_data = await GetInfo(uid,use_cookies)
if (raw_data["retcode"] != 0):
if (raw_data["retcode"] == 10001):
#return ("Cookie错误/过期请重置Cookie")
errorDB(use_cookies,"error")
elif (raw_data["retcode"] == 10101):
#return ("当前cookies已达到30人上限")
errorDB(use_cookies,"limit30")
elif (raw_data["retcode"] == 10102):
return ("当前查询id已经设置了隐私无法查询")
return (
"Api报错返回内容为\r\n"
+ str(raw_data) + "\r\n出现这种情况可能的UID输入错误 or 不存在"
)
else:
break
raw_data = raw_data["data"] raw_data = raw_data["data"]
raw_char_data = raw_char_data['data']["avatars"] raw_char_data = raw_char_data['data']["avatars"]
@ -609,36 +627,42 @@ async def draw_abyss0_pic(uid,nickname,image = None,mode = 2,date = "1"):
return resultmes return resultmes
async def draw_abyss_pic(uid,nickname,floor_num,image = None,mode = 2,date = "1"): async def draw_abyss_pic(uid,nickname,floor_num,image = None,mode = 2,date = "1"):
if mode == 3: while 1:
mys_data = await GetMysInfo(uid) use_cookies = cacheDB(uid,mode-1)
mysid_data = mys_data[1] if use_cookies == '':
mys_data = mys_data[0] return "绑定记录不存在。"
for i in mys_data['data']['list']: elif use_cookies == "没有可以使用的Cookies":
if i['data'][0]['name'] != '活跃天数': return "没有可以使用的Cookies"
mys_data['data']['list'].remove(i)
uid = mys_data['data']['list'][0]['game_role_id']
nickname = mys_data['data']['list'][0]['nickname']
#role_region = mys_data['data']['list'][0]['region']
role_level = mys_data['data']['list'][0]['level']
raw_data = await GetSpiralAbyssInfo(uid,"cn_gf01",date,mysid_data)
raw_char_data = await GetInfo(uid,"cn_gf01",date,mysid_data)
else:
raw_data = await GetSpiralAbyssInfo(uid,"cn_gf01",date)
raw_char_data = await GetInfo(uid,"cn_gf01",date)
if (raw_data["retcode"] != 0): if mode == 3:
if (raw_data["retcode"] == 10001): mys_data = await GetMysInfo(uid,use_cookies)
return ("Cookie错误/过期请重置Cookie") mysid_data = uid
elif (raw_data["retcode"] == 10101): for i in mys_data['data']['list']:
return ("当前cookies已达到30人上限") if i['game_id'] != 2:
elif (raw_data["retcode"] == 10102): mys_data['data']['list'].remove(i)
return ("当前查询id已经设置了隐私无法查询") uid = mys_data['data']['list'][0]['game_role_id']
return ( nickname = mys_data['data']['list'][0]['nickname']
"Api报错返回内容为\r\n" #role_region = mys_data['data']['list'][0]['region']
+ str(raw_data) + "\r\n出现这种情况可能的UID输入错误 or 不存在" role_level = mys_data['data']['list'][0]['level']
)
else: raw_data = await GetSpiralAbyssInfo(uid,use_cookies,date)
pass raw_char_data = await GetInfo(uid,use_cookies)
if (raw_data["retcode"] != 0):
if (raw_data["retcode"] == 10001):
#return ("Cookie错误/过期请重置Cookie")
errorDB(use_cookies,"error")
elif (raw_data["retcode"] == 10101):
#return ("当前cookies已达到30人上限")
errorDB(use_cookies,"limit30")
elif (raw_data["retcode"] == 10102):
return ("当前查询id已经设置了隐私无法查询")
return (
"Api报错返回内容为\r\n"
+ str(raw_data) + "\r\n出现这种情况可能的UID输入错误 or 不存在"
)
else:
break
is_edit = False is_edit = False
@ -800,33 +824,40 @@ async def draw_abyss_pic(uid,nickname,floor_num,image = None,mode = 2,date = "1"
return resultmes return resultmes
async def draw_pic(uid,nickname,image = None,mode = 2,role_level = None): async def draw_pic(uid,nickname,image = None,mode = 2,role_level = None):
if mode == 3: while 1:
mys_data = await GetMysInfo(uid) use_cookies = cacheDB(uid,mode-1)
mysid_data = mys_data[1] if use_cookies == '':
mys_data = mys_data[0] return "绑定记录不存在。"
for i in mys_data['data']['list']: elif use_cookies == "没有可以使用的Cookies":
if i['data'][0]['name'] != '活跃天数': return "没有可以使用的Cookies"
mys_data['data']['list'].remove(i)
uid = mys_data['data']['list'][0]['game_role_id'] if mode == 3:
nickname = mys_data['data']['list'][0]['nickname'] mys_data = await GetMysInfo(uid,use_cookies)
role_level = mys_data['data']['list'][0]['level'] mysid_data = uid
raw_data = await GetInfo(uid,"cn_gf01","1",mysid_data) for i in mys_data['data']['list']:
else: if i['game_id'] != 2:
raw_data = await GetInfo(uid) mys_data['data']['list'].remove(i)
uid = mys_data['data']['list'][0]['game_role_id']
if (raw_data["retcode"] != 0): nickname = mys_data['data']['list'][0]['nickname']
if (raw_data["retcode"] == 10001): role_level = mys_data['data']['list'][0]['level']
return ("Cookie错误/过期请重置Cookie")
elif (raw_data["retcode"] == 10101): raw_data = await GetInfo(uid,use_cookies)
return ("当前cookies已达到30人上限")
elif (raw_data["retcode"] == 10102): if (raw_data["retcode"] != 0):
return ("当前查询id已经设置了隐私无法查询") if (raw_data["retcode"] == 10001):
return ( #return ("Cookie错误/过期请重置Cookie")
"Api报错返回内容为\r\n" errorDB(use_cookies,"error")
+ str(raw_data) + "\r\n出现这种情况可能的UID输入错误 or 不存在" elif (raw_data["retcode"] == 10101):
) #return ("当前cookies已达到30人上限")
else: errorDB(use_cookies,"limit30")
pass elif (raw_data["retcode"] == 10102):
return ("当前查询id已经设置了隐私无法查询")
return (
"Api报错返回内容为\r\n"
+ str(raw_data) + "\r\n出现这种情况可能的UID输入错误 or 不存在"
)
else:
break
bg_list = random.choice([x for x in os.listdir(BG_PATH) bg_list = random.choice([x for x in os.listdir(BG_PATH)
if os.path.isfile(os.path.join(BG_PATH, x))]) if os.path.isfile(os.path.join(BG_PATH, x))])
@ -847,23 +878,13 @@ async def draw_pic(uid,nickname,image = None,mode = 2,role_level = None):
char_datas = [] char_datas = []
def get_charid(start,end): def get_charid(start,end):
if mode == 2: for i in range(start,end):
for i in range(start,end): char_rawdata = GetCharacter(uid,[i],use_cookies)
char_rawdata = GetCharacter(uid,[i])
if char_rawdata["retcode"] == -1:
if char_rawdata["retcode"] == -1: pass
pass else:
else: char_datas.append(char_rawdata["data"]['avatars'][0])
char_datas.append(char_rawdata["data"]['avatars'][0])
else:
for i in range(start,end):
char_rawdata = GetCharacter(uid,[i],"cn_gf01",mysid_data)
if char_rawdata["retcode"] == -1:
pass
else:
char_datas.append(char_rawdata["data"]['avatars'][0])
thread_list = [] thread_list = []
st = 8 st = 8