From 53ac584c2ab0fdfcb03f0de382c155dfcc231934 Mon Sep 17 00:00:00 2001 From: KimigaiiWuyi <444835641@qq.com> Date: Fri, 20 Oct 2023 04:04:30 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=93=9D=20=E6=9B=B4=E6=96=B0`gs=E5=B8=AE?= =?UTF-8?q?=E5=8A=A9`=E5=92=8C`ReadME`?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GenshinUID/genshinuid_help/get_help.py | 4 +- GenshinUID/genshinuid_help/help.json | 55 +++++++++++++++++- .../tools/help_data/GenshinUID Help.xlsx | Bin 18377 -> 21308 bytes GenshinUID/utils/api/cv/api.py | 21 ++++--- GenshinUID/utils/api/cv/request.py | 52 +++++++++++++++++ GenshinUID/utils/image/image_tools.py | 4 +- README.md | 8 +-- 7 files changed, 124 insertions(+), 20 deletions(-) diff --git a/GenshinUID/genshinuid_help/get_help.py b/GenshinUID/genshinuid_help/get_help.py index 3462508f..4c6b74ed 100644 --- a/GenshinUID/genshinuid_help/get_help.py +++ b/GenshinUID/genshinuid_help/get_help.py @@ -7,9 +7,9 @@ from msgspec import json as msgjson from gsuid_core.help.model import PluginHelp from gsuid_core.help.draw_plugin_help import get_help -from ..version import GenshinUID_version from ..genshinuid_config.gs_config import gsconfig from ..utils.image.image_tools import get_color_bg +from ..version import Genshin_version, GenshinUID_version from ..utils.fonts.genshin_fonts import genshin_font_origin TEXT_PATH = Path(__file__).parent / 'texture2d' @@ -48,6 +48,6 @@ async def get_core_help() -> Union[bytes, str]: False, (5, 5, 5), column=column, - extra_message=['版本号测试', '数据版本 2.55'], + extra_message=[f'数据版本 {Genshin_version}'], ) return img diff --git a/GenshinUID/genshinuid_help/help.json b/GenshinUID/genshinuid_help/help.json index f25d5060..4819a1d6 100644 --- a/GenshinUID/genshinuid_help/help.json +++ b/GenshinUID/genshinuid_help/help.json @@ -268,7 +268,7 @@ { "name": "查询xx带xx换xx", "desc": "查询不存在的角色", - "eg": "查询莱依拉带月光换公子", + "eg": "查询莱依拉带护摩换公子圣遗物", "need_ck": false, "need_sk": false, "need_admin": false @@ -320,6 +320,51 @@ "need_ck": false, "need_sk": false, "need_admin": false + }, + { + "name": "圣遗物仓库", + "desc": "查看自己已缓存的圣遗物列表", + "eg": "圣遗物仓库", + "need_ck": false, + "need_sk": false, + "need_admin": false + } + ] + }, + "排名服务": { + "desc": "数据源由AKACV提供", + "data": [ + { + "name": "gs开启排名系统", + "desc": "开启排名系统之后可正常使用", + "eg": "gs开启排名系统", + "need_ck": false, + "need_sk": false, + "need_admin": true + }, + { + "name": "排名列表", + "desc": "查看自己的排名图片", + "eg": "排名列表", + "need_ck": false, + "need_sk": false, + "need_admin": false + }, + { + "name": "排名统计", + "desc": "查看自己的排名文字", + "eg": "排名统计", + "need_ck": false, + "need_sk": false, + "need_admin": false + }, + { + "name": "角色排名", + "desc": "查看该角色的全球排名", + "eg": "角色排名雷神", + "need_ck": false, + "need_sk": false, + "need_admin": false } ] }, @@ -445,6 +490,14 @@ "need_ck": false, "need_sk": false, "need_admin": false + }, + { + "name": "今日素材", + "desc": "查看今天的副本掉落素材", + "eg": "今日材料", + "need_ck": false, + "need_sk": false, + "need_admin": false } ] }, diff --git a/GenshinUID/tools/help_data/GenshinUID Help.xlsx b/GenshinUID/tools/help_data/GenshinUID Help.xlsx index f2f3d4839be5767f526dd4985cbb447207efc783..61002804a79d1fee6d1bdbe7c7357dfefe415719 100644 GIT binary patch literal 21308 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

