diff --git a/core/jx3_commands.py b/core/jx3_commands.py index ac3e641..d100419 100644 --- a/core/jx3_commands.py +++ b/core/jx3_commands.py @@ -150,6 +150,50 @@ class JX3Commands(Star): yield event.plain_result("猪脑过载,请稍后再试") + async def jx3_keju(self, event: AstrMessageEvent,subject: str, limit: int = 5): + """剑三 科举""" + try: + data= await self.jx3fun.keju(subject,limit) + if data["code"] == 200: + yield event.plain_result(data["data"]) + else: + yield event.plain_result(data["msg"]) + return + except Exception as e: + logger.error(f"功能函数执行错误: {e}") + yield event.plain_result("猪脑过载,请稍后再试") + + + async def jx3_huajia(self, event: AstrMessageEvent, name: str= "", server: str = "", map: str= ""): + """剑三 花价 名称 服务器 地图""" + try: + data= await self.jx3fun.huajia(self.serverdefault(server),name,map) + if data["code"] == 200: + url = await self.html_render(data["temp"], data["data"], options={}) + yield event.image_result(url) + else: + yield event.plain_result(data["msg"]) + return + except Exception as e: + logger.error(f"功能函数执行错误: {e}") + yield event.plain_result("猪脑过载,请稍后再试") + + + async def jx3_zhuangshi(self, event: AstrMessageEvent, name: str): + """剑三 装饰 名称""" + try: + data= await self.jx3fun.zhuangshi(name) + if data["code"] == 200: + url = await self.html_render(data["temp"], data["data"], options={}) + yield event.image_result(url) + else: + yield event.plain_result(data["msg"]) + return + except Exception as e: + logger.error(f"功能函数执行错误: {e}") + yield event.plain_result("猪脑过载,请稍后再试") + + async def jx3_shapan(self, event: AstrMessageEvent,server: str = ""): """剑三 沙盘 服务器""" try: diff --git a/core/jx3_data.py b/core/jx3_data.py index 5508e35..cc3efe2 100644 --- a/core/jx3_data.py +++ b/core/jx3_data.py @@ -154,7 +154,7 @@ class JX3Service: return_data["data"] = result_msg + luck_msg + card_msg + team_msg return_data["code"] = 200 except Exception as e: - logger.error(f"richang 数据处理时出错: {e}") + logger.error(f"数据处理时出错: {e}") return_data["msg"] = "处理接口返回信息时出错" return return_data @@ -235,6 +235,7 @@ class JX3Service: # 3. 处理返回数据 try: return_data["data"]["items"] = data + return_data["data"]["name"] = name except Exception as e: logger.error(f"richang 数据处理时出错: {e}") return_data["msg"] = "处理接口返回信息时出错" @@ -252,6 +253,105 @@ class JX3Service: return return_data + async def keju(self,subject: str, limit: int) -> Dict[str, Any]: + """科举""" + return_data = self._init_return_data() + + # 1. 构造请求参数 + params = {"subject": subject, "limit": limit} + + # 2. 调用基础请求 + data: Optional[Dict[str, Any]] = await self._base_request( + "jx3_keju", "GET", params=params + ) + if not data: + return_data["msg"] = "未查询到相关题目" + return return_data + + # 3. 处理返回数据 + try: + # 格式化字符串,利用字典的 get 方法提供默认值 + result_msg = "" + for m in data: + result_msg += f"{m['id']}.{m['question']}\n" + result_msg += f"答案:{m['answer']}\n\n" + + return_data["data"] = result_msg + return_data["code"] = 200 + except Exception as e: + logger.error(f"数据处理时出错: {e}") + return_data["msg"] = "处理接口返回信息时出错" + + return return_data + + + async def huajia(self,server: str, name: str, map: str) -> Dict[str, Any]: + """花价""" + return_data = self._init_return_data() + + # 1. 构造请求参数 + params = {"server": server, "name": name, "map": map} + + # 2. 调用基础请求 + data: Optional[Dict[str, Any]] = await self._base_request( + "jx3_huajia", "GET", params=params + ) + if not data: + return_data["msg"] = "未查询到相关内容" + return return_data + + # 3. 处理返回数据 + try: + return_data["data"]["data"] = data + return_data["data"]["server"] = server + return_data["code"] = 200 + except Exception as e: + logger.error(f"数据处理时出错: {e}") + return_data["msg"] = "处理接口返回信息时出错" + + # 加载模板 + try: + return_data["temp"] = await load_template("huajia.html") + except FileNotFoundError as e: + logger.error(f"加载模板失败: {e}") + return_data["msg"] = "系统错误:模板文件不存在" + + return return_data + + + async def zhuangshi(self,name: str) -> Dict[str, Any]: + """花价""" + return_data = self._init_return_data() + + # 1. 构造请求参数 + params = { "name": name} + + # 2. 调用基础请求 + data: Optional[Dict[str, Any]] = await self._base_request( + "jx3_zhuangshi", "GET", params=params + ) + if not data: + return_data["msg"] = "未查询到相关内容" + return return_data + + # 3. 处理返回数据 + try: + return_data["data"]["data"] = data + return_data["code"] = 200 + except Exception as e: + logger.error(f"数据处理时出错: {e}") + return_data["msg"] = "处理接口返回信息时出错" + + # 加载模板 + try: + return_data["temp"] = await load_template("zhuangshi.html") + except FileNotFoundError as e: + logger.error(f"加载模板失败: {e}") + return_data["msg"] = "系统错误:模板文件不存在" + + return return_data + + async def shapan(self, server: str ) -> Dict[str, Any]: """区服沙盘""" return_data = self._init_return_data() diff --git a/data/api_config.json b/data/api_config.json index ccdf478..094ccf7 100644 --- a/data/api_config.json +++ b/data/api_config.json @@ -240,6 +240,33 @@ "token": "" } }, + "jx3_keju":{ + "url":"https://www.jx3api.com/data/exam/answer", + "method":"GET", + "description":"此接口用于科举考试时的答案查询,支持模糊查询和拼音首字母查询。", + "params":{ + "subject": "", + "limit": "5" + } + }, + "jx3_huajia":{ + "url":"https://www.jx3api.com/data/home/flower", + "method":"GET", + "description":"此接口用于查询家园系统中特定鲜花的最高价格及其对应的采集线路,包括区服和地图信息。", + "params":{ + "server": "", + "name": "", + "map": "" + } + }, + "jx3_zhuangshi":{ + "url":"https://www.jx3api.com/data/home/furniture", + "method":"GET", + "description":"此接口用于查询家园系统中特定装饰的详细信息,包括来源、属性和外观等内容。", + "params":{ + "name": "" + } + }, "jx3box_qiyugonglue":{ "url":"https://node.jx3box.com/serendipities", "method":"GET", diff --git a/main.py b/main.py index f6b9704..753db09 100644 --- a/main.py +++ b/main.py @@ -228,9 +228,12 @@ class Jx3ApiPlugin(Star): "日常预测": self.jx3com.jx3_richangyuche, "名望": self.jx3com.jx3_xingxiashijian, "开服": self.jx3com.jx3_kaifu, - "状态": self.jx3com.jx3_zhuangtai, + "全服状态": self.jx3com.jx3_zhuangtai, "骚话": self.jx3com.jx3_shaohua, "技改": self.jx3com.jx3_jigai, + "科举": self.jx3com.jx3_keju, + "花价": self.jx3com.jx3_huajia, + "装饰": self.jx3com.jx3_zhuangshi, "沙盘": self.jx3com.jx3_shapan, "奇遇统计": self.jx3com.jx3_qufuqiyu, "奇遇攻略": self.jx3com.jx3_qiyugonglue, diff --git a/templates/helps.html b/templates/helps.html index 39b5a34..15f9046 100644 --- a/templates/helps.html +++ b/templates/helps.html @@ -148,61 +148,73 @@
| 名称 | +颜色 | +倍率 | +分线 | +
|---|---|---|---|
| {{ item.name }} | ++ {% if item.color %} + {{ item.color }} + {% else %} + — + {% endif %} + | +{{ item.price }} | ++ {{ item.line | join('、') }} + | +
diff --git a/templates/huajia.html b/templates/huajia.html new file mode 100644 index 0000000..fdd6eec --- /dev/null +++ b/templates/huajia.html @@ -0,0 +1,129 @@ + + +
+ +
+ + + +
+