From 8d522dae0f8ab3992edba3d5a823ed578e77953a Mon Sep 17 00:00:00 2001 From: qsc Date: Wed, 29 Jul 2026 00:21:59 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/jx3_data.py | 187 ++++------- core/message.py | 382 +++++++++++----------- data/jx3api_config.json | 703 ---------------------------------------- main.py | 173 +++++----- 4 files changed, 344 insertions(+), 1101 deletions(-) delete mode 100644 data/jx3api_config.json diff --git a/core/jx3_data.py b/core/jx3_data.py index 644eb0c..adae6f0 100644 --- a/core/jx3_data.py +++ b/core/jx3_data.py @@ -59,14 +59,7 @@ ACHIEVEMENT_CHOICES = [ ACHIEVEMENT_CHOICE_MAP = {index: (menu_id, title) for index, menu_id, title in ACHIEVEMENT_CHOICES} class JX3Service: - def __init__(self, api_data_path: str, config: AstrBotConfig, sqlite: AsyncSQLiteDB, cache_sqlite: Optional[AsyncSQLiteDB] = None): - # 加载API配置文件 - try: - with open(api_data_path, 'r', encoding='utf-8') as f: - self._api_config = json.load(f) - except FileNotFoundError as e: - logger.error(f"加载API配置文件失败: {e}") - self._api_config = {} + def __init__(self, config: AstrBotConfig, sqlite: AsyncSQLiteDB, cache_sqlite: Optional[AsyncSQLiteDB] = None): # 实例化 API Client self._api: APIClient = APIClient() # 引用插件配置文件 @@ -104,55 +97,33 @@ class JX3Service: "temp": "", "icons": {} } - + async def _base_request( self, - config_key: str, - method: str, + api_path: str, params: Optional[Dict[str, Any]] = None, - out_key: Optional[str] = "data" + out: Optional[str] = "data" ) -> Optional[Any]: """ 基础请求封装,处理配置获取和API调用。 - - :param config_key: 配置字典中对应 API 的键名。 - :param method: HTTP方法 ('GET' 或 'POST')。 - :param params: 请求参数或 Body 数据。 - :param out_key: 响应数据中需要提取的字段。 - :return: 成功时返回提取后的数据,失败时返回 None。 """ try: if not self._api: logger.error("API client is not initialized") return None - - api_config = self._api_config.get(config_key) - if not api_config: - logger.error(f"配置文件中未找到 key: {config_key}") - return None - - request_params = api_config.get("params", {}).copy() - if params: - request_params.update(params) - url = api_config.get("url", "") - if not url: - logger.error(f"API配置缺少 URL: {config_key}") - return None - - if method.upper() == 'POST': - data = await self._api.post(url, data=request_params, out_key=out_key) - else: # 默认为 GET - data = await self._api.get(url, params=request_params, out_key=out_key) + base_url = "https://www.jx3api.com" + api_url = base_url + api_path + data = await self._api.get(api_url, params=params, out_key=out) if not data: - logger.warning(f"获取接口信息失败或返回空数据: {config_key}") + logger.warning(f"获取接口信息失败或返回空数据: {api_url}") return data except Exception as e: - logger.error(f"基础请求调用出错 ({config_key}): {e}") + logger.error(f"基础请求调用出错 ({api_path}): {e}") return None @@ -174,16 +145,16 @@ class JX3Service: return return_data - async def richang(self,server: str, num: int = 0) -> Dict[str, Any]: - """日常活动""" + async def richang(self,mode: str, num: int) -> Dict[str, Any]: + """活动日历""" return_data = self._init_return_data() # 1. 构造请求参数 - params = {"server": server, "num": num} + params = {"mode": mode, "num": num} # 2. 调用基础请求 data: Optional[Dict[str, Any]] = await self._base_request( - "jx3_richang", "GET", params=params + "/active/calendar", params ) if not data: return_data["msg"] = "获取接口信息失败" @@ -191,95 +162,71 @@ class JX3Service: # 3. 处理返回数据 try: - # 格式化字符串,利用字典的 get 方法提供默认值 - result_msg = ( - f"{server}\n{data.get('date', '未知日期')} 星期{data.get('week', '未知')}\n" - f"大战:{data.get('war', '无')}\n" - f"战场:{data.get('battle', '无')}\n" - f"阵营:{data.get('orecar', '无')}\n" - f"宗门:{data.get('school', '无')}\n" - f"驰援:{data.get('rescue', '无')}\n" - f"画像:{data.get('draw', '无')}\n\n" - ) - - # 安全地处理列表索引 - luck = data.get('luck', []) - luck_msg = f"【宠物福缘】\n{', '.join(luck)}\n" - card = data.get('card', []) - card_msg = f"【家园声望·加倍道具】\n{', '.join(card)}\n" - team = data.get('team', [None, None, None]) - team_msg = f"【武林通鉴·公共任务】\n{team[0] or '无'}\n【武林通鉴·团队秘境】\n{team[1] or '无'}\n" + if mode == "list": + items = [] + num_richang = week_to_num(data["today"]["week"]) or 0 - return_data["data"] = result_msg + luck_msg + card_msg + team_msg - return_data["code"] = 200 + # 空白数据 + for _ in range(num_richang): + items.append({ + "en": False, + "compare": "", + "date": "", + "war": "", + "battle": "" + }) + + # 真实数据 + for m in data["total"]: + items.append({ + "en": True, + "compare": compare_date_str(m.get("date", "")), + "date": m.get("date", ""), + "war": m.get("war", ""), + "battle": m.get("battle", "") + }) + + return_data["data"]["items"] = items + return_data["data"]["today"] = data["today"] + else: + result_msg = ( + f"{data.get('date')} 星期{data.get('week')}\n" + f"大战:{data.get('war')}\n" + f"战场:{data.get('battle')}\n" + f"阵营:{data.get('orecar')}\n" + f"宗门:{data.get('school')}\n" + f"驰援:{data.get('rescue')}\n" + ) + + luck = data.get('lucky', []) + luck_msg = f"【宠物福缘】\n{', '.join(luck)}\n" + card = data.get('card', []) + card_msg = f"【家园声望·加倍道具】\n{', '.join(card)}\n" + weekly:Dict = data.get('weekly') + conn = weekly.get('conn') + raid = weekly.get('raid') + conn_msg = f"【武林通鉴·公共任务】\n{', '.join(conn)}\n" + raid_msg = f"【武林通鉴·公共任务】\n{', '.join(raid)}\n" + return_data["data"] = result_msg + luck_msg + card_msg + conn_msg + raid_msg except Exception as e: logger.error(f"数据处理时出错: {e}") return_data["msg"] = "处理接口返回信息时出错" return return_data - - return_data["code"] = 200 - return return_data - - async def richangyuche(self) -> Dict[str, Any]: - """日常预测""" - return_data = self._init_return_data() - - # 1. 构造请求参数 - params = { "num": 30} - - # 2. 调用基础请求 - data: Optional[Dict[str, Any]] = await self._base_request( - "jx3_richangyuche", "GET", params=params - ) - if not data: - return_data["msg"] = "获取接口信息失败" - return return_data - - # 3. 处理返回数据 - try: - items = [] - num_richang = week_to_num(data["data"][0]["week"]) or 0 - # 空白数据 - for _ in range(num_richang): - items.append({ - "en": False, - "compare": "", - "date": "", - "war": "", - "battle": "" - }) - - # 真实数据 - for m in data["data"]: - items.append({ - "en": True, - "compare": compare_date_str(m.get("date", "")), - "date": m.get("date", ""), - "war": m.get("war", ""), - "battle": m.get("battle", "") - }) - - return_data["data"]["items"] = items - return_data["data"]["today"] = data["today"] - except Exception as e: - logger.error(f"数据处理时出错: {e}") - return_data["msg"] = "处理接口返回信息时出错" - return return_data - # 加载模板 - try: - return_data["temp"] = await load_template("richangyuche.html") - except FileNotFoundError as e: - logger.error(f"加载模板失败: {e}") - return_data["msg"] = "系统错误:模板文件不存在" - return return_data - + if mode == "list": + try: + return_data["temp"] = await load_template("richangyuche.html") + except FileNotFoundError as e: + logger.error(f"加载模板失败: {e}") + return_data["msg"] = "系统错误:模板文件不存在" + return return_data + return_data["code"] = 200 return return_data - + async def xingxiashijian(self,name: str) -> Dict[str, Any]: """行侠事件""" return_data = self._init_return_data() diff --git a/core/message.py b/core/message.py index e12069a..800cc23 100644 --- a/core/message.py +++ b/core/message.py @@ -268,216 +268,216 @@ class MessageBuilder: await event.send(event.plain_result("猪脑过载,请稍后再试")) - async def jx3_helps(self, event: AstrMessageEvent): - """剑三 功能""" + async def helps(self, event: AstrMessageEvent): + """ 功能""" return await self.T2I_image_msg(event, self.jx3api.helps) - async def jx3_richang(self, event: AstrMessageEvent,server: str = "" ,num: int = 0): - """剑三 日常 服务器 天数""" - return await self.plain_msg(event, lambda: self.jx3api.richang(self.serverdefault(server),num)) + async def richang(self, event: AstrMessageEvent, num: int = 0): + """ 日常 天数""" + return await self.plain_msg(event, lambda: self.jx3api.richang("day",num)) - async def jx3_richangyuche(self, event: AstrMessageEvent): - """剑三 日常预测""" - return await self.T2I_image_msg(event, self.jx3api.richangyuche) + async def richangyuche(self, event: AstrMessageEvent): + """ 日常预测""" + return await self.T2I_image_msg(event, lambda: self.jx3api.richang("list",15)) - async def jx3_xingxiashijian(self, event: AstrMessageEvent,name: str = "穹野卫"): - """剑三 名望""" + async def xingxiashijian(self, event: AstrMessageEvent,name: str = "穹野卫"): + """ 名望""" return await self.T2I_image_msg(event, lambda: self.jx3api.xingxiashijian(name)) - async def jx3_keju(self, event: AstrMessageEvent,subject: str, limit: int = 5): - """剑三 科举""" + async def keju(self, event: AstrMessageEvent,subject: str, limit: int = 5): + """ 科举""" return await self.plain_msg(event, lambda: self.jx3api.keju(subject,limit)) - async def jx3_huajia(self, event: AstrMessageEvent, name: str= "", server: str = "", map: str= ""): - """剑三 花价 名称 服务器 地图""" + async def huajia(self, event: AstrMessageEvent, name: str= "", server: str = "", map: str= ""): + """ 花价 名称 服务器 地图""" return await self.T2I_image_msg(event, lambda: self.jx3api.huajia(self.serverdefault(server),name,map)) - async def jx3_zhuangshi(self, event: AstrMessageEvent, name: str): - """剑三 装饰 名称""" + async def zhuangshi(self, event: AstrMessageEvent, name: str): + """ 装饰 名称""" return await self.T2I_image_msg(event, lambda: self.jx3api.zhuangshi(name)) - async def jx3_qiwu(self, event: AstrMessageEvent, name: str): - """剑三 器物 地图名称""" + async def qiwu(self, event: AstrMessageEvent, name: str): + """ 器物 地图名称""" return await self.T2I_image_msg(event, lambda: self.jx3api.qiwu(name)) - async def jx3_xinwen(self, event: AstrMessageEvent,num:int = 5): - """剑三 新闻""" + async def xinwen(self, event: AstrMessageEvent,num:int = 5): + """ 新闻""" return await self.plain_msg(event, lambda: self.jx3api.xinwen(num)) - async def jx3_weihu(self, event: AstrMessageEvent,num:int = 5): - """剑三 维护""" + async def weihu(self, event: AstrMessageEvent,num:int = 5): + """ 维护""" return await self.plain_msg(event, lambda: self.jx3api.weihu(num)) - async def jx3_qufu(self, event: AstrMessageEvent,name: str = "双梦镇"): - """剑三 区服""" + async def qufu(self, event: AstrMessageEvent,name: str = "双梦镇"): + """ 区服""" return await self.plain_msg(event, lambda: self.jx3api.qufu(name)) - async def jx3_kaifu(self, event: AstrMessageEvent,server: str = ""): - """剑三 开服 服务器""" + async def kaifu(self, event: AstrMessageEvent,server: str = ""): + """ 开服 服务器""" return await self.plain_msg(event, lambda: self.jx3api.kaifu(self.serverdefault(server))) - async def jx3_zhuangtai(self, event: AstrMessageEvent): - """剑三 状态""" + async def zhuangtai(self, event: AstrMessageEvent): + """ 状态""" return await self.T2I_image_msg(event, self.jx3api.zhuangtai) - async def jx3_jigai(self, event: AstrMessageEvent,): - """剑三 技改""" + async def jigai(self, event: AstrMessageEvent,): + """ 技改""" return await self.plain_msg(event, self.jx3api.jigai) - async def jx3_xiaoyao(self, event: AstrMessageEvent): - """剑三 小药""" + async def xiaoyao(self, event: AstrMessageEvent): + """ 小药""" return await self.T2I_image_msg(event, self.jx3api.xiaoyao) - async def jx3_zhenyan(self, event: AstrMessageEvent, name: str): - """剑三 阵眼 心法""" + async def zhenyan(self, event: AstrMessageEvent, name: str): + """ 阵眼 心法""" return await self.plain_msg(event, lambda: self.jx3api.zhenyan(name)) - async def jx3_qixue(self, event: AstrMessageEvent, name: str): - """剑三 奇穴 心法""" + async def qixue(self, event: AstrMessageEvent, name: str): + """ 奇穴 心法""" return await self.T2I_image_msg(event, lambda: self.jx3api.qixue(name)) - async def jx3_jineng(self, event: AstrMessageEvent, name: str): - """剑三 技能 心法""" + async def jineng(self, event: AstrMessageEvent, name: str): + """ 技能 心法""" return await self.T2I_image_msg(event, lambda: self.jx3api.jineng(name)) - async def jx3_zilipaixing(self, event: AstrMessageEvent, school: str, server: str = ""): - """剑三 资历排行 职业 服务器""" + async def zilipaixing(self, event: AstrMessageEvent, school: str, server: str = ""): + """ 资历排行 职业 服务器""" return await self.T2I_image_msg(event, lambda: self.jx3api.zilipaixing(school, self.serverdefault(server))) - async def jx3_zilipaihang(self, event: AstrMessageEvent): - """剑三 资历排行 """ + async def zilipaihang(self, event: AstrMessageEvent): + """ 资历排行 """ return await self.T2I_image_msg(event, lambda: self.jx3api.zilipaixing("", "")) - async def jx3_shilianpaixing(self, event: AstrMessageEvent, name: str, server: str = ""): - """剑三 试炼排行 心法 服务器""" + async def shilianpaixing(self, event: AstrMessageEvent, name: str, server: str = ""): + """ 试炼排行 心法 服务器""" return await self.T2I_image_msg(event, lambda: self.jx3api.shilianpaixing(name, self.serverdefault(server))) - async def jx3_shaohua(self, event: AstrMessageEvent,): - """剑三 骚话""" + async def shaohua(self, event: AstrMessageEvent,): + """ 骚话""" return await self.plain_msg(event, self.jx3api.shaohua) - async def jx3_zili(self, event: AstrMessageEvent, name: str, server: str = ""): - """剑三 资历 角色名称 服务器""" + async def zili(self, event: AstrMessageEvent, name: str, server: str = ""): + """ 资历 角色名称 服务器""" return await self.handler_zili_msg(event, name, self.serverdefault(server)) - async def jx3_jiemi(self, event: AstrMessageEvent): - """剑三 解密""" + async def jiemi(self, event: AstrMessageEvent): + """ 解密""" return await self.plain_msg(event, self.jx3api.jiemi) - async def jx3_shapan(self, event: AstrMessageEvent,server: str = ""): - """剑三 沙盘 服务器""" + async def shapan(self, event: AstrMessageEvent,server: str = ""): + """ 沙盘 服务器""" return await self.image_msg(event, lambda: self.jx3api.shapan(self.serverdefault(server))) - async def jx3_baizhan(self, event: AstrMessageEvent): - """剑三 百战""" + async def baizhan(self, event: AstrMessageEvent): + """ 百战""" return await self.T2I_image_msg(event, self.jx3api.baizhan) - async def jx3_fuyaojjiutian(self, event: AstrMessageEvent,server: str = ""): - """剑三 扶摇九天 服务器""" + async def fuyaojjiutian(self, event: AstrMessageEvent,server: str = ""): + """ 扶摇九天 服务器""" return await self.plain_msg(event, lambda: self.jx3api.fuyaojjiutian( self.serverdefault(server))) - async def jx3_zhueevent(self, event: AstrMessageEvent): - """剑三 诛恶事件""" + async def zhueevent(self, event: AstrMessageEvent): + """ 诛恶事件""" return await self.T2I_image_msg(event, self.jx3api.zhueevent) - async def jx3_benrichitu(self, event: AstrMessageEvent): - """剑三 本日赤兔""" + async def benrichitu(self, event: AstrMessageEvent): + """ 本日赤兔""" return await self.plain_msg(event, self.jx3api.benrichitu) - async def jx3_benzhouchitu(self, event: AstrMessageEvent): - """剑三 本周赤兔""" + async def benzhouchitu(self, event: AstrMessageEvent): + """ 本周赤兔""" return await self.plain_msg(event, self.jx3api.benzhouchitu) - async def jx3_zhengyingpaimai(self, event: AstrMessageEvent,name: str = "玄晶", server: str = ""): - """剑三 阵营拍卖 物品名称 服务器""" + async def zhengyingpaimai(self, event: AstrMessageEvent,name: str = "玄晶", server: str = ""): + """ 阵营拍卖 物品名称 服务器""" return await self.T2I_image_msg(event, lambda: self.jx3api.zhengyingpaimai( self.serverdefault(server), name)) - async def jx3_zhenyingevent(self, event: AstrMessageEvent): - """剑三 阵营事件""" + async def zhenyingevent(self, event: AstrMessageEvent): + """ 阵营事件""" return await self.T2I_image_msg(event, self.jx3api.zhenyingevent) - async def jx3_guanaishouling(self, event: AstrMessageEvent): - """剑三 关隘首领""" + async def guanaishouling(self, event: AstrMessageEvent): + """ 关隘首领""" return await self.T2I_image_msg(event, self.jx3api.guanaishouling) - async def jx3_bangzhanjilu(self, event: AstrMessageEvent, server: str = ""): - """剑三 帮战记录 服务器""" + async def bangzhanjilu(self, event: AstrMessageEvent, server: str = ""): + """ 帮战记录 服务器""" return await self.T2I_image_msg(event, lambda: self.jx3api.bangzhanjilu(self.serverdefault(server))) - async def jx3_tongzhanyy(self, event: AstrMessageEvent, server: str = ""): - """剑三 统战歪歪 服务器""" + async def tongzhanyy(self, event: AstrMessageEvent, server: str = ""): + """ 统战歪歪 服务器""" return await self.plain_msg(event, lambda: self.jx3api.tongzhanyy(self.serverdefault(server))) - async def jx3_dilujilu(self, event: AstrMessageEvent,server: str = ""): - """剑三 的卢 服务器""" + async def dilujilu(self, event: AstrMessageEvent,server: str = ""): + """ 的卢 服务器""" return await self.T2I_image_msg(event, lambda: self.jx3api.dilujilu( self.serverdefault(server))) - async def jx3_yanhuachaxun(self, event: AstrMessageEvent,name: str = "飞翔大野猪", server: str = ""): - """剑三 烟花 角色 服务器""" + async def yanhuachaxun(self, event: AstrMessageEvent,name: str = "飞翔大野猪", server: str = ""): + """ 烟花 角色 服务器""" return await self.T2I_image_msg(event, lambda: self.jx3api.yanhuachaxun( self.serverdefault(server),name)) - async def jx3_pianzhi(self, event: AstrMessageEvent,qq: str): - """剑三 骗子 QQ""" + async def pianzhi(self, event: AstrMessageEvent,qq: str): + """ 骗子 QQ""" return await self.plain_msg(event, lambda: self.jx3api.pianzhi(qq)) - async def jx3_juesheqiyu(self, event: AstrMessageEvent,name: str = "飞翔大野猪", server: str = ""): - """剑三 奇遇 角色名称 服务器""" + async def juesheqiyu(self, event: AstrMessageEvent,name: str = "飞翔大野猪", server: str = ""): + """ 奇遇 角色名称 服务器""" return await self.T2I_image_msg(event, lambda: self.jx3api.juesheqiyu(name, self.serverdefault(server))) - async def jx3_weizuoqiyu(self, event: AstrMessageEvent,name: str = "飞翔大野猪", server: str = ""): - """剑三 未做奇遇 角色名称 服务器""" + async def weizuoqiyu(self, event: AstrMessageEvent,name: str = "飞翔大野猪", server: str = ""): + """ 未做奇遇 角色名称 服务器""" return await self.T2I_image_msg(event, lambda: self.jx3api.weizuoqiyu(name, self.serverdefault(server))) - async def jx3_qiyutongji(self, event: AstrMessageEvent,adventureName: str = "阴阳两界", server: str = ""): - """剑三 奇遇统计 奇遇名称 服务器""" + async def qiyutongji(self, event: AstrMessageEvent,adventureName: str = "阴阳两界", server: str = ""): + """ 奇遇统计 奇遇名称 服务器""" return await self.T2I_image_msg(event, lambda: self.jx3api.qiyutongji(adventureName,self.serverdefault(server))) - async def jx3_jinqiqiyu(self, event: AstrMessageEvent,server: str = ""): - """剑三 近期奇遇 服务器""" + async def jinqiqiyu(self, event: AstrMessageEvent,server: str = ""): + """ 近期奇遇 服务器""" return await self.T2I_image_msg(event, lambda: self.jx3api.jinqiqiyu(self.serverdefault(server))) - async def jx3_qiyuhuizong(self, event: AstrMessageEvent,num_or_server: str = "7", server: str = ""): - """剑三 奇遇汇总 天数 服务器""" + async def qiyuhuizong(self, event: AstrMessageEvent,num_or_server: str = "7", server: str = ""): + """ 奇遇汇总 天数 服务器""" num = 7 target_server = server @@ -489,173 +489,173 @@ class MessageBuilder: return await self.T2I_image_msg(event, lambda: self.jx3api.qiyuhuizong(self.serverdefault(target_server), num)) - async def jx3_zhanji(self, event: AstrMessageEvent,name: str = "飞翔大野猪", server: str = "", mode:str = "33"): - """剑三 战绩 角色 服务器 类型""" + async def zhanji(self, event: AstrMessageEvent,name: str = "飞翔大野猪", server: str = "", mode:str = "33"): + """ 战绩 角色 服务器 类型""" return await self.T2I_image_msg(event, lambda: self.jx3api.zhanji(name, self.serverdefault(server),mode)) - async def jx3_mingjianpaihang(self, event: AstrMessageEvent,limit: str = "50", mode:str = "33"): - """剑三 排行 数量 类型""" + async def mingjianpaihang(self, event: AstrMessageEvent,limit: str = "50", mode:str = "33"): + """ 排行 数量 类型""" return await self.T2I_image_msg(event, lambda: self.jx3api.mingjianpaihang(limit,mode)) - async def jx3_mingjiantongji(self, event: AstrMessageEvent,mode: str = "33"): - """剑三 名剑统计 模式""" + async def mingjiantongji(self, event: AstrMessageEvent,mode: str = "33"): + """ 名剑统计 模式""" return await self.T2I_image_msg(event, lambda: self.jx3api.mingjiantongji(mode)) - async def jx3_tuanduizhaomu(self, event: AstrMessageEvent,keyword: str = "25人普通会战弓月城", server: str = ""): - """剑三 招募 副本 服务器""" + async def tuanduizhaomu(self, event: AstrMessageEvent,keyword: str = "25人普通会战弓月城", server: str = ""): + """ 招募 副本 服务器""" return await self.T2I_image_msg(event, lambda: self.jx3api.tuanduizhaomu( self.serverdefault(server),keyword)) - async def jx3_baishi(self, event: AstrMessageEvent,keyword: str = "", server: str = ""): - """剑三 拜师 搜索关键词 服务器""" + async def baishi(self, event: AstrMessageEvent,keyword: str = "", server: str = ""): + """ 拜师 搜索关键词 服务器""" return await self.T2I_image_msg(event, lambda: self.jx3api.shitu(2, keyword, self.serverdefault(server))) - async def jx3_shoutu(self, event: AstrMessageEvent,keyword: str = "", server: str = ""): - """剑三 收徒 搜索关键词 服务器""" + async def shoutu(self, event: AstrMessageEvent,keyword: str = "", server: str = ""): + """ 收徒 搜索关键词 服务器""" return await self.T2I_image_msg(event, lambda: self.jx3api.shitu(1, keyword, self.serverdefault(server))) - async def jx3_rank_statistical(self, event: AstrMessageEvent, rank_name: str, server: str = ""): - """剑三 各类榜单 榜单名称 服务器""" + async def rank_statistical(self, event: AstrMessageEvent, rank_name: str, server: str = ""): + """ 各类榜单 榜单名称 服务器""" return await self.T2I_image_msg(event, lambda: self.jx3api.rank_statistical(rank_name, self.serverdefault(server))) - async def jx3_mingshiwushiqiang(self, event: AstrMessageEvent, server: str = ""): - """剑三 名士五十强 服务器""" - return await self.jx3_rank_statistical(event, "名士五十强", server) + async def mingshiwushiqiang(self, event: AstrMessageEvent, server: str = ""): + """ 名士五十强 服务器""" + return await self. rank_statistical(event, "名士五十强", server) - async def jx3_laojianghuwushiqiang(self, event: AstrMessageEvent, server: str = ""): - """剑三 老江湖五十强 服务器""" - return await self.jx3_rank_statistical(event, "老江湖五十强", server) + async def laojianghuwushiqiang(self, event: AstrMessageEvent, server: str = ""): + """ 老江湖五十强 服务器""" + return await self. rank_statistical(event, "老江湖五十强", server) - async def jx3_bingjiacangjiawushiqiang(self, event: AstrMessageEvent, server: str = ""): - """剑三 兵甲藏家五十强 服务器""" - return await self.jx3_rank_statistical(event, "兵甲藏家五十强", server) + async def bingjiacangjiawushiqiang(self, event: AstrMessageEvent, server: str = ""): + """ 兵甲藏家五十强 服务器""" + return await self. rank_statistical(event, "兵甲藏家五十强", server) - async def jx3_mingshiwushiqiang_mentor(self, event: AstrMessageEvent, server: str = ""): - """剑三 名师五十强 服务器""" - return await self.jx3_rank_statistical(event, "名师五十强", server) + async def mingshiwushiqiang_mentor(self, event: AstrMessageEvent, server: str = ""): + """ 名师五十强 服务器""" + return await self. rank_statistical(event, "名师五十强", server) - async def jx3_zhengyingyingxiongwushiqiang(self, event: AstrMessageEvent, server: str = ""): - """剑三 阵营英雄五十强 服务器""" - return await self.jx3_rank_statistical(event, "阵营英雄五十强", server) + async def zhengyingyingxiongwushiqiang(self, event: AstrMessageEvent, server: str = ""): + """ 阵营英雄五十强 服务器""" + return await self. rank_statistical(event, "阵营英雄五十强", server) - async def jx3_xinhuoxiangchuanwushiqiang(self, event: AstrMessageEvent, server: str = ""): - """剑三 薪火相传五十强 服务器""" - return await self.jx3_rank_statistical(event, "薪火相传五十强", server) + async def xinhuoxiangchuanwushiqiang(self, event: AstrMessageEvent, server: str = ""): + """ 薪火相传五十强 服务器""" + return await self. rank_statistical(event, "薪火相传五十强", server) - async def jx3_luyuanguangjiyibaiqiang(self, event: AstrMessageEvent, server: str = ""): - """剑三 庐园广记一百强 服务器""" - return await self.jx3_rank_statistical(event, "庐园广记一百强", server) + async def luyuanguangjiyibaiqiang(self, event: AstrMessageEvent, server: str = ""): + """ 庐园广记一百强 服务器""" + return await self. rank_statistical(event, "庐园广记一百强", server) - async def jx3_haoqishenbingbaojiawushiqiang(self, event: AstrMessageEvent, server: str = ""): - """剑三 浩气神兵宝甲五十强 服务器""" - return await self.jx3_rank_statistical(event, "浩气神兵宝甲五十强", server) + async def haoqishenbingbaojiawushiqiang(self, event: AstrMessageEvent, server: str = ""): + """ 浩气神兵宝甲五十强 服务器""" + return await self. rank_statistical(event, "浩气神兵宝甲五十强", server) - async def jx3_erenshenbingbaojiawushiqiang(self, event: AstrMessageEvent, server: str = ""): - """剑三 恶人神兵宝甲五十强 服务器""" - return await self.jx3_rank_statistical(event, "恶人神兵宝甲五十强", server) + async def erenshenbingbaojiawushiqiang(self, event: AstrMessageEvent, server: str = ""): + """ 恶人神兵宝甲五十强 服务器""" + return await self. rank_statistical(event, "恶人神兵宝甲五十强", server) - async def jx3_haoqiaixinbanghuiwushiqiang(self, event: AstrMessageEvent, server: str = ""): - """剑三 浩气爱心帮会五十强 服务器""" - return await self.jx3_rank_statistical(event, "浩气爱心帮会五十强", server) + async def haoqiaixinbanghuiwushiqiang(self, event: AstrMessageEvent, server: str = ""): + """ 浩气爱心帮会五十强 服务器""" + return await self. rank_statistical(event, "浩气爱心帮会五十强", server) - async def jx3_erenaixinbanghuiwushiqiang(self, event: AstrMessageEvent, server: str = ""): - """剑三 恶人爱心帮会五十强 服务器""" - return await self.jx3_rank_statistical(event, "恶人爱心帮会五十强", server) + async def erenaixinbanghuiwushiqiang(self, event: AstrMessageEvent, server: str = ""): + """ 恶人爱心帮会五十强 服务器""" + return await self. rank_statistical(event, "恶人爱心帮会五十强", server) - async def jx3_saijierenwushiqiang(self, event: AstrMessageEvent, server: str = ""): - """剑三 赛季恶人五十强 服务器""" - return await self.jx3_rank_statistical(event, "赛季恶人五十强", server) + async def saijierenwushiqiang(self, event: AstrMessageEvent, server: str = ""): + """ 赛季恶人五十强 服务器""" + return await self. rank_statistical(event, "赛季恶人五十强", server) - async def jx3_saijihaoqiwushiqiang(self, event: AstrMessageEvent, server: str = ""): - """剑三 赛季浩气五十强 服务器""" - return await self.jx3_rank_statistical(event, "赛季浩气五十强", server) + async def saijihaoqiwushiqiang(self, event: AstrMessageEvent, server: str = ""): + """ 赛季浩气五十强 服务器""" + return await self. rank_statistical(event, "赛季浩气五十强", server) - async def jx3_shangzhouerenwushiqiang(self, event: AstrMessageEvent, server: str = ""): - """剑三 上周恶人五十强 服务器""" - return await self.jx3_rank_statistical(event, "上周恶人五十强", server) + async def shangzhouerenwushiqiang(self, event: AstrMessageEvent, server: str = ""): + """ 上周恶人五十强 服务器""" + return await self. rank_statistical(event, "上周恶人五十强", server) - async def jx3_shangzhouhaoqiwushiqiang(self, event: AstrMessageEvent, server: str = ""): - """剑三 上周浩气五十强 服务器""" - return await self.jx3_rank_statistical(event, "上周浩气五十强", server) + async def shangzhouhaoqiwushiqiang(self, event: AstrMessageEvent, server: str = ""): + """ 上周浩气五十强 服务器""" + return await self. rank_statistical(event, "上周浩气五十强", server) - async def jx3_benzhouerenwushiqiang(self, event: AstrMessageEvent, server: str = ""): - """剑三 本周恶人五十强 服务器""" - return await self.jx3_rank_statistical(event, "本周恶人五十强", server) + async def benzhouerenwushiqiang(self, event: AstrMessageEvent, server: str = ""): + """ 本周恶人五十强 服务器""" + return await self. rank_statistical(event, "本周恶人五十强", server) - async def jx3_benzhouhaoqiwushiqiang(self, event: AstrMessageEvent, server: str = ""): - """剑三 本周浩气五十强 服务器""" - return await self.jx3_rank_statistical(event, "本周浩气五十强", server) + async def benzhouhaoqiwushiqiang(self, event: AstrMessageEvent, server: str = ""): + """ 本周浩气五十强 服务器""" + return await self. rank_statistical(event, "本周浩气五十强", server) - async def jx3_jueshe(self, event: AstrMessageEvent,name: str, server: str = ""): - """剑三 角色 名称 服务器""" + async def jueshe(self, event: AstrMessageEvent,name: str, server: str = ""): + """ 角色 名称 服务器""" return await self.plain_msg(event, lambda: self.jx3api.jueshe(name, self.serverdefault(server))) - async def jx3_jueshemingpian(self, event: AstrMessageEvent, name: str = "飞翔大野猪", server: str = ""): - """剑三 名片 角色 服务器""" + async def jueshemingpian(self, event: AstrMessageEvent, name: str = "飞翔大野猪", server: str = ""): + """ 名片 角色 服务器""" return await self.plain_chain(event, lambda: self.jx3api.jueshemingpian(self.serverdefault(server), name)) - async def jx3_jingnai(self, event: AstrMessageEvent, name: str = "飞翔大野猪", server: str = ""): - """剑三 精耐 角色 服务器""" + async def jingnai(self, event: AstrMessageEvent, name: str = "飞翔大野猪", server: str = ""): + """ 精耐 角色 服务器""" return await self.T2I_image_msg(event, lambda: self.jx3api.jingnai(name, self.serverdefault(server))) - async def jx3_shuoyoumingpian(self, event: AstrMessageEvent, name: str = "飞翔大野猪", server: str = ""): - """剑三 所有名片 角色 服务器""" + async def shuoyoumingpian(self, event: AstrMessageEvent, name: str = "飞翔大野猪", server: str = ""): + """ 所有名片 角色 服务器""" return await self.plain_chain(event, lambda: self.jx3api.shuoyoumingpian( self.serverdefault(server),name)) - async def jx3_shuijimingpian(self, event: AstrMessageEvent,force: str = "万花", body: str = "萝莉", server: str = ""): - """剑三 随机名片 职业 体型 服务器""" + async def shuijimingpian(self, event: AstrMessageEvent,force: str = "万花", body: str = "萝莉", server: str = ""): + """ 随机名片 职业 体型 服务器""" return await self.image_msg(event, lambda: self.jx3api.shuijimingpian(force,body, self.serverdefault(server))) - async def jx3_shuma(self, event: AstrMessageEvent,server: str = ""): - """剑三 刷马 服务器""" + async def shuma(self, event: AstrMessageEvent,server: str = ""): + """ 刷马 服务器""" return await self.plain_msg(event, lambda: self.jx3api.shuma( self.serverdefault(server))) - async def jx3_jinjia(self, event: AstrMessageEvent,server: str = "", limit:str = "15"): - """剑三 金价 服务器""" + async def jinjia(self, event: AstrMessageEvent,server: str = "", limit:str = "15"): + """ 金价 服务器""" return await self.T2I_image_msg(event, lambda: self.jx3api.jinjia( self.serverdefault(server),limit)) - async def jx3_wujia(self, event: AstrMessageEvent,Name: str = "秃盒", server: str = ""): - """剑三 物价 外观名称""" + async def wujia(self, event: AstrMessageEvent,Name: str = "秃盒", server: str = ""): + """ 物价 外观名称""" return await self.T2I_image_msg(event, lambda: self.jx3api.wujia(Name, self.serverdefault(server))) - async def jx3_jiaoyihang(self, event: AstrMessageEvent,Name: str = "守缺式",server: str = ""): - """剑三 交易行 物品名称 服务器""" + async def jiaoyihang(self, event: AstrMessageEvent,Name: str = "守缺式",server: str = ""): + """ 交易行 物品名称 服务器""" return await self.T2I_image_msg(event, lambda: self.jx3api.jiaoyihang(Name, self.serverdefault(server))) - async def jx3_tiebawujia(self, event: AstrMessageEvent, name: str = "狐金", limit_or_server: str = "5", server: str = ""): - """剑三 贴吧物价 物品名称 数量 服务器""" + async def tiebawujia(self, event: AstrMessageEvent, name: str = "狐金", limit_or_server: str = "5", server: str = ""): + """ 贴吧物价 物品名称 数量 服务器""" limit = 5 target_server = server @@ -667,8 +667,8 @@ class MessageBuilder: return await self.plain_msg(event, lambda: self.jx3api.tiebawujia(name, limit, self.serverdefault(target_server))) - async def jx3_diaoluo(self, event: AstrMessageEvent, name: str = "玄晶", limit_or_server: str = "20", server: str = ""): - """剑三 掉落 物品名称 数量 服务器""" + async def diaoluo(self, event: AstrMessageEvent, name: str = "玄晶", limit_or_server: str = "20", server: str = ""): + """ 掉落 物品名称 数量 服务器""" limit = 20 target_server = server @@ -680,23 +680,23 @@ class MessageBuilder: return await self.T2I_image_msg(event, lambda: self.jx3api.diaoluo(name, limit, self.serverdefault(target_server))) - async def jx3_bagua(self, event: AstrMessageEvent,name: str = "818"): - """剑三 八卦 类型""" + async def bagua(self, event: AstrMessageEvent,name: str = "818"): + """ 八卦 类型""" return await self.plain_msg(event, lambda: self.jx3api.bagua(name)) - async def jx3_qiyugonglue(self, event: AstrMessageEvent,name: str): - """剑三 奇遇攻略 奇遇名称""" + async def qiyugonglue(self, event: AstrMessageEvent,name: str): + """ 奇遇攻略 奇遇名称""" return await self.T2I_image_msg(event, lambda: self.jx3api.qiyugonglue(name)) - async def jx3_hong(self, event: AstrMessageEvent,name: str = "易筋经"): - """剑三 宏 心法""" + async def hong(self, event: AstrMessageEvent,name: str = "易筋经"): + """ 宏 心法""" return await self.handler_plain_image_msg(event, lambda: self.jx3api.hong1(name), self.jx3api.hong2) - async def jx3_peizhuang(self, event: AstrMessageEvent,name: str = "易筋经", tags: str = ""): - """剑三 配装 心法""" + async def peizhuang(self, event: AstrMessageEvent,name: str = "易筋经", tags: str = ""): + """ 配装 心法""" return await self.plain_msg(event, lambda: self.jx3api.peizhuang( name,tags)) @@ -725,25 +725,25 @@ class MessageBuilder: return await self.plain_msg(event, lambda: self.bilei.delete(id)) - async def jx3_kaifhujiank(self, event: AstrMessageEvent): - """剑三 开服监控""" + async def kaifhujiank(self, event: AstrMessageEvent): + """ 开服监控""" return_msg = await self.jx3at.get_task_info("kfts") await event.send(event.plain_result(return_msg)) - async def jx3_xinwenzhixun(self, event: AstrMessageEvent): - """剑三 新闻推送""" + async def xinwenzhixun(self, event: AstrMessageEvent): + """ 新闻推送""" return_msg = await self.jx3at.get_task_info("xwts") await event.send(event.plain_result(return_msg)) - async def jx3_shuamamsg(self, event: AstrMessageEvent): - """剑三 刷马推送""" + async def shuamamsg(self, event: AstrMessageEvent): + """ 刷马推送""" return_msg = await self.jx3at.get_task_info("smts") await event.send(event.plain_result(return_msg)) - async def jx3_chitusg(self, event: AstrMessageEvent): - """剑三 赤兔推送""" + async def chitusg(self, event: AstrMessageEvent): + """ 赤兔推送""" return_msg = await self.jx3at.get_task_info("ctts") await event.send(event.plain_result(return_msg)) diff --git a/data/jx3api_config.json b/data/jx3api_config.json deleted file mode 100644 index e56ce95..0000000 --- a/data/jx3api_config.json +++ /dev/null @@ -1,703 +0,0 @@ -{ - "jx3api_url":"https://www.jx3api.com", - "active_calendar":{ - "url":"/active/calendar", - "description":"单日或前后区间的日常活动推演", - "params":{ - "mode": "day", - "num": "0" - } - }, - "active_celebs":{ - "url":"/active/celebs", - "description":"楚天社 / 云从社 / 披风会接下来 10 条排期", - "params":{ - "name": "穹野卫" - } - }, - "castle":{ - "url":"/castle/status", - "description":"各服关隘首领的当前状态(可拾取 / 保护期 / 可抢占 / 每日 7-12 点统一保护),按服务器分组", - "params":{ - "token": "" - } - }, - "chitu_records":{ - "url":"/chitu/records", - "description":"查 ranch 合集当天的赤兔记录", - "params":{ - "token": "" - } - }, - "chitu_week_records":{ - "url":"/chitu/week/records", - "description":"爬 jx3box 播报,解析各服本周(周二 7 点重置后)赤兔到达地图", - "params":{ - "token": "" - } - }, - "fenxian":{ - "url":"/fenxian/records", - "description":"点争夺记录,按占领时间倒序;给了阵营名则只看该阵营", - "params":{ - "name": "", - "limit": 50, - "token": "" - } - }, - "firework":{ - "url":"/firework/records", - "description":"角色作为送花人或收花人的烟花记录,时间倒序", - "params":{ - "server": "", - "name": "", - "token":"" - } - }, - "ranch_chat":{ - "url":"/ranch/chat", - "description":"爬 jx3box 马场 NPC 播报,解析各地图「下一匹 X 出世还有 N 分钟」的预计时刻", - "params":{ - "server": "", - "token": "" - } - }, - "ranch_records":{ - "url":"/ranch/records", - "description":"jx3box 马场播报预告 + 本周期赤兔(mount)/ 的卢(steed)出世情况,附提示", - "params":{ - "server": "", - "expired": "", - "token": "" - } - }, - "arena_awesome":{ - "url":"/arena/awesome", - "description":"某比赛模式竞技场排行榜前 limit 名", - "params":{ - "limit": "50", - "mode": "33", - "ticket": "", - "token":"" - } - }, - "arena_recent":{ - "url":"/arena/recent", - "description":"角色竞技场名片、各模式战绩表现、历史对战,指定模式时附趋势", - "params":{ - "server": "", - "name": "", - "mode": "33", - "ticket": "", - "token":"" - } - }, - "arena_schools":{ - "url":"/arena/schools", - "description":"某比赛模式下各门派的竞技场周统计", - "params":{ - "mode": "33", - "ticket": "", - "token":"" - } - }, - "rank_arena":{ - "url":"/rank/arena", - "description":"按竞技模式(0=2v2 / 1=3v3 / 2=5v5)查军团赛季战绩榜;指定服查单服,否则全服", - "params":{ - "server": "", - "mode": "", - "token":"" - } - }, - "rank_championship":{ - "url":"/rank/arena", - "description":"按阵营(1=浩气 / 2=恶人)查帮会争霸赛季榜(与名剑榜共用 season 合集,每赛季清零)", - "params":{ - "server": "", - "camp": "", - "token":"" - } - }, - "rank_constable":{ - "url":"/rank/constable", - "description":"与江湖浪客榜同字段格式(bounty 合集)", - "params":{ - "server": "", - "token":"" - } - }, - "rank_outlaw":{ - "url":"/rank/outlaw", - "description":"实时榜(bounty 合集),显式列字段,nRank 排名序号不返回", - "params":{ - "server": "", - "token":"" - } - }, - "rank_statistics":{ - "url":"/rank/outlaw", - "description":"指定服查该服该榜单,否则查全服该榜单", - "params":{ - "server": "", - "name": "", - "token":"" - } - }, - "rank_trials":{ - "url":"/rank/trials", - "description":"同榜单查询,山居剑意归并到藏剑;行是位置字段 1~4,重建成具名字段", - "params":{ - "server": "", - "name": "", - "token":"" - } - }, - "rank_wanted":{ - "url":"/rank/wanted", - "description":"按类型(1=公开 / 2=私密)查决斗悬赏榜(bounty 合集,mode 存的是字符串)", - "params":{ - "server": "", - "mode": "", - "token":"" - } - }, - "tuilan_achievement":{ - "url":"/rank/wanted", - "description":"角色名片 + 按 子类/详情/地图/副本 汇总的资历完成度 静态骨架(各桶 total + 排序 + totalScore)按 class 缓存,每次请求只查用户已完成子集叠加 speed", - "params":{ - "server": "", - "name": "", - "class": "", - "subclass": "", - "ticket": "", - "token":"" - } - }, - - - - - - - - - - - - - "keju":{ - "url":"https://www.jx3api.com/data/exam/search", - "method":"GET", - "description":"此接口用于科举考试时的答案查询,支持模糊查询和拼音首字母查询。", - "params":{ - "subject": "", - "limit": "5" - } - }, - "huajia":{ - "url":"https://www.jx3api.com/data/home/flower", - "method":"GET", - "description":"此接口用于查询家园系统中特定鲜花的最高价格及其对应的采集线路,包括区服和地图信息。", - "params":{ - "server": "", - "name": "", - "map": "" - } - }, - "zhuangshi":{ - "url":"https://www.jx3api.com/data/home/furniture", - "method":"GET", - "description":"此接口用于查询家园系统中特定装饰的详细信息,包括来源、属性和外观等内容。", - "params":{ - "name": "" - } - }, - "qiwu":{ - "url":"https://www.jx3api.com/data/home/travel", - "method":"GET", - "description":"此接口用于查询指定地图的装饰物品产出信息,包括装饰的属性、来源和外观等内容。", - "params":{ - "name": "" - } - }, - "xinweng":{ - "url":"https://www.jx3api.com/data/news/allnews", - "method":"GET", - "description":"此接口用于获取官方最新公告及新闻内容,包括新闻分类、标题及链接等信息。", - "params":{ - "limit": 1 - } - }, - "weihu":{ - "url":"https://www.jx3api.com/data/news/announce", - "method":"GET", - "description":"获取《剑网3》官方发布的最新维护与版本更新公告列表,包含公告标题、发布日期及原文链接", - "params":{ - "limit": 1 - } - }, - "qufu":{ - "url":"https://www.jx3api.com/data/master/search", - "method":"GET", - "description":"此接口用于根据区服简称搜索主服务器及其附属服务器的详细信息", - "params":{ - "name": "双梦镇" - } - }, - "zhuangtai":{ - "url":"https://www.jx3api.com/data/status/check", - "method":"GET", - "description":"此接口用于根据区服简称搜索主服务器及其附属服务器的详细信息", - "params":{ - "type": "", - "server": "" - } - }, - "jigai":{ - "url":"https://www.jx3api.com/data/skill/rework", - "method":"GET", - "description":"获取剑网三技能记录", - "params":{ - } - }, - "xiaoyao":{ - "url":"https://www.jx3api.com/data/school/foods", - "method":"GET", - "description":"小药", - "params":{ - } - }, - "zhenyan":{ - "url":"https://www.jx3api.com/data/school/matrix", - "method":"GET", - "description":"查询指定心法的阵眼效果", - "params":{ - "name": "易筋经", - "ticket": "", - "token":"" - } - }, - "qixue":{ - "url":"https://www.jx3api.com/data/school/talent", - "method":"GET", - "description":"查询指定心法的奇穴详细效果", - "params":{ - "name": "易筋经", - "ticket": "", - "token":"" - } - }, - "jineng":{ - "url":"https://www.jx3api.com/data/school/skills", - "method":"GET", - "description":"查询指定心法的技能详情", - "params":{ - "name": "易筋经", - "ticket": "", - "token":"" - } - }, - "zilipaixing":{ - "url":"https://www.jx3api.com/data/school/seniority", - "method":"GET", - "description":"查询指定门派的资历排行榜", - "params":{ - "server": "梦江南", - "school": "万花", - "ticket": "", - "token":"" - } - }, - "shilianpaixing":{ - "url":"https://www.jx3api.com/data/rank/trials", - "method":"GET", - "description":"查询指定心法的木桩试炼排行榜", - "params":{ - "server": "梦江南", - "name": "花间游", - "token":"" - } - }, - "shaohua":{ - "url":"https://www.jx3api.com/data/saohua/random", - "method":"GET", - "description":"获取剑网三骚话", - "params":{ - "name": "万花" - } - }, - "jiemi":{ - "url":"https://www.jx3api.com/data/mech/calculator", - "method":"GET", - "description":"查询机关解密结果", - "params":{ - "token": "" - } - }, - "aishapan":{ - "url":"https://www.jianxiachaguan.cn/api2/aijx3-jxcg/game/get-sand-table-img", - "method":"POST", - "description":"获取剑网三沙盘状态", - "params":{ - "serverName": "眉间雪" - } - }, - "baizhan":{ - "url":"https://www.jx3api.com/data/active/monster", - "method":"GET", - "description":"获取本周百战异闻录玩法中刷新的首领列表及其特殊技能效果", - "params":{ - "token":"" - } - }, - "fuyaojiutian":{ - "url":"https://www.jx3api.com/data/active/next/event", - "method":"GET", - "description":"获取某区服扶摇九天的下次开启时间", - "params":{ - "server": "梦江南", - "token": "" - } - }, - "zhueevent":{ - "url":"https://www.jx3api.com/data/smite/records", - "method":"GET", - "description":"查询诛恶事件记录", - "params":{ - "token": "" - } - }, - "zhengyingpaimai":{ - "url":"https://www.jx3api.com/data/auction/records", - "method":"GET", - "description":"此接口用于查询阵营拍卖的记录,包括拍卖的物品名称、金额以及相关信息。支持通过区服名称和物品名称进行精确或模糊查询。", - "params":{ - "server": "梦江南", - "name": "玄晶", - "limit": 20, - "token": "" - } - }, - "bangzhanjilu":{ - "url":"https://www.jx3api.com/data/battle/records", - "method":"GET", - "description":"查询指定服务器帮战记录", - "params":{ - "server": "梦江南", - "token": "" - } - }, - "tongzhanyy":{ - "url":"https://www.jx3api.com/data/duowan/statistics", - "method":"GET", - "description":"查询指定服务器统战歪歪信息", - "params":{ - "server": "梦江南", - "token": "" - } - }, - "dilujilu":{ - "url":"https://www.jx3api.com/data/steed/records", - "method":"GET", - "description":"此接口用于查询的卢马的刷新、捕获及拍卖记录,包括捕获者、拍卖价格及相关时间信息", - "params":{ - "server": "唯我独尊", - "token":"" - } - }, - "pianzhi":{ - "url":"https://www.jx3api.com/data/fraud/detailed", - "method":"GET", - "description":"此接口用于通过用户的 QQ 号搜索其在贴吧上的行骗记录,包括贴吧名称、记录标题和详细内容。", - "params":{ - "uid": "", - "token": "" - } - }, - "juesheqiyu":{ - "url":"https://www.jx3api.com/data/event/records", - "method":"GET", - "description":"此接口用于查询指定角色的奇遇触发记录,包括奇遇事件、状态及触发时间。注意,数据可能存在遗漏", - "params":{ - "server": "梦江南", - "name": "飞翔大野猪", - "token":"" - } - }, - "weizuoqiyu":{ - "url":"https://www.jx3api.com/data/event/unfinished", - "method":"GET", - "description":"此接口用于查询指定角色未做奇遇记录,数据可能存在遗漏", - "params":{ - "server": "梦江南", - "name": "飞翔大野猪", - "token":"" - } - }, - "qiyutongji":{ - "url":"https://www.jx3api.com/data/event/statistics", - "method":"POST", - "description":"获取剑网三某区服奇遇触发记录", - "params":{ - "name": "阴阳两界", - "server": "梦江南", - "limit": "10", - "token": "" - } - }, - "jinqiqiyu":{ - "url":"https://www.jx3api.com/data/event/recent", - "method":"GET", - "description":"查询指定服务器最近触发的奇遇记录列表", - "params":{ - "server": "梦江南", - "token": "" - } - }, - "qiyuhuizong":{ - "url":"https://www.jx3api.com/data/event/collect", - "method":"GET", - "description":"统计指定服务器最近一段时间内各类奇遇触发汇总", - "params":{ - "server": "梦江南", - "num": 7, - "token": "" - } - }, - - - "tuanduizhaomu":{ - "url":"https://www.jx3api.com/data/recruit/search", - "method":"GET", - "description":"此接口用于查询指定区服的团队招募信息,包括活动类型、队长信息及当前队伍状态。", - "params":{ - "server": "梦江南", - "keyword": "25人普通会战弓月城", - "table": 1, - "token":"" - } - }, - "shitu":{ - "url":"https://www.jx3api.com/data/mentor/search", - "method":"GET", - "description":"查询游戏内师徒系统拜师/收徒招募信息", - "params":{ - "type": 2, - "server": "梦江南", - "keyword": "", - "token":"" - } - }, - "rank_statistical":{ - "url":"https://www.jx3api.com/data/rank/statistics", - "method":"GET", - "description":"查询全服或指定服务器的各类游戏内榜单数据", - "params":{ - "server": "梦江南", - "name": "名士五十强", - "token":"" - } - }, - "jueshexinxi":{ - "url":"https://www.jx3api.com/data/role/detail", - "method":"GET", - "description":"获取角色信息", - "params":{ - "server": "", - "name": "", - "token": "" - } - }, - "jieshemingpian":{ - "url":"https://www.jx3api.com/data/card/record", - "method":"GET", - "description":"此接口用于查询指定角色的名片墙信息,包括角色展示图片和展示数据的唯一标识。", - "params":{ - "server": "眉间雪", - "name": "夜温言@长安城", - "token":"" - } - }, - "jingnai":{ - "url":"https://www.jx3api.com/data/role/monster", - "method":"GET", - "description":"查询指定角色在百战异闻录玩法中的精力、耐力数值和已习得技能列表", - "params":{ - "server": "梦江南", - "name": "飞翔大野猪", - "token":"" - } - }, - "allmingpian":{ - "url":"https://www.jx3api.com/data/card/records", - "method":"GET", - "description":"获取角色全部名片", - "params":{ - "server": "", - "name": "", - "token": "" - } - }, - "shuijimingpian":{ - "url":"https://www.jx3api.com/data/card/random", - "method":"GET", - "description":"此接口用于随机读取一张符合条件的角色名片。", - "params":{ - "server": "唯我独尊", - "body": "萝莉", - "force":"万花", - "token":"" - } - }, - "jinjia":{ - "url":"https://www.jx3api.com/data/trade/demon", - "method":"GET", - "description":"金价比例信息", - "params":{ - "server": "梦江南", - "limit": "10", - "token":"" - } - }, - "waiguan":{ - "url":"https://www.jx3api.com/data/trade/item/search", - "method":"GET", - "description":"统计外观物品的模糊搜索结果", - "params":{ - "name": "秃盒", - "token":"" - } - }, - "wujia":{ - "url":"https://www.jx3api.com/data/trade/records", - "method":"GET", - "description":"此接口用于统计指定物品的黑市价格信息,包括成交、出售、收购等详细记录。", - "params":{ - "server": "梦江南", - "name": "秃盒", - "token":"" - } - }, - "jiaoyihang":{ - "url":"https://next2.jx3box.com/api/auction/", - "method":"POST", - "description":"获取剑网三区服交易行物品价格数据", - "params":{ - "item_ids": [], - "server": "梦江南", - "aggregate_type": "hourly" - } - }, - "jx3box_trade_items":{ - "url":"https://cms.jx3box.com/api/cms/pvx/item/group", - "method":"GET", - "description":"魔盒交易行物品分组列表", - "params":{ - "client": "std" - } - }, - "tiebawujia":{ - "url":"https://www.jx3api.com/data/tieba/item/records", - "method":"GET", - "description":"查询指定物品的贴吧价格记录", - "params":{ - "server": "梦江南", - "name": "狐金", - "limit": 5, - "token": "" - } - }, - "diaoluo":{ - "url":"https://www.jx3api.com/data/reward/statistics", - "method":"GET", - "description":"统计全服或指定服务器中特定贵重物品在团队秘境中的掉落记录", - "params":{ - "server": "梦江南", - "name": "玄晶", - "limit": 20, - "token": "" - } - }, - - "bagua":{ - "url":"https://www.jx3api.com/data/tieba/random", - "method":"GET", - "description":"此接口用于随机搜索指定分类的贴吧帖子,支持多种分类查询。", - "params":{ - "class": "", - "server": "", - "limit": "10", - "token": "" - } - }, - "jx3box_qiyugonglue":{ - "url":"https://node.jx3box.com/serendipities", - "method":"GET", - "description":"魔盒根据名称查询对应奇遇dwID", - "params":{ - "name": "阴阳", - "per": "2", - "client": "std", - "page": "1" - } - }, - "jx3box_shuamamsg":{ - "url":"https://next2.jx3box.com/api/game/reporter/horse", - "method":"GET", - "description":"魔盒获取最新的刷马消息", - "params":{ - "pageIndex": "1", - "pageSize": "3", - "server": "梦江南", - "type": "horse", - "subtype": "foreshow" - } - }, - "jx3box_hong":{ - "url":"https://cms.jx3box.com/api/cms/posts", - "method":"GET", - "description":"魔盒获取宏推荐列表", - "params":{ - "subtype": "易筋经", - "type": "macro", - "per": "10", - "order": "update", - "sticky": "1", - "client": "std" - } - }, - "jx3box_peizhuang":{ - "url":"https://cms.jx3box.com/api/cms/app/pz", - "method":"GET", - "description":"魔盒获取宏配置列表", - "params":{ - "per": "10", - "page": "1", - "tags": "", - "client": "std", - "global_level": "130", - "mount": "", - "star": "1" - } - }, - "jx3box_achievement_menus":{ - "url":"https://node.jx3box.com/api/node/achievement/menus", - "method":"GET", - "description":"魔盒资历菜单列表", - "params":{ - "general": "1", - "client": "std" - } - }, - "jx3box_achievement_points":{ - "url":"https://node.jx3box.com/api/node/achievement/points", - "method":"GET", - "description":"魔盒资历点数列表", - "params":{ - "client": "std" - } - } - - -} diff --git a/main.py b/main.py index 718b843..4300100 100644 --- a/main.py +++ b/main.py @@ -143,10 +143,9 @@ class Jx3ApiPlugin(Star): self.plugin_sql_db = AsyncSQLiteDB(str(self.plugin_data_path)) # 剑网三功能实例化 self.bilei = BiLeidata(self.local_sql_db) - self.jx3api = JX3Service(str(self.api_data_path), self.conf, self.plugin_sql_db, self.local_sql_db) + self.jx3api = JX3Service(self.conf, self.plugin_sql_db, self.local_sql_db) self.jx3at = AsyncTask(cast(Context, self.context), self.conf, self.jx3api, self.local_sql_db) self.jx3cmd = MessageBuilder(self.server, self.jx3api, self.bilei, self.jx3at, self.icons) - self.jx3cmd = MessageBuilder(self.server, self.jx3api, self.bilei, self.jx3at, self.icons) async def init_bilei_data(self): @@ -197,91 +196,91 @@ class Jx3ApiPlugin(Star): def ini_command_map(self): """初始化指令集""" self.command_map = { - "功能": self.jx3cmd.jx3_helps, - "日常": self.jx3cmd.jx3_richang, - "月历": self.jx3cmd.jx3_richangyuche, - "名望": self.jx3cmd.jx3_xingxiashijian, - "科举": self.jx3cmd.jx3_keju, - "花价": self.jx3cmd.jx3_huajia, - "装饰": self.jx3cmd.jx3_zhuangshi, - "器物": self.jx3cmd.jx3_qiwu, - "公告": self.jx3cmd.jx3_xinwen, - "维护": self.jx3cmd.jx3_weihu, - "区服": self.jx3cmd.jx3_qufu, - "开服": self.jx3cmd.jx3_kaifu, - "状态": self.jx3cmd.jx3_zhuangtai, - "技改": self.jx3cmd.jx3_jigai, - "小药": self.jx3cmd.jx3_xiaoyao, - "阵眼": self.jx3cmd.jx3_zhenyan, - "奇穴": self.jx3cmd.jx3_qixue, - "技能": self.jx3cmd.jx3_jineng, - "资历排行": self.jx3cmd.jx3_zilipaixing, - "全服资历排行": self.jx3cmd.jx3_zilipaihang, - "试炼排行": self.jx3cmd.jx3_shilianpaixing, - "骚话": self.jx3cmd.jx3_shaohua, - "资历": self.jx3cmd.jx3_zili, - "解密": self.jx3cmd.jx3_jiemi, - "沙盘": self.jx3cmd.jx3_shapan, - "攻略": self.jx3cmd.jx3_qiyugonglue, - "宏": self.jx3cmd.jx3_hong, - "配装": self.jx3cmd.jx3_peizhuang, - "百战": self.jx3cmd.jx3_baizhan, - "扶摇": self.jx3cmd.jx3_fuyaojjiutian, - "诛恶": self.jx3cmd.jx3_zhueevent, - "本日赤兔": self.jx3cmd.jx3_benrichitu, - "本周赤兔": self.jx3cmd.jx3_benzhouchitu, - "拍卖": self.jx3cmd.jx3_zhengyingpaimai, - "阵营事件": self.jx3cmd.jx3_zhenyingevent, - "关隘首领": self.jx3cmd.jx3_guanaishouling, - "帮战记录": self.jx3cmd.jx3_bangzhanjilu, - "统战": self.jx3cmd.jx3_tongzhanyy, - "的卢": self.jx3cmd.jx3_dilujilu, - "烟花": self.jx3cmd.jx3_yanhuachaxun, - "骗子": self.jx3cmd.jx3_pianzhi, - "奇遇": self.jx3cmd.jx3_juesheqiyu, - "未做奇遇": self.jx3cmd.jx3_weizuoqiyu, - "奇遇统计": self.jx3cmd.jx3_qiyutongji, - "近期奇遇": self.jx3cmd.jx3_jinqiqiyu, - "奇遇汇总": self.jx3cmd.jx3_qiyuhuizong, - "战绩": self.jx3cmd.jx3_zhanji, - "名剑排行": self.jx3cmd.jx3_mingjianpaihang, - "名剑统计": self.jx3cmd.jx3_mingjiantongji, - "招募": self.jx3cmd.jx3_tuanduizhaomu, - "拜师": self.jx3cmd.jx3_baishi, - "收徒": self.jx3cmd.jx3_shoutu, - "名士五十强": self.jx3cmd.jx3_mingshiwushiqiang, - "老江湖五十强": self.jx3cmd.jx3_laojianghuwushiqiang, - "兵甲藏家五十强": self.jx3cmd.jx3_bingjiacangjiawushiqiang, - "名师五十强": self.jx3cmd.jx3_mingshiwushiqiang_mentor, - "阵营英雄五十强": self.jx3cmd.jx3_zhengyingyingxiongwushiqiang, - "薪火相传五十强": self.jx3cmd.jx3_xinhuoxiangchuanwushiqiang, - "庐园广记一百强": self.jx3cmd.jx3_luyuanguangjiyibaiqiang, - "浩气神兵宝甲五十强": self.jx3cmd.jx3_haoqishenbingbaojiawushiqiang, - "恶人神兵宝甲五十强": self.jx3cmd.jx3_erenshenbingbaojiawushiqiang, - "浩气爱心帮会五十强": self.jx3cmd.jx3_haoqiaixinbanghuiwushiqiang, - "恶人爱心帮会五十强": self.jx3cmd.jx3_erenaixinbanghuiwushiqiang, - "赛季恶人五十强": self.jx3cmd.jx3_saijierenwushiqiang, - "赛季浩气五十强": self.jx3cmd.jx3_saijihaoqiwushiqiang, - "上周恶人五十强": self.jx3cmd.jx3_shangzhouerenwushiqiang, - "上周浩气五十强": self.jx3cmd.jx3_shangzhouhaoqiwushiqiang, - "本周恶人五十强": self.jx3cmd.jx3_benzhouerenwushiqiang, - "本周浩气五十强": self.jx3cmd.jx3_benzhouhaoqiwushiqiang, - "角色": self.jx3cmd.jx3_jueshe, - "名片": self.jx3cmd.jx3_jueshemingpian, - "精耐": self.jx3cmd.jx3_jingnai, - "所有名片": self.jx3cmd.jx3_shuoyoumingpian, - "随机名片": self.jx3cmd.jx3_shuijimingpian, - "刷马": self.jx3cmd.jx3_shuma, - "金价": self.jx3cmd.jx3_jinjia, - "物价": self.jx3cmd.jx3_wujia, - "八卦": self.jx3cmd.jx3_bagua, - "交易行": self.jx3cmd.jx3_jiaoyihang, - "贴吧物价": self.jx3cmd.jx3_tiebawujia, - "掉落": self.jx3cmd.jx3_diaoluo, - "开服推送": self.jx3cmd.jx3_kaifhujiank, - "新闻推送": self.jx3cmd.jx3_xinwenzhixun, - "刷马推送": self.jx3cmd.jx3_shuamamsg, - "赤兔推送": self.jx3cmd.jx3_chitusg, + "功能": self. jx3cmd.helps, + "日常": self. jx3cmd.richang, + "月历": self. jx3cmd.richangyuche, + "名望": self. jx3cmd.xingxiashijian, + "科举": self. jx3cmd.keju, + "花价": self. jx3cmd.huajia, + "装饰": self. jx3cmd.zhuangshi, + "器物": self. jx3cmd.qiwu, + "公告": self. jx3cmd.xinwen, + "维护": self. jx3cmd.weihu, + "区服": self. jx3cmd.qufu, + "开服": self. jx3cmd.kaifu, + "状态": self. jx3cmd.zhuangtai, + "技改": self. jx3cmd.jigai, + "小药": self. jx3cmd.xiaoyao, + "阵眼": self. jx3cmd.zhenyan, + "奇穴": self. jx3cmd.qixue, + "技能": self. jx3cmd.jineng, + "资历排行": self. jx3cmd.zilipaixing, + "全服资历排行": self. jx3cmd.zilipaihang, + "试炼排行": self. jx3cmd.shilianpaixing, + "骚话": self. jx3cmd.shaohua, + "资历": self. jx3cmd.zili, + "解密": self. jx3cmd.jiemi, + "沙盘": self. jx3cmd.shapan, + "攻略": self. jx3cmd.qiyugonglue, + "宏": self. jx3cmd.hong, + "配装": self. jx3cmd.peizhuang, + "百战": self. jx3cmd.baizhan, + "扶摇": self. jx3cmd.fuyaojjiutian, + "诛恶": self. jx3cmd.zhueevent, + "本日赤兔": self. jx3cmd.benrichitu, + "本周赤兔": self. jx3cmd.benzhouchitu, + "拍卖": self. jx3cmd.zhengyingpaimai, + "阵营事件": self. jx3cmd.zhenyingevent, + "关隘首领": self. jx3cmd.guanaishouling, + "帮战记录": self. jx3cmd.bangzhanjilu, + "统战": self. jx3cmd.tongzhanyy, + "的卢": self. jx3cmd.dilujilu, + "烟花": self. jx3cmd.yanhuachaxun, + "骗子": self. jx3cmd.pianzhi, + "奇遇": self. jx3cmd.juesheqiyu, + "未做奇遇": self. jx3cmd.weizuoqiyu, + "奇遇统计": self. jx3cmd.qiyutongji, + "近期奇遇": self. jx3cmd.jinqiqiyu, + "奇遇汇总": self. jx3cmd.qiyuhuizong, + "战绩": self. jx3cmd.zhanji, + "名剑排行": self. jx3cmd.mingjianpaihang, + "名剑统计": self. jx3cmd.mingjiantongji, + "招募": self. jx3cmd.tuanduizhaomu, + "拜师": self. jx3cmd.baishi, + "收徒": self. jx3cmd.shoutu, + "名士五十强": self. jx3cmd.mingshiwushiqiang, + "老江湖五十强": self. jx3cmd.laojianghuwushiqiang, + "兵甲藏家五十强": self. jx3cmd.bingjiacangjiawushiqiang, + "名师五十强": self. jx3cmd.mingshiwushiqiang_mentor, + "阵营英雄五十强": self. jx3cmd.zhengyingyingxiongwushiqiang, + "薪火相传五十强": self. jx3cmd.xinhuoxiangchuanwushiqiang, + "庐园广记一百强": self. jx3cmd.luyuanguangjiyibaiqiang, + "浩气神兵宝甲五十强": self. jx3cmd.haoqishenbingbaojiawushiqiang, + "恶人神兵宝甲五十强": self. jx3cmd.erenshenbingbaojiawushiqiang, + "浩气爱心帮会五十强": self. jx3cmd.haoqiaixinbanghuiwushiqiang, + "恶人爱心帮会五十强": self. jx3cmd.erenaixinbanghuiwushiqiang, + "赛季恶人五十强": self. jx3cmd.saijierenwushiqiang, + "赛季浩气五十强": self. jx3cmd.saijihaoqiwushiqiang, + "上周恶人五十强": self. jx3cmd.shangzhouerenwushiqiang, + "上周浩气五十强": self. jx3cmd.shangzhouhaoqiwushiqiang, + "本周恶人五十强": self. jx3cmd.benzhouerenwushiqiang, + "本周浩气五十强": self. jx3cmd.benzhouhaoqiwushiqiang, + "角色": self. jx3cmd.jueshe, + "名片": self. jx3cmd.jueshemingpian, + "精耐": self. jx3cmd.jingnai, + "所有名片": self. jx3cmd.shuoyoumingpian, + "随机名片": self. jx3cmd.shuijimingpian, + "刷马": self. jx3cmd.shuma, + "金价": self. jx3cmd.jinjia, + "物价": self. jx3cmd.wujia, + "八卦": self. jx3cmd.bagua, + "交易行": self. jx3cmd.jiaoyihang, + "贴吧物价": self. jx3cmd.tiebawujia, + "掉落": self. jx3cmd.diaoluo, + "开服推送": self. jx3cmd.kaifhujiank, + "新闻推送": self. jx3cmd.xinwenzhixun, + "刷马推送": self. jx3cmd.shuamamsg, + "赤兔推送": self. jx3cmd.chitusg, "避雷添加": self.jx3cmd.bilei_add, "避雷查看": self.jx3cmd.bilei_all, "避雷查询": self.jx3cmd.bilei_select,