57&2M2B+i&Z{3a1h&fbqX3CBe zX8js$dlD+P&sueddsp_?^Uc7k z^Rl<(6EipNy;AO;KFOyeyfW|CEn6#i!2DKqcuJE|=o6%Y@lZi>mgd8U^r$dChd6 zyJq(-!LQra*_YOtE~qsQy)Jzsc0Xfj)sjhn_WK@wAS-uLmvQkQ!G(7ZIXx75_THzn zJLhvp(gE(a^z7)V)sEYH>wd5Q%ZfXBKv!d8OBWlGmr98P)5HfB1_mi$H~~isAj*&j zq`_gccZ#n!F!Qy6MpmBWT`nsX1!ulc?F!zvUz&3#O_~|{`#rDduGol2OTP%sko>gI zKdtS}H~U@5@eej^b^D~!Wyu_TW0UFDC-OgE-xW^xI5lO}W;PXhhM#u3_uky=xco%? zp=EC;R*E)HGI#mASs=n>fvDRy_Q%>&OQR<8$Ldyv%7pSN^*&x(P|Q0oHe-{s=1%J= z_w41X-v8OZZSAUU4dT&rOeA(CDNblRXW#Jj)K!N`|Bp^gfAVP8-^Y`_9pyav%KyEY zpv%M=n--~F$m~elZRRVqs4`*_oAlEKHR{jJ^X(Q^TCo)GSK;~jxApUcV*x$s8x&`& zO72^0oy6>r-ly4`v?j-i*E770Q!j6m(HRr9!jJx``%#ly-Txhu?ZDtvWrvI*M?2@| zm89mC#D`QCq!!15M)&tl_04_^3dh!e?2EHIr!LtrMQC|@+4mi~IpS5JOFeZK>6=W> z`}DqiO`XH-3CAqHByD(FIluhb)+aZw9^3tj)999jl;O(bi<%ZJ-k5l^WB>R4ZsLoa zf(~kkGn*uFYpi>=Tz&KJT&6WUtP+%?7L{nKz7pGW$V!c4&!&!>+K+DUnd13!YE;vl zzT@^w`Wh83bXf5k&cA!WX{~Iiz4@OXH#w(wzxwraFW*&;sgpKG2})1ByXsEl^n(xQ z9a^4Xw?lfb#p<1#I+C-6=j|29t2DVOwc=gKviqkt^RK+_anZg)UAJ-nX~Tz0?!7N( zH`5afYwoOiTPgB&cE)n{nL1y-8vM=Uf3w#_-*V=`oEMAC6Wm@d_;>$?RoV;w`m=jh zzw_1k_&xm{&mV^$$2@aF**>=$z4wvvIX=ZvGKcZR?q74i?epLN*)f{k-8{f$zk;y5 zp2F$UA9dPB@eKcu?y2f2Ed7%C`AYWs9E*l{B`3f6*=^;2?Y^zsuXN|~@eh-qS=gQH zmpQY%^2Ddfv;PAZqA@awfES%X&Lu;SIbdF3U}R7LlC0hg3|Qh3VgT;C4P*f1h%*&8 zSS^NbDSBN8(gCs51Fi?0`S4i=aRSV;nI_0p0X}`8N&^BwtO9preXybeHH^?J5s+?( zbLU~vjasFkdmX)CMwm4XxUCbtG6R`~D5lZPLZ7)om~{{(G~g~mHvoO;9AQACIkIEm z&OkQ+eU<`YK)4yY0f;#ZbW_j=xe=zsSzt8<93&7^uqQ-N$qxar*hV^*4>fYp59R}D zgG8=6kOkKUJ*E%c>F7twA#|?>7Kd=%umk4MwWA-PhS2^8*bGEyhaabg&(olD#2^6V zX)|EW2CUWaX+RC7eov%o5Z$5Z^(Dw2NGNSX)`n4gqML)h@)co@i5g_g9(^4wx(Vpx z{0I{|EFmVqNBxQSJEHWEW8%=AkG}65VM>+=-1$%!fGKG9WCe9~ QfUPSjhD;!9uMda^03M$3Gynhq literal 18377 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 diff --git a/GenshinUID/utils/api/cv/api.py b/GenshinUID/utils/api/cv/api.py index a28299b8..9654eafc 100644 --- a/GenshinUID/utils/api/cv/api.py +++ b/GenshinUID/utils/api/cv/api.py @@ -1,15 +1,14 @@ -BASE = 'https://akasha.cv' +BASE = 'https://akasha.cv/api' -MAIN_API = BASE + '/api/filters/accounts/' -RANK_API = BASE + '/api/getCalculationsForUser/{}' -DATA_API = BASE + '/api/user/{}' -REFRESH_API = BASE + '/api/user/refresh/{}' -LEADERBOARD_API = BASE + '/api/v2/leaderboards/categories?characterId={}' +MAIN_API = BASE + '/filters/accounts/' +RANK_API = BASE + '/getCalculationsForUser/{}' +DATA_API = BASE + '/user/{}' +REFRESH_API = BASE + '/user/refresh/{}' +LEADERBOARD_API = BASE + '/v2/leaderboards/categories?characterId={}' -SORT_PROMOT = 'sort=calculation.result&order=-1&size=20' +SORT_PROMOT = 'sort=calculation.result&' +UNI_PROMOT = 'order=-1&size=20&page=1&filter=&uids=&fromId=' SORT_API = ( - BASE - + '/api/leaderboards?' - + SORT_PROMOT - + '&page=1&filter=&uids=&p=&fromId=&calculationId={}' + BASE + '/leaderboards?' + SORT_PROMOT + 'p=&calculationId={}' + UNI_PROMOT ) +ARTI_SORT_API = BASE + '/artifacts?sort={}&p=' + UNI_PROMOT diff --git a/GenshinUID/utils/api/cv/request.py b/GenshinUID/utils/api/cv/request.py index e5410203..e3e085a3 100644 --- a/GenshinUID/utils/api/cv/request.py +++ b/GenshinUID/utils/api/cv/request.py @@ -10,9 +10,24 @@ from .api import ( RANK_API, SORT_API, REFRESH_API, + ARTI_SORT_API, LEADERBOARD_API, ) +SUBSTAT_MAP = { + '双爆': 'critValue', + '攻击力': 'substats.Flat ATK', + '血量': 'substats.Flat HP', + '防御力': 'substats.Flat DEF', + '百分比攻击力': 'substats.ATK%', + '百分比血量': 'substats.HP%', + '百分比防御': 'substats.DEF%', + '元素精通': 'substats.Elemental Mastery', + '元素充能效率': 'substats.Energy Recharge', + '暴击率': 'substats.Crit RATE', + '暴击伤害': 'substats.Crit DMG', +} + class _CvApi: ssl_verify = True @@ -24,6 +39,43 @@ class _CvApi: ) self.sessionID = None + async def get_artifacts_list( + self, + sort_by: Union[ + Literal[ + 'critValue', + 'substats.Flat ATK', + 'substats.Flat HP', + 'substats.Flat DEF', + 'substats.ATK%', + 'substats.HP%', + 'substats.DEF%', + 'substats.Elemental Mastery', + 'substats.Energy Recharge', + 'substats.Crit RATE', + 'substats.Crit DMG', + ], + str, + ] = 'critValue', + ) -> Optional[List[Dict]]: + if not sort_by.startswith(('c', 's')): + for i in SUBSTAT_MAP: + if sort_by in i: + sort_by = SUBSTAT_MAP[i] + break + else: + return None + raw_data = await self._cv_request( + ARTI_SORT_API.format(sort_by), + 'GET', + self._HEADER, + ) + if isinstance(raw_data, Dict) and 'data' in raw_data: + if raw_data['data']: + return raw_data['data'] + else: + return None + async def get_leaderboard_id_list( self, char_id: str ) -> Optional[List[Dict]]: diff --git a/GenshinUID/utils/image/image_tools.py b/GenshinUID/utils/image/image_tools.py index 6427b2f4..5e77561d 100644 --- a/GenshinUID/utils/image/image_tools.py +++ b/GenshinUID/utils/image/image_tools.py @@ -350,7 +350,7 @@ class CustomizeImage: # 获取背景主色 color = 8 q = edit_bg.quantize(colors=color, method=2) - bg_color = (0, 0, 0) + bg_color: Tuple[int, int, int] = (0, 0, 0) if is_light: based_light = 195 else: @@ -364,7 +364,7 @@ class CustomizeImage: ) light_value = bg[0] * 0.3 + bg[1] * 0.6 + bg[2] * 0.1 if abs(light_value - based_light) < temp: # noqa:E203 - bg_color = bg + bg_color = bg # type:ignore temp = abs(light_value - based_light) return bg_color diff --git a/README.md b/README.md index d0de3993..0b97a4e2 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,12 @@

GenshinUID

-

GenshinUID 4.0

+

GenshinUID 4.1

✨支持OneBot(QQ)、QQ频道、微信、开黑啦、Telegram的全功能原神Bot插件✨

- 安装文档   ·   - 指令列表   ·   - 常见问题 + 安装文档   ·   + 指令列表   ·   + 常见问题