From f8a7e1c34b4422b60241814be8ee85c04c8bcab9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wuyi=E6=97=A0=E7=96=91?= <444835641@qq.com> Date: Sat, 4 Dec 2021 19:12:19 +0800 Subject: [PATCH] !!fix!! --- README.md | 12 ++ __init__.py | 2 +- getDB.py | 85 +++++++++---- getImg.py | 339 ++++++++++++++++++++++++++++------------------------ 4 files changed, 252 insertions(+), 186 deletions(-) diff --git a/README.md b/README.md index ba3df996..d807ce38 100644 --- a/README.md +++ b/README.md @@ -48,6 +48,18 @@ $ pip3 install -r requirements.txt **(作者已经转用NoneBot2,Hoshino的更新可能未经测试,有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 新增:`查询词云`功能 diff --git a/__init__.py b/__init__.py index 285a068c..3d74b11e 100644 --- a/__init__.py +++ b/__init__.py @@ -212,7 +212,7 @@ async def setting(ctx): mys_data = await GetMysInfo(mysid,cookie) mys_data = mys_data[0] for i in mys_data['data']['list']: - if i['data'][0]['name'] != '活跃天数': + if i['game_id'] != 2: mys_data['data']['list'].remove(i) uid = mys_data['data']['list'][0]['game_role_id'] await cookiesDB(uid,cookie,userid) diff --git a/getDB.py b/getDB.py index c00ad74c..6ef88d27 100644 --- a/getDB.py +++ b/getDB.py @@ -47,7 +47,9 @@ async def CheckDB(): mysid_data = aid.group(0).split('=') mysid = mysid_data[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'] str = str + f"uid{row[0]}/mysid{mysid}的Cookies是正常的!\n" except: @@ -141,11 +143,24 @@ async def selectDB(userid,mode = "auto"): return [row[2],3] 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') c = conn.cursor() - c.execute("DROP TABLE CookiesCache") - conn.commit() - conn.close() + if err == "error": + c.execute("UPDATE NewCookiesTable SET Extra = ? WHERE Cookies=?",("error",ck)) + elif err == "limit30": + c.execute("UPDATE NewCookiesTable SET Extra = ? WHERE Cookies=?",("limit30",ck)) def cacheDB(uid,mode = 1,mys = None): use = '' @@ -168,15 +183,36 @@ def cacheDB(uid,mode = 1,mys = None): c_data = cursor.fetchall() if len(c_data)==0: - cookiesrow = c.execute("SELECT * FROM NewCookiesTable ORDER BY RANDOM() limit 1") - for row2 in cookiesrow: + if mode == 2: + 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: c.execute("INSERT OR IGNORE INTO CookiesCache (Cookies,UID) \ - VALUES (?, ?)",(row2[1],uid)) - if mode == 2: + VALUES (?, ?)",(use,uid)) + elif mode == 2: c.execute("INSERT OR IGNORE INTO CookiesCache (Cookies,MYSID) \ - VALUES (?, ?)",(row2[1],uid)) - use = row2[1] + VALUES (?, ?)",(use,uid)) + 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: use = c_data[0][2] if mys: @@ -189,6 +225,10 @@ def cacheDB(uid,mode = 1,mys = None): conn.close() 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): conn = sqlite3.connect('ID_DATA.db') c = conn.cursor() @@ -338,7 +378,6 @@ async def GetSignList(): return data except: print("访问失败,请重试!") - #sys.exit(1) async def GetSignInfo(Uid,ServerID="cn_gf01"): if Uid[0] == '5': @@ -357,7 +396,6 @@ async def GetSignInfo(Uid,ServerID="cn_gf01"): return data except: print("访问失败,请重试!") - #sys.exit(1) async def MysSign(Uid,ServerID="cn_gf01"): if Uid[0] == '5': @@ -382,7 +420,6 @@ async def MysSign(Uid,ServerID="cn_gf01"): return data2 except: print("访问失败,请重试!") - #sys.exit(1) async def GetAward(Uid,ServerID="cn_gf01"): if Uid[0] == '5': @@ -405,7 +442,7 @@ async def GetAward(Uid,ServerID="cn_gf01"): print("访问失败,请重试!") #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': ServerID = "cn_qd01" 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', 'x-rpc-client_type': '5', 'Referer': 'https://webstatic.mihoyo.com/', - "Cookie": cacheDB(Uid,1,mysid)}) + "Cookie": ck}) data = json.loads(req.text) return data except: print("访问失败,请重试!") #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': ServerID = "cn_qd01" try: @@ -435,7 +472,7 @@ async def GetSpiralAbyssInfo(Uid, ServerID="cn_gf01",Schedule_type="1",mysid = N headers={ 'DS': DSGet("role_id=" + Uid + "&schedule_type=" + Schedule_type + "&server="+ ServerID), 'Origin': 'https://webstatic.mihoyo.com', - 'Cookie': cacheDB(Uid,1,mysid), + 'Cookie': ck, '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', 'x-rpc-client_type': '5', @@ -446,9 +483,10 @@ async def GetSpiralAbyssInfo(Uid, ServerID="cn_gf01",Schedule_type="1",mysid = N return data except: 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': ServerID = "cn_qd01" try: @@ -457,7 +495,7 @@ def GetCharacter(Uid,Character_ids, ServerID="cn_gf01",mysid = None): headers={ 'DS': DSGet('',{"character_ids": Character_ids ,"role_id": Uid ,"server": ServerID}), 'Origin': 'https://webstatic.mihoyo.com', - 'Cookie': cacheDB(Uid,1,mysid), + 'Cookie': ck, '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', 'x-rpc-client_type': '5', @@ -471,11 +509,7 @@ def GetCharacter(Uid,Character_ids, ServerID="cn_gf01",mysid = None): print("访问失败,请重试!") #sys.exit(1) -async def GetMysInfo(mysid,cookies = None): - if cookies: - ck = cookies - else: - ck = cacheDB(mysid,2) +async def GetMysInfo(mysid,ck): try: async with AsyncClient() as client: req = await client.get( @@ -488,7 +522,7 @@ async def GetMysInfo(mysid,cookies = None): 'Referer': 'https://webstatic.mihoyo.com/', "Cookie": ck}) data = json.loads(req.text) - return [data,mysid] + return data except: im = "err" return im @@ -505,7 +539,6 @@ async def GetWeaponInfo(name): async def GetCharInfo(name,mode = 0): str = "" - if mode == 1: str = "&talents=1" elif mode == 2: diff --git a/getImg.py b/getImg.py index 2ebe9198..ef242a46 100644 --- a/getImg.py +++ b/getImg.py @@ -10,7 +10,7 @@ import numpy as np 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 json @@ -61,67 +61,76 @@ def get_weapon_pic(url): urllib.request.urlretrieve(url, os.path.join(WEAPON_PATH, url.split('/')[-1])) async def draw_wordcloud(uid,image = None,mode = 2): - if mode == 3: - mys_data = await GetMysInfo(uid) - mysid_data = mys_data[1] - mys_data = mys_data[0] - for i in mys_data['data']['list']: - if i['data'][0]['name'] != '活跃天数': - mys_data['data']['list'].remove(i) - uid = mys_data['data']['list'][0]['game_role_id'] - nickname = mys_data['data']['list'][0]['nickname'] - role_level = mys_data['data']['list'][0]['level'] - raw_data = await GetInfo(uid,"cn_gf01","1",mysid_data) - raw_Abyss_data = await GetSpiralAbyssInfo(uid,"cn_gf01","1",mysid_data) - else: - raw_Abyss_data = await GetSpiralAbyssInfo(uid,"cn_gf01","1") - raw_data = await GetInfo(uid) - - if (raw_data["retcode"] != 0): - if (raw_data["retcode"] == 10001): - return ("Cookie错误/过期,请重置Cookie") - elif (raw_data["retcode"] == 10101): - return ("当前cookies已达到30人上限!") - elif (raw_data["retcode"] == 10102): - return ("当前查询id已经设置了隐私,无法查询!") - return ( - "Api报错,返回内容为:\r\n" - + str(raw_data) + "\r\n出现这种情况可能的UID输入错误 or 不存在" - ) - else: - pass + while 1: + use_cookies = cacheDB(uid,mode-1) + if use_cookies == '': + return "绑定记录不存在。" + elif use_cookies == "没有可以使用的Cookies!": + return "没有可以使用的Cookies!" + + if mode == 3: + mys_data = await GetMysInfo(uid,use_cookies) + mysid_data = uid + 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'] + nickname = mys_data['data']['list'][0]['nickname'] + role_level = mys_data['data']['list'][0]['level'] + raw_data = await GetInfo(uid,use_cookies) + raw_Abyss_data = await GetSpiralAbyssInfo(uid,use_cookies) + else: + raw_Abyss_data = await GetSpiralAbyssInfo(uid,use_cookies) + raw_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_Abyss_data = raw_Abyss_data['data'] raw_data = raw_data['data'] char_data = 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_rawdata["data"]["avatars"] + char_datas = [] + def get_charid(start,end): + for i in range(start,end): + char_rawdata = GetCharacter(uid,[i],use_cookies) - weapons_datas = [] - for i in char_datas: - weapons_datas.append(i['weapon']) - elif mode == 3: - char_ids = [] - char_rawdata = [] - - for i in char_data: - char_ids.append(i["id"]) + if char_rawdata["retcode"] == -1: + pass + else: + char_datas.append(char_rawdata["data"]['avatars'][0]) - char_rawdata = await GetCharacter(uid,char_ids,"cn_gf01",mysid_data) - char_datas = char_rawdata["data"]["avatars"] + thread_list = [] + 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 i in char_datas: - weapons_datas.append(i['weapon']) + for t in thread_list: + t.setDaemon(True) + t.start() + + for t in thread_list: + t.join() + + weapons_datas = [] + for i in char_datas: + weapons_datas.append(i['weapon']) l1_size = 2 l2_size = 4 @@ -149,7 +158,7 @@ async def draw_wordcloud(uid,image = None,mode = 2): star5num = 0 star5numcon = 0 - for i in raw_data['avatars']: + for i in char_datas: if i["name"] in ['雷电将军','温迪','钟离','枫原万叶']: g3d1 += 1 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: word_str["团雀附体"] = l2_size - if raw_Abyss_data['total_battle_times'] <= 12 and raw_Abyss_data['max_floor'] == '12-3': - word_str["PVP资格证"] = l4_size - if raw_Abyss_data["damage_rank"][0]["value"] >= 150000: - word_str["这一击,贯穿星辰"] = l4_size + if raw_Abyss_data["reveal_rank"] != []: + if raw_Abyss_data['total_battle_times'] <= 12 and raw_Abyss_data['max_floor'] == '12-3': + word_str["PVP资格证"] = 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) 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]) async def draw_abyss0_pic(uid,nickname,image = None,mode = 2,date = "1"): - if mode == 3: - mys_data = await GetMysInfo(uid) - mysid_data = mys_data[1] - mys_data = mys_data[0] - for i in mys_data['data']['list']: - if i['data'][0]['name'] != '活跃天数': - 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) + while 1: + use_cookies = cacheDB(uid,mode-1) + if use_cookies == '': + return "绑定记录不存在。" + elif use_cookies == "没有可以使用的Cookies!": + return "没有可以使用的Cookies!" - if (raw_data["retcode"] != 0): - if (raw_data["retcode"] == 10001): - return ("Cookie错误/过期,请重置Cookie") - elif (raw_data["retcode"] == 10101): - return ("当前cookies已达到30人上限!") - elif (raw_data["retcode"] == 10102): - return ("当前查询id已经设置了隐私,无法查询!") - return ( - "Api报错,返回内容为:\r\n" - + str(raw_data) + "\r\n出现这种情况可能的UID输入错误 or 不存在" - ) - else: - pass + if mode == 3: + mys_data = await GetMysInfo(uid,use_cookies) + mysid_data = uid + 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'] + 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,use_cookies,date) + 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_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 async def draw_abyss_pic(uid,nickname,floor_num,image = None,mode = 2,date = "1"): - if mode == 3: - mys_data = await GetMysInfo(uid) - mysid_data = mys_data[1] - mys_data = mys_data[0] - for i in mys_data['data']['list']: - if i['data'][0]['name'] != '活跃天数': - 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) + while 1: + use_cookies = cacheDB(uid,mode-1) + if use_cookies == '': + return "绑定记录不存在。" + elif use_cookies == "没有可以使用的Cookies!": + return "没有可以使用的Cookies!" - if (raw_data["retcode"] != 0): - if (raw_data["retcode"] == 10001): - return ("Cookie错误/过期,请重置Cookie") - elif (raw_data["retcode"] == 10101): - return ("当前cookies已达到30人上限!") - elif (raw_data["retcode"] == 10102): - return ("当前查询id已经设置了隐私,无法查询!") - return ( - "Api报错,返回内容为:\r\n" - + str(raw_data) + "\r\n出现这种情况可能的UID输入错误 or 不存在" - ) - else: - pass + if mode == 3: + mys_data = await GetMysInfo(uid,use_cookies) + mysid_data = uid + 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'] + 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,use_cookies,date) + 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 @@ -800,33 +824,40 @@ async def draw_abyss_pic(uid,nickname,floor_num,image = None,mode = 2,date = "1" return resultmes async def draw_pic(uid,nickname,image = None,mode = 2,role_level = None): - if mode == 3: - mys_data = await GetMysInfo(uid) - mysid_data = mys_data[1] - mys_data = mys_data[0] - for i in mys_data['data']['list']: - if i['data'][0]['name'] != '活跃天数': - mys_data['data']['list'].remove(i) - uid = mys_data['data']['list'][0]['game_role_id'] - nickname = mys_data['data']['list'][0]['nickname'] - role_level = mys_data['data']['list'][0]['level'] - raw_data = await GetInfo(uid,"cn_gf01","1",mysid_data) - else: - raw_data = await GetInfo(uid) - - if (raw_data["retcode"] != 0): - if (raw_data["retcode"] == 10001): - return ("Cookie错误/过期,请重置Cookie") - elif (raw_data["retcode"] == 10101): - return ("当前cookies已达到30人上限!") - elif (raw_data["retcode"] == 10102): - return ("当前查询id已经设置了隐私,无法查询!") - return ( - "Api报错,返回内容为:\r\n" - + str(raw_data) + "\r\n出现这种情况可能的UID输入错误 or 不存在" - ) - else: - pass + while 1: + use_cookies = cacheDB(uid,mode-1) + if use_cookies == '': + return "绑定记录不存在。" + elif use_cookies == "没有可以使用的Cookies!": + return "没有可以使用的Cookies!" + + if mode == 3: + mys_data = await GetMysInfo(uid,use_cookies) + mysid_data = uid + 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'] + nickname = mys_data['data']['list'][0]['nickname'] + role_level = mys_data['data']['list'][0]['level'] + + raw_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 bg_list = random.choice([x for x in os.listdir(BG_PATH) 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 = [] def get_charid(start,end): - if mode == 2: - for i in range(start,end): - char_rawdata = GetCharacter(uid,[i]) - - if char_rawdata["retcode"] == -1: - pass - else: - 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]) + for i in range(start,end): + char_rawdata = GetCharacter(uid,[i],use_cookies) + + if char_rawdata["retcode"] == -1: + pass + else: + char_datas.append(char_rawdata["data"]['avatars'][0]) thread_list = [] st = 8