fxdyz
This commit is contained in:
+9
-2
@@ -451,10 +451,11 @@ class JX3APIService:
|
||||
)
|
||||
|
||||
|
||||
async def yanhuachaxun(self, server: str, name:str ) -> Dict[str, Any]:
|
||||
async def yanhuachaxun(self, server: str, name: str, limit: int) -> Dict[str, Any]:
|
||||
"""烟花记录"""
|
||||
# 数据处理
|
||||
async def processor(data: Any, return_data: Dict[str, Any]) -> None:
|
||||
data = data[:limit]
|
||||
for item in data:
|
||||
item["time"] = format_time(item.get("time"))
|
||||
|
||||
@@ -511,7 +512,13 @@ class JX3APIService:
|
||||
async def zhanji(self, name: str, server:str, mode:str) -> Dict[str, Any]:
|
||||
"""战绩"""
|
||||
# 数据处理
|
||||
async def processor(data: Any, return_data: Dict[str, Any]) -> None:
|
||||
async def processor(data: Any, return_data: Dict[str, Any]) -> None:
|
||||
performance_key = {
|
||||
"22": "2v2",
|
||||
"33": "3v3",
|
||||
"55": "5v5",
|
||||
}.get(str(mode), "3v3")
|
||||
data["currentPerformance"] = data["performance"][performance_key]
|
||||
return_data["data"] = data
|
||||
|
||||
return await self._request_api(
|
||||
|
||||
@@ -13,6 +13,7 @@ class KungfuAliasService:
|
||||
def __init__(self, sqlite: AsyncSQLiteDB, seed_path: Path):
|
||||
self.sql = sqlite
|
||||
self.seed_path = seed_path
|
||||
self._kungfu_lookup: dict[str, str] = {}
|
||||
|
||||
async def initialize(self):
|
||||
await self.sql.execute(
|
||||
@@ -29,6 +30,7 @@ class KungfuAliasService:
|
||||
"""
|
||||
)
|
||||
await self._seed_defaults()
|
||||
await self._reload_cache()
|
||||
|
||||
async def _seed_defaults(self):
|
||||
records = self._load_seed_defaults()
|
||||
@@ -84,6 +86,7 @@ class KungfuAliasService:
|
||||
for values in records
|
||||
)
|
||||
await self.sql.execute_transaction(statements)
|
||||
await self._reload_cache()
|
||||
return len(records)
|
||||
|
||||
async def list_kungfu(self) -> list[dict[str, Any]]:
|
||||
@@ -141,6 +144,36 @@ class KungfuAliasService:
|
||||
""",
|
||||
(*values, normalized_pzid),
|
||||
)
|
||||
await self._reload_cache()
|
||||
|
||||
async def _reload_cache(self):
|
||||
"""Refresh the canonical kungfu name and alias lookup cache.
|
||||
|
||||
Returns:
|
||||
None.
|
||||
"""
|
||||
rows = await self.list_kungfu()
|
||||
lookup = {
|
||||
self._key(row["name"]): row["name"]
|
||||
for row in rows
|
||||
if row["name"]
|
||||
}
|
||||
for row in rows:
|
||||
for alias in row["aliases"]:
|
||||
lookup.setdefault(self._key(alias), row["name"])
|
||||
self._kungfu_lookup = lookup
|
||||
|
||||
def resolve_kungfu(self, value: Any) -> str:
|
||||
"""Resolve a canonical kungfu name or alias to its canonical name.
|
||||
|
||||
Args:
|
||||
value: Canonical kungfu name or configured alias.
|
||||
|
||||
Returns:
|
||||
Canonical kungfu name when matched; otherwise the cleaned input.
|
||||
"""
|
||||
kungfu = self._clean(value)
|
||||
return self._kungfu_lookup.get(self._key(kungfu), kungfu)
|
||||
|
||||
def _normalize_aliases(self, name: str, aliases: Iterable[Any]) -> list[str]:
|
||||
result: list[str] = []
|
||||
|
||||
+22
-18
@@ -321,9 +321,13 @@ class MessageBuilder:
|
||||
""" 阵营事件 阵营"""
|
||||
return await self.T2I_image_msg(event, lambda: self.jx3api.zhenyingevent(name,50))
|
||||
|
||||
async def yanhuachaxun(self, event: AstrMessageEvent,server: str,name: str = "" ):
|
||||
""" 烟花 服务器 角色"""
|
||||
return await self.T2I_image_msg(event, lambda: self.jx3api.yanhuachaxun(server,name))
|
||||
async def yanhuachaxun(self, event: AstrMessageEvent, server: str, name: str = "", limit: int = 50):
|
||||
""" 烟花 服务器 角色 条数"""
|
||||
if limit <= 0:
|
||||
return event.plain_result("条数必须为正整数")
|
||||
return await self.T2I_image_msg(
|
||||
event, lambda: self.jx3api.yanhuachaxun(server, name, limit)
|
||||
)
|
||||
|
||||
async def shuma(self, event: AstrMessageEvent,server: str ):
|
||||
""" 刷马 服务器"""
|
||||
@@ -369,9 +373,9 @@ class MessageBuilder:
|
||||
lambda selected: self.jx3api.rank_statistical_select(server,selected,),
|
||||
)
|
||||
|
||||
async def shilianpaixing(self, event: AstrMessageEvent, server: str , name: str):
|
||||
async def shilianpaixing(self, event: AstrMessageEvent, server: str , kungfu: str):
|
||||
""" 试炼排行 服务器 心法 """
|
||||
return await self.T2I_image_msg(event, lambda: self.jx3api.shilianpaixing(name, server))
|
||||
return await self.T2I_image_msg(event, lambda: self.jx3api.shilianpaixing(kungfu, server))
|
||||
|
||||
async def zhengyingpaimai(self, event: AstrMessageEvent,server: str , name: str = "", limit: int = 50 ):
|
||||
""" 阵营拍卖 物品名称 服务器"""
|
||||
@@ -465,25 +469,25 @@ class MessageBuilder:
|
||||
""" 角色 服务器 名称 """
|
||||
return await self.plain_msg(event, lambda: self.jx3api.jueshe(server, name, 1))
|
||||
|
||||
async def zhenyan(self, event: AstrMessageEvent, name: str):
|
||||
async def zhenyan(self, event: AstrMessageEvent, kungfu: str):
|
||||
""" 阵眼 心法"""
|
||||
return await self.plain_msg(event, lambda: self.jx3api.zhenyan(name))
|
||||
return await self.plain_msg(event, lambda: self.jx3api.zhenyan(kungfu))
|
||||
|
||||
async def peizhuang(self, event: AstrMessageEvent,name: str, tags: str = ""):
|
||||
async def peizhuang(self, event: AstrMessageEvent, kungfu: str, tags: str = ""):
|
||||
""" 配装 心法 类型"""
|
||||
return await self.plain_msg(event, lambda: self.jx3box.peizhuang(name,tags))
|
||||
return await self.plain_msg(event, lambda: self.jx3box.peizhuang(kungfu,tags))
|
||||
|
||||
async def zilipaixing(self, event: AstrMessageEvent, server: str = "", school: str = ""):
|
||||
""" 资历排行 服务器 门派 """
|
||||
return await self.T2I_image_msg(event, lambda: self.jx3api.zilipaixing(server, school))
|
||||
|
||||
async def jineng(self, event: AstrMessageEvent, name: str):
|
||||
async def jineng(self, event: AstrMessageEvent, kungfu: str):
|
||||
""" 技能 心法"""
|
||||
return await self.T2I_image_msg(event, lambda: self.jx3api.jineng(name,0))
|
||||
return await self.T2I_image_msg(event, lambda: self.jx3api.jineng(kungfu,0))
|
||||
|
||||
async def qixue(self, event: AstrMessageEvent, name: str):
|
||||
async def qixue(self, event: AstrMessageEvent, kungfu: str):
|
||||
""" 奇穴 心法"""
|
||||
return await self.T2I_image_msg(event, lambda: self.jx3api.qixue(name,0))
|
||||
return await self.T2I_image_msg(event, lambda: self.jx3api.qixue(kungfu,0))
|
||||
|
||||
async def liaotian(self, event: AstrMessageEvent, server:str, name: str, limit:int = 20, page:int = 1):
|
||||
""" 发言 服务器 角色 条数 页数"""
|
||||
@@ -493,9 +497,9 @@ class MessageBuilder:
|
||||
""" 统战 服务器"""
|
||||
return await self.plain_msg(event, lambda: self.jx3api.tongzhanyy(server))
|
||||
|
||||
async def xiaoyao(self, event: AstrMessageEvent, name:str = ""):
|
||||
async def xiaoyao(self, event: AstrMessageEvent, kungfu:str = ""):
|
||||
""" 小药 心法"""
|
||||
return await self.T2I_image_msg(event, lambda: self.jx3api.xiaoyao(name))
|
||||
return await self.T2I_image_msg(event, lambda: self.jx3api.xiaoyao(kungfu))
|
||||
|
||||
async def pianzhi(self, event: AstrMessageEvent, uid: str, server:str = ""):
|
||||
""" 骗子 uid 服务器"""
|
||||
@@ -618,12 +622,12 @@ class MessageBuilder:
|
||||
return await self.T2I_image_msg(event, lambda: self.jx3api.diaoluo(name, server, limit))
|
||||
|
||||
|
||||
async def hong(self, event: AstrMessageEvent,name: str):
|
||||
async def hong(self, event: AstrMessageEvent, kungfu: str):
|
||||
""" 宏 心法"""
|
||||
return await self.handler_plain_image_msg(
|
||||
event,
|
||||
lambda: self.jx3box.hong1(name),
|
||||
lambda selected: self.jx3box.hong_select(name, selected),
|
||||
lambda: self.jx3box.hong1(kungfu),
|
||||
lambda selected: self.jx3box.hong_select(kungfu, selected),
|
||||
result_handler=self.plain_image_msg,
|
||||
)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user