修改3
This commit is contained in:
@@ -9,20 +9,23 @@
|
||||
插件内置 `功能` 指令,会以图片形式展示完整指令列表、参数说明和是否需要令牌。当前帮助页按 13 个功能分组维护,约 88 条指令。
|
||||
|
||||
主要功能包括:
|
||||
|
||||
- 日常功能:日常、月历、名望、诛恶。
|
||||
- 官方功能:公告、维护、技改、区服、开服、状态。
|
||||
- 角色功能:角色、资历、名片、所有名片、奇遇、未做奇遇、战绩、精耐。
|
||||
- 职业功能:小药、宏、配装、阵眼、奇穴、技能。
|
||||
- 休闲功能:烟花、拜师、收徒、随机名片、攻略、奇遇统计、近期奇遇、奇遇汇总。
|
||||
- 阵营功能:沙盘、阵营拍卖、阵营事件、关隘首领、帮战记录、统战 YY。
|
||||
- 副本功能:百战、招募、掉落、解密。
|
||||
- 活动功能:扶摇、本日赤兔、本周赤兔、刷马、的卢。
|
||||
- 交易功能:金价、物价、交易行、贴吧物价。
|
||||
- 杂项功能:科举、花价、装饰、器物、八卦、骗子、骚话。
|
||||
- 排行功能:名剑统计、名剑排行、资历排行、试炼排行和各类风云录榜单。
|
||||
- 推送功能:开服推送、新闻推送、刷马推送、赤兔推送。
|
||||
- 避雷功能:避雷查看、添加、删除、修改、查询。
|
||||
【活动情报】
|
||||
活动日历: 日常 [延后天数] | 日常预测
|
||||
声望社:楚天社 | 云从社 | 披风会 | 穹野卫
|
||||
关隘首领:关隘
|
||||
赤兔:赤兔 | 本周赤兔
|
||||
阵营事件:阵营奉献 [阵营]
|
||||
烟花记录::烟花 区服 角色
|
||||
马场查询:刷马 | 马场
|
||||
【名剑相关】
|
||||
名剑战绩:战绩 服务器 角色 [模式]
|
||||
名剑排行:名剑排行 [模式] [数量]
|
||||
名剑统计:名剑统计 [模式]
|
||||
【排行榜单】
|
||||
排行统计:名士五十强 服务器 | 老江湖五十强 服务器 | 兵甲藏家五十强 服务器 | 名师五十强 服务器 | 阵营英雄五十强 服务器 | 薪火相传五十强 服务器 |
|
||||
庐园广记一百强 服务器 | 浩气神兵宝甲五十强 服务器 | 恶人神兵宝甲五十强 服务器 | 浩气爱心帮会五十强 服务器 | 恶人爱心帮会五十强 服务器 |
|
||||
赛季恶人五十强 服务器 | 赛季浩气五十强 服务器 | 上周恶人五十强 服务器 | 上周浩气五十强 服务器 | 本周恶人五十强 服务器 | 本周浩气五十强 服务器
|
||||
试炼排行:试炼排行 服务器 心法
|
||||
|
||||
## 安装与依赖
|
||||
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
from pathlib import Path
|
||||
from datetime import datetime,date
|
||||
from zoneinfo import ZoneInfo
|
||||
|
||||
import aiofiles
|
||||
import base64
|
||||
import os
|
||||
@@ -142,3 +144,21 @@ def load_as_base64(icons_dir: str) -> dict[str, str]:
|
||||
icons[display_name] = f"data:{mime};base64,{data}"
|
||||
|
||||
return icons
|
||||
|
||||
|
||||
def format_time(ts):
|
||||
try:
|
||||
return datetime.fromtimestamp(int(ts),
|
||||
tz=ZoneInfo("Asia/Shanghai")
|
||||
).strftime("%Y-%m-%d %H:%M:%S")
|
||||
except (TypeError, ValueError, OSError):
|
||||
return ""
|
||||
|
||||
def format_remaining(ts):
|
||||
try:
|
||||
seconds = max(0, int(ts) - int(datetime.now().timestamp()))
|
||||
hours, seconds = divmod(seconds, 3600)
|
||||
minutes, seconds = divmod(seconds, 60)
|
||||
return f"{hours}时{minutes:02d}分{seconds:02d}秒"
|
||||
except (TypeError, ValueError):
|
||||
return ""
|
||||
+388
-686
File diff suppressed because it is too large
Load Diff
+134
-123
@@ -283,9 +283,136 @@ class MessageBuilder:
|
||||
return await self.T2I_image_msg(event, lambda: self.jx3api.richang("list",15))
|
||||
|
||||
|
||||
async def xingxiashijian(self, event: AstrMessageEvent,name: str = "穹野卫"):
|
||||
""" 名望"""
|
||||
return await self.T2I_image_msg(event, lambda: self.jx3api.xingxiashijian(name))
|
||||
async def qiongyewei(self, event: AstrMessageEvent):
|
||||
""" 穹野卫"""
|
||||
return await self.T2I_image_msg(event, lambda: self.jx3api.xingxiashijian("穹野卫"))
|
||||
|
||||
async def pifenghui(self, event: AstrMessageEvent):
|
||||
""" 披风会"""
|
||||
return await self.T2I_image_msg(event, lambda: self.jx3api.xingxiashijian("披风会"))
|
||||
|
||||
async def yunchongshe(self, event: AstrMessageEvent):
|
||||
""" 云从社"""
|
||||
return await self.T2I_image_msg(event, lambda: self.jx3api.xingxiashijian("云从社"))
|
||||
|
||||
async def chutianshe(self, event: AstrMessageEvent):
|
||||
""" 楚天社 """
|
||||
return await self.T2I_image_msg(event, lambda: self.jx3api.xingxiashijian("楚天社"))
|
||||
|
||||
async def guanaishouling(self, event: AstrMessageEvent):
|
||||
""" 关隘首领"""
|
||||
return await self.T2I_image_msg(event, self.jx3api.guanaishouling)
|
||||
|
||||
async def benrichitu(self, event: AstrMessageEvent):
|
||||
""" 本日赤兔"""
|
||||
return await self.plain_msg(event, self.jx3api.benrichitu)
|
||||
|
||||
async def benzhouchitu(self, event: AstrMessageEvent):
|
||||
""" 本周赤兔"""
|
||||
return await self.plain_msg(event, self.jx3api.benzhouchitu)
|
||||
|
||||
async def zhenyingevent(self, event: AstrMessageEvent, name:str = ""):
|
||||
""" 阵营事件 阵营"""
|
||||
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( self.serverdefault(server),name))
|
||||
|
||||
async def shuma(self, event: AstrMessageEvent,server: str ):
|
||||
""" 刷马 服务器"""
|
||||
return await self.plain_msg(event, lambda: self.jx3api.shuma(server))
|
||||
|
||||
async def machang(self, event: AstrMessageEvent,server: str ):
|
||||
""" 马场 服务器"""
|
||||
return await self.plain_msg(event, lambda: self.jx3api.machang(server,1))
|
||||
|
||||
async def zhanji(self, event: AstrMessageEvent, server: str ,name: str , mode:str = "33"):
|
||||
""" 战绩 服务器 角色 模式"""
|
||||
return await self.T2I_image_msg(event, lambda: self.jx3api.zhanji(name, server,mode))
|
||||
|
||||
async def mingjianpaihang(self, event: AstrMessageEvent, mode:str = "33",limit: int = 50):
|
||||
""" 名剑排行 模式 数量 """
|
||||
return await self.T2I_image_msg(event, lambda: self.jx3api.mingjianpaihang(limit,mode))
|
||||
|
||||
async def mingjiantongji(self, event: AstrMessageEvent,mode: str = "33"):
|
||||
""" 名剑统计 模式"""
|
||||
return await self.T2I_image_msg(event, lambda: self.jx3api.mingjiantongji(mode))
|
||||
|
||||
async def mingshiwushiqiang(self, event: AstrMessageEvent, server: str):
|
||||
""" 名士五十强 服务器"""
|
||||
return await self.T2I_image_msg(event, lambda: self.jx3api.rank_statistical("名士五十强", server))
|
||||
|
||||
async def laojianghuwushiqiang(self, event: AstrMessageEvent, server: str):
|
||||
""" 老江湖五十强 服务器"""
|
||||
return await self.T2I_image_msg(event, lambda: self.jx3api.rank_statistical("老江湖五十强", server))
|
||||
|
||||
async def bingjiacangjiawushiqiang(self, event: AstrMessageEvent, server: str):
|
||||
""" 兵甲藏家五十强 服务器"""
|
||||
return await self.T2I_image_msg(event, lambda: self.jx3api.rank_statistical("兵甲藏家五十强", server))
|
||||
|
||||
async def mingshiwushiqiang_mentor(self, event: AstrMessageEvent, server: str):
|
||||
""" 名师五十强 服务器"""
|
||||
return await self.T2I_image_msg(event, lambda: self.jx3api.rank_statistical("名师五十强", server))
|
||||
|
||||
async def zhengyingyingxiongwushiqiang(self, event: AstrMessageEvent, server: str):
|
||||
""" 阵营英雄五十强 服务器"""
|
||||
return await self.T2I_image_msg(event, lambda: self.jx3api.rank_statistical("阵营英雄五十强", server))
|
||||
|
||||
async def xinhuoxiangchuanwushiqiang(self, event: AstrMessageEvent, server: str):
|
||||
""" 薪火相传五十强 服务器"""
|
||||
return await self.T2I_image_msg(event, lambda: self.jx3api.rank_statistical("薪火相传五十强", server))
|
||||
|
||||
async def luyuanguangjiyibaiqiang(self, event: AstrMessageEvent, server: str):
|
||||
""" 庐园广记一百强 服务器"""
|
||||
return await self.T2I_image_msg(event, lambda: self.jx3api.rank_statistical("庐园广记一百强", server))
|
||||
|
||||
async def haoqishenbingbaojiawushiqiang(self, event: AstrMessageEvent, server: str):
|
||||
""" 浩气神兵宝甲五十强 服务器"""
|
||||
return await self.T2I_image_msg(event, lambda: self.jx3api.rank_statistical("浩气神兵宝甲五十强", server))
|
||||
|
||||
async def erenshenbingbaojiawushiqiang(self, event: AstrMessageEvent, server: str ):
|
||||
""" 恶人神兵宝甲五十强 服务器"""
|
||||
return await self.T2I_image_msg(event, lambda: self.jx3api.rank_statistical("恶人神兵宝甲五十强", server))
|
||||
|
||||
async def haoqiaixinbanghuiwushiqiang(self, event: AstrMessageEvent, server: str ):
|
||||
""" 浩气爱心帮会五十强 服务器"""
|
||||
return await self.T2I_image_msg(event, lambda: self.jx3api.rank_statistical("浩气爱心帮会五十强", server))
|
||||
|
||||
async def erenaixinbanghuiwushiqiang(self, event: AstrMessageEvent, server: str ):
|
||||
""" 恶人爱心帮会五十强 服务器"""
|
||||
return await self.T2I_image_msg(event, lambda: self.jx3api.rank_statistical("恶人爱心帮会五十强", server))
|
||||
|
||||
async def saijierenwushiqiang(self, event: AstrMessageEvent, server: str):
|
||||
""" 赛季恶人五十强 服务器"""
|
||||
return await self.T2I_image_msg(event, lambda: self.jx3api.rank_statistical("赛季恶人五十强", server))
|
||||
|
||||
async def saijihaoqiwushiqiang(self, event: AstrMessageEvent, server: str ):
|
||||
""" 赛季浩气五十强 服务器"""
|
||||
return await self.T2I_image_msg(event, lambda: self.jx3api.rank_statistical("赛季浩气五十强", server))
|
||||
|
||||
async def shangzhouerenwushiqiang(self, event: AstrMessageEvent, server: str ):
|
||||
""" 上周恶人五十强 服务器"""
|
||||
return await self.T2I_image_msg(event, lambda: self.jx3api.rank_statistical("上周恶人五十强", server))
|
||||
|
||||
async def shangzhouhaoqiwushiqiang(self, event: AstrMessageEvent, server: str ):
|
||||
""" 上周浩气五十强 服务器"""
|
||||
return await self.T2I_image_msg(event, lambda: self.jx3api.rank_statistical("上周浩气五十强", server))
|
||||
|
||||
async def benzhouerenwushiqiang(self, event: AstrMessageEvent, server: str ):
|
||||
""" 本周恶人五十强 服务器"""
|
||||
return await self.T2I_image_msg(event, lambda: self.jx3api.rank_statistical("本周恶人五十强", server))
|
||||
|
||||
async def benzhouhaoqiwushiqiang(self, event: AstrMessageEvent, server: str ):
|
||||
""" 本周浩气五十强 服务器"""
|
||||
return await self.T2I_image_msg(event, lambda: self.jx3api.rank_statistical("本周浩气五十强", server))
|
||||
|
||||
async def shilianpaixing(self, event: AstrMessageEvent, server: str , name: str):
|
||||
""" 试炼排行 服务器 心法 """
|
||||
return await self.T2I_image_msg(event, lambda: self.jx3api.shilianpaixing(name, server))
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
async def keju(self, event: AstrMessageEvent,subject: str, limit: int = 5):
|
||||
@@ -366,9 +493,7 @@ class MessageBuilder:
|
||||
""" 资历排行 """
|
||||
return await self.T2I_image_msg(event, lambda: self.jx3api.zilipaixing("", ""))
|
||||
|
||||
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 shaohua(self, event: AstrMessageEvent,):
|
||||
@@ -406,29 +531,17 @@ class MessageBuilder:
|
||||
return await self.T2I_image_msg(event, self.jx3api.zhueevent)
|
||||
|
||||
|
||||
async def benrichitu(self, event: AstrMessageEvent):
|
||||
""" 本日赤兔"""
|
||||
return await self.plain_msg(event, self.jx3api.benrichitu)
|
||||
|
||||
|
||||
async def benzhouchitu(self, event: AstrMessageEvent):
|
||||
""" 本周赤兔"""
|
||||
return await self.plain_msg(event, self.jx3api.benzhouchitu)
|
||||
|
||||
|
||||
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 zhenyingevent(self, event: AstrMessageEvent):
|
||||
""" 阵营事件"""
|
||||
return await self.T2I_image_msg(event, self.jx3api.zhenyingevent)
|
||||
|
||||
|
||||
async def guanaishouling(self, event: AstrMessageEvent):
|
||||
""" 关隘首领"""
|
||||
return await self.T2I_image_msg(event, self.jx3api.guanaishouling)
|
||||
|
||||
|
||||
|
||||
async def bangzhanjilu(self, event: AstrMessageEvent, server: str = ""):
|
||||
@@ -446,9 +559,7 @@ class MessageBuilder:
|
||||
return await self.T2I_image_msg(event, lambda: self.jx3api.dilujilu( self.serverdefault(server)))
|
||||
|
||||
|
||||
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 pianzhi(self, event: AstrMessageEvent,qq: str):
|
||||
@@ -489,20 +600,8 @@ class MessageBuilder:
|
||||
return await self.T2I_image_msg(event, lambda: self.jx3api.qiyuhuizong(self.serverdefault(target_server), num))
|
||||
|
||||
|
||||
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 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 mingjiantongji(self, event: AstrMessageEvent,mode: str = "33"):
|
||||
""" 名剑统计 模式"""
|
||||
return await self.T2I_image_msg(event, lambda: self.jx3api.mingjiantongji(mode))
|
||||
|
||||
|
||||
async def tuanduizhaomu(self, event: AstrMessageEvent,keyword: str = "25人普通会战弓月城", server: str = ""):
|
||||
""" 招募 副本 服务器"""
|
||||
@@ -519,94 +618,8 @@ class MessageBuilder:
|
||||
return await self.T2I_image_msg(event, lambda: self.jx3api.shitu(1, keyword, self.serverdefault(server)))
|
||||
|
||||
|
||||
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 mingshiwushiqiang(self, event: AstrMessageEvent, server: str = ""):
|
||||
""" 名士五十强 服务器"""
|
||||
return await self. rank_statistical(event, "名士五十强", server)
|
||||
|
||||
|
||||
async def laojianghuwushiqiang(self, event: AstrMessageEvent, server: str = ""):
|
||||
""" 老江湖五十强 服务器"""
|
||||
return await self. rank_statistical(event, "老江湖五十强", server)
|
||||
|
||||
|
||||
async def bingjiacangjiawushiqiang(self, event: AstrMessageEvent, server: str = ""):
|
||||
""" 兵甲藏家五十强 服务器"""
|
||||
return await self. rank_statistical(event, "兵甲藏家五十强", server)
|
||||
|
||||
|
||||
async def mingshiwushiqiang_mentor(self, event: AstrMessageEvent, server: str = ""):
|
||||
""" 名师五十强 服务器"""
|
||||
return await self. rank_statistical(event, "名师五十强", server)
|
||||
|
||||
|
||||
async def zhengyingyingxiongwushiqiang(self, event: AstrMessageEvent, server: str = ""):
|
||||
""" 阵营英雄五十强 服务器"""
|
||||
return await self. rank_statistical(event, "阵营英雄五十强", server)
|
||||
|
||||
|
||||
async def xinhuoxiangchuanwushiqiang(self, event: AstrMessageEvent, server: str = ""):
|
||||
""" 薪火相传五十强 服务器"""
|
||||
return await self. rank_statistical(event, "薪火相传五十强", server)
|
||||
|
||||
|
||||
async def luyuanguangjiyibaiqiang(self, event: AstrMessageEvent, server: str = ""):
|
||||
""" 庐园广记一百强 服务器"""
|
||||
return await self. rank_statistical(event, "庐园广记一百强", server)
|
||||
|
||||
|
||||
async def haoqishenbingbaojiawushiqiang(self, event: AstrMessageEvent, server: str = ""):
|
||||
""" 浩气神兵宝甲五十强 服务器"""
|
||||
return await self. rank_statistical(event, "浩气神兵宝甲五十强", server)
|
||||
|
||||
|
||||
async def erenshenbingbaojiawushiqiang(self, event: AstrMessageEvent, server: str = ""):
|
||||
""" 恶人神兵宝甲五十强 服务器"""
|
||||
return await self. rank_statistical(event, "恶人神兵宝甲五十强", server)
|
||||
|
||||
|
||||
async def haoqiaixinbanghuiwushiqiang(self, event: AstrMessageEvent, server: str = ""):
|
||||
""" 浩气爱心帮会五十强 服务器"""
|
||||
return await self. rank_statistical(event, "浩气爱心帮会五十强", server)
|
||||
|
||||
|
||||
async def erenaixinbanghuiwushiqiang(self, event: AstrMessageEvent, server: str = ""):
|
||||
""" 恶人爱心帮会五十强 服务器"""
|
||||
return await self. rank_statistical(event, "恶人爱心帮会五十强", server)
|
||||
|
||||
|
||||
async def saijierenwushiqiang(self, event: AstrMessageEvent, server: str = ""):
|
||||
""" 赛季恶人五十强 服务器"""
|
||||
return await self. rank_statistical(event, "赛季恶人五十强", server)
|
||||
|
||||
|
||||
async def saijihaoqiwushiqiang(self, event: AstrMessageEvent, server: str = ""):
|
||||
""" 赛季浩气五十强 服务器"""
|
||||
return await self. rank_statistical(event, "赛季浩气五十强", server)
|
||||
|
||||
|
||||
async def shangzhouerenwushiqiang(self, event: AstrMessageEvent, server: str = ""):
|
||||
""" 上周恶人五十强 服务器"""
|
||||
return await self. rank_statistical(event, "上周恶人五十强", server)
|
||||
|
||||
|
||||
async def shangzhouhaoqiwushiqiang(self, event: AstrMessageEvent, server: str = ""):
|
||||
""" 上周浩气五十强 服务器"""
|
||||
return await self. rank_statistical(event, "上周浩气五十强", server)
|
||||
|
||||
|
||||
async def benzhouerenwushiqiang(self, event: AstrMessageEvent, server: str = ""):
|
||||
""" 本周恶人五十强 服务器"""
|
||||
return await self. rank_statistical(event, "本周恶人五十强", server)
|
||||
|
||||
|
||||
async def benzhouhaoqiwushiqiang(self, event: AstrMessageEvent, server: str = ""):
|
||||
""" 本周浩气五十强 服务器"""
|
||||
return await self. rank_statistical(event, "本周浩气五十强", server)
|
||||
|
||||
|
||||
async def jueshe(self, event: AstrMessageEvent,name: str, server: str = ""):
|
||||
@@ -634,9 +647,7 @@ class MessageBuilder:
|
||||
return await self.image_msg(event, lambda: self.jx3api.shuijimingpian(force,body, self.serverdefault(server)))
|
||||
|
||||
|
||||
async def shuma(self, event: AstrMessageEvent,server: str = ""):
|
||||
""" 刷马 服务器"""
|
||||
return await self.plain_msg(event, lambda: self.jx3api.shuma( self.serverdefault(server)))
|
||||
|
||||
|
||||
|
||||
async def jinjia(self, event: AstrMessageEvent,server: str = "", limit:str = "15"):
|
||||
|
||||
@@ -198,56 +198,21 @@ class Jx3ApiPlugin(Star):
|
||||
self.command_map = {
|
||||
"功能": 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.richangyuche,
|
||||
"穹野卫": self. jx3cmd.qiongyewei,
|
||||
"披风会": self. jx3cmd.pifenghui,
|
||||
"云从社": self. jx3cmd.yunchongshe,
|
||||
"楚天社": self. jx3cmd.chutianshe,
|
||||
"关隘": self. jx3cmd.guanaishouling,
|
||||
"赤兔": 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.zhenyingevent,
|
||||
"烟花": self. jx3cmd.yanhuachaxun,
|
||||
"骗子": self. jx3cmd.pianzhi,
|
||||
"奇遇": self. jx3cmd.juesheqiyu,
|
||||
"未做奇遇": self. jx3cmd.weizuoqiyu,
|
||||
"奇遇统计": self. jx3cmd.qiyutongji,
|
||||
"近期奇遇": self. jx3cmd.jinqiqiyu,
|
||||
"奇遇汇总": self. jx3cmd.qiyuhuizong,
|
||||
"刷马": self. jx3cmd.shuma,
|
||||
"马场": self. jx3cmd.machang,
|
||||
"战绩": 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,
|
||||
@@ -265,12 +230,60 @@ class Jx3ApiPlugin(Star):
|
||||
"上周浩气五十强": self. jx3cmd.shangzhouhaoqiwushiqiang,
|
||||
"本周恶人五十强": self. jx3cmd.benzhouerenwushiqiang,
|
||||
"本周浩气五十强": self. jx3cmd.benzhouhaoqiwushiqiang,
|
||||
"试炼排行": self. jx3cmd.shilianpaixing,
|
||||
|
||||
|
||||
"科举": 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.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.zhengyingpaimai,
|
||||
|
||||
"帮战记录": self. jx3cmd.bangzhanjilu,
|
||||
"统战": self. jx3cmd.tongzhanyy,
|
||||
"的卢": self. jx3cmd.dilujilu,
|
||||
|
||||
"骗子": self. jx3cmd.pianzhi,
|
||||
"奇遇": self. jx3cmd.juesheqiyu,
|
||||
"未做奇遇": self. jx3cmd.weizuoqiyu,
|
||||
"奇遇统计": self. jx3cmd.qiyutongji,
|
||||
"近期奇遇": self. jx3cmd.jinqiqiyu,
|
||||
"奇遇汇总": self. jx3cmd.qiyuhuizong,
|
||||
|
||||
"招募": self. jx3cmd.tuanduizhaomu,
|
||||
"拜师": self. jx3cmd.baishi,
|
||||
"收徒": self. jx3cmd.shoutu,
|
||||
|
||||
"角色": 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,
|
||||
|
||||
@@ -95,8 +95,8 @@
|
||||
<thead>
|
||||
<tr>
|
||||
<th>门派</th>
|
||||
<th>当前赛季数量</th>
|
||||
<th>上赛季数量</th>
|
||||
<th>本周数量</th>
|
||||
<th>上周数量</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
@@ -105,14 +105,14 @@
|
||||
<tr>
|
||||
<td>
|
||||
<div class="school">
|
||||
{% if icons.sect.get(m.name) %}
|
||||
<img class="school-icon" src="{{ icons.sect[m.name] }}" alt="{{ m.name }}">
|
||||
{% if icons.sect.get(m.forceName) %}
|
||||
<img class="school-icon" src="{{ icons.sect[m.forceName] }}" alt="{{ m.forceName }}">
|
||||
{% endif %}
|
||||
<span>{{ m.name }}</span>
|
||||
<span>{{ m.forceName }}</span>
|
||||
</div>
|
||||
</td>
|
||||
<td class="num-col">{{ m.this }}</td>
|
||||
<td class="num-col">{{ m.last }}</td>
|
||||
<td class="num-col">{{ m.thisWeek }}</td>
|
||||
<td class="num-col">{{ m.lastWeek }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
|
||||
@@ -137,17 +137,17 @@
|
||||
<td class="rank-col">{{ loop.index }}</td>
|
||||
<td>
|
||||
<div class="force">
|
||||
{% if icons.sect.get(item.force_name) %}
|
||||
<img class="force-icon" src="{{ icons.sect[item.force_name] }}" alt="{{ item.force_name }}">
|
||||
{% if icons.sect.get(item.forceName) %}
|
||||
<img class="force-icon" src="{{ icons.sect[item.forceName] }}" alt="{{ item.forceName }}">
|
||||
{% endif %}
|
||||
<span>{{ item.force_name }}</span>
|
||||
<span>{{ item.forceName }}</span>
|
||||
</div>
|
||||
</td>
|
||||
<td class="role-col">{{ item.role_name }}</td>
|
||||
<td class="level-col">{{ item.role_level }}</td>
|
||||
<td class="camp-col">{{ item.camp_name }}</td>
|
||||
<td class="tong-col">{{ item.tong_name }}</td>
|
||||
<td class="score-col">{{ item.total_score }}</td>
|
||||
<td class="role-col">{{ item.name }}</td>
|
||||
<td class="level-col">{{ item.level }}</td>
|
||||
<td class="camp-col">{{ item.campName }}</td>
|
||||
<td class="tong-col">{{ item.tongName }}</td>
|
||||
<td class="score-col">{{ item.totalScore }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
|
||||
@@ -126,11 +126,11 @@
|
||||
{% for item in items %}
|
||||
<tr>
|
||||
<td class="rank-col">{{ loop.index }}</td>
|
||||
<td class="tong-col">{{ item.tong_name }}</td>
|
||||
<td class="master-col">{{ item.master_name }}</td>
|
||||
<td class="castle-col">{{ item.castle_name }}</td>
|
||||
<td class="people-col">{{ item.now_count }}/{{ item.max_count }}</td>
|
||||
<td class="score-col">{{ item.total_score }}</td>
|
||||
<td class="tong-col">{{ item.tongName }}</td>
|
||||
<td class="master-col">{{ item.masterName }}</td>
|
||||
<td class="castle-col">{{ item.castleName }}</td>
|
||||
<td class="people-col">{{ item.memberCount }}/{{ item.maxMemberCount }}</td>
|
||||
<td class="score-col">{{ item.titlePoint }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
@@ -0,0 +1,139 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>帮会榜单</title>
|
||||
|
||||
<style>
|
||||
body {
|
||||
font-family: "Microsoft YaHei", Arial, sans-serif;
|
||||
background: #f1f2f6;
|
||||
margin: 0;
|
||||
padding: 20px;
|
||||
color: #2c2c33;
|
||||
}
|
||||
|
||||
.container {
|
||||
max-width: 1040px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 32px;
|
||||
margin: 0 0 8px 0;
|
||||
color: #222;
|
||||
font-weight: 800;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.meta {
|
||||
margin-bottom: 24px;
|
||||
color: #7a7f99;
|
||||
font-size: 16px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
table {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
background: white;
|
||||
border-radius: 12px;
|
||||
overflow: hidden;
|
||||
box-shadow: 0 4px 16px rgba(0,0,0,0.08);
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
thead {
|
||||
background: #d93939;
|
||||
color: white;
|
||||
font-size: 17px;
|
||||
}
|
||||
|
||||
th, td {
|
||||
padding: 12px 10px;
|
||||
border-bottom: 1px solid #eee;
|
||||
font-size: 15px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
tbody tr:nth-child(even) {
|
||||
background: #fafafa;
|
||||
}
|
||||
|
||||
.rank-col,
|
||||
.people-col,
|
||||
.score-col {
|
||||
white-space: nowrap;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.rank-col {
|
||||
width: 56px;
|
||||
color: #d93939;
|
||||
font-weight: 800;
|
||||
}
|
||||
|
||||
.tong-col {
|
||||
min-width: 220px;
|
||||
font-weight: 800;
|
||||
color: #333;
|
||||
word-break: break-word;
|
||||
}
|
||||
|
||||
.master-col {
|
||||
min-width: 150px;
|
||||
color: #333;
|
||||
word-break: break-word;
|
||||
}
|
||||
|
||||
.castle-col {
|
||||
min-width: 110px;
|
||||
color: #60657a;
|
||||
word-break: break-word;
|
||||
}
|
||||
|
||||
.people-col {
|
||||
color: #333;
|
||||
font-variant-numeric: tabular-nums;
|
||||
}
|
||||
|
||||
.score-col {
|
||||
color: #d93939;
|
||||
font-weight: 800;
|
||||
font-variant-numeric: tabular-nums;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="container">
|
||||
<h1>{{ rank_name }}</h1>
|
||||
<div class="meta">{{ server }} · 更新时间:{{ update_time }}</div>
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>排名</th>
|
||||
<th>帮会名称</th>
|
||||
<th>帮主</th>
|
||||
<th>人数</th>
|
||||
<th>排行积分</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
{% for item in items %}
|
||||
<tr>
|
||||
<td class="rank-col">{{ loop.index }}</td>
|
||||
<td class="tong-col">{{ item.tongName }}</td>
|
||||
<td class="master-col">{{ item.masterName }}</td>
|
||||
<td class="people-col">{{ item.maxLimit }}</td>
|
||||
<td class="score-col">{{ item.totalScore }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,137 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>帮会榜单</title>
|
||||
|
||||
<style>
|
||||
body {
|
||||
font-family: "Microsoft YaHei", Arial, sans-serif;
|
||||
background: #f1f2f6;
|
||||
margin: 0;
|
||||
padding: 20px;
|
||||
color: #2c2c33;
|
||||
}
|
||||
|
||||
.container {
|
||||
max-width: 1040px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 32px;
|
||||
margin: 0 0 8px 0;
|
||||
color: #222;
|
||||
font-weight: 800;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.meta {
|
||||
margin-bottom: 24px;
|
||||
color: #7a7f99;
|
||||
font-size: 16px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
table {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
background: white;
|
||||
border-radius: 12px;
|
||||
overflow: hidden;
|
||||
box-shadow: 0 4px 16px rgba(0,0,0,0.08);
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
thead {
|
||||
background: #d93939;
|
||||
color: white;
|
||||
font-size: 17px;
|
||||
}
|
||||
|
||||
th, td {
|
||||
padding: 12px 10px;
|
||||
border-bottom: 1px solid #eee;
|
||||
font-size: 15px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
tbody tr:nth-child(even) {
|
||||
background: #fafafa;
|
||||
}
|
||||
|
||||
.rank-col,
|
||||
.people-col,
|
||||
.score-col {
|
||||
white-space: nowrap;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.rank-col {
|
||||
width: 56px;
|
||||
color: #d93939;
|
||||
font-weight: 800;
|
||||
}
|
||||
|
||||
.tong-col {
|
||||
min-width: 220px;
|
||||
font-weight: 800;
|
||||
color: #333;
|
||||
word-break: break-word;
|
||||
}
|
||||
|
||||
.master-col {
|
||||
min-width: 150px;
|
||||
color: #333;
|
||||
word-break: break-word;
|
||||
}
|
||||
|
||||
.castle-col {
|
||||
min-width: 110px;
|
||||
color: #60657a;
|
||||
word-break: break-word;
|
||||
}
|
||||
|
||||
.people-col {
|
||||
color: #333;
|
||||
font-variant-numeric: tabular-nums;
|
||||
}
|
||||
|
||||
.score-col {
|
||||
color: #d93939;
|
||||
font-weight: 800;
|
||||
font-variant-numeric: tabular-nums;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="container">
|
||||
<h1>{{ rank_name }}</h1>
|
||||
<div class="meta">{{ server }} · 更新时间:{{ update_time }}</div>
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>排名</th>
|
||||
<th>帮会名称</th>
|
||||
<th>帮主</th>
|
||||
<th>排行积分</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
{% for item in items %}
|
||||
<tr>
|
||||
<td class="rank-col">{{ loop.index }}</td>
|
||||
<td class="tong-col">{{ item.tongName }}</td>
|
||||
<td class="master-col">{{ item.masterName }}</td>
|
||||
<td class="score-col">{{ item.key }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -83,10 +83,10 @@
|
||||
{% for m in list %}
|
||||
<tr>
|
||||
<td>{{ m.server }}</td>
|
||||
<td>{{ m.name }}</td>
|
||||
<td>{{ m.map_name }}</td>
|
||||
<td>{{ m.firework }}</td>
|
||||
<td>{{ m.mapName }}</td>
|
||||
<td>{{ m.sender }}</td>
|
||||
<td>{{ m.receive }}</td>
|
||||
<td>{{ m.receiver }}</td>
|
||||
<td>{{ m.time }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
|
||||
+7
-14
@@ -275,24 +275,17 @@ tbody tr:nth-child(odd) {
|
||||
</div>
|
||||
<script>
|
||||
document.querySelectorAll(".start-time").forEach(function (cell) {
|
||||
var raw = cell.dataset.ts || cell.textContent.trim();
|
||||
var ts = Number(raw);
|
||||
const ts = Number(cell.dataset.ts);
|
||||
|
||||
if (!Number.isFinite(ts) || ts <= 0) {
|
||||
cell.textContent = raw || "-";
|
||||
cell.textContent = "-";
|
||||
return;
|
||||
}
|
||||
|
||||
var date = new Date(ts * 1000);
|
||||
var pad = function (n) { return String(n).padStart(2, "0"); };
|
||||
cell.textContent = [
|
||||
date.getFullYear(),
|
||||
pad(date.getMonth() + 1),
|
||||
pad(date.getDate())
|
||||
].join("-") + " " + [
|
||||
pad(date.getHours()),
|
||||
pad(date.getMinutes()),
|
||||
pad(date.getSeconds())
|
||||
].join(":");
|
||||
cell.textContent = new Date(ts * 1000).toLocaleString("zh-CN", {
|
||||
timeZone: "Asia/Shanghai",
|
||||
hour12: false
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
|
||||
@@ -136,11 +136,11 @@
|
||||
class="camp-haoqi"
|
||||
{% endif %}
|
||||
>
|
||||
<td class="camp-col">{{ item.camp_name }}</td>
|
||||
<td class="fenxian-col">{{ item.fenxian_name }}</td>
|
||||
<td class="server-col">{{ item.friend_name }}</td>
|
||||
<td class="role-col">{{ item.role_name }}</td>
|
||||
<td class="time-col">{{ item.seize_time }}</td>
|
||||
<td class="camp-col">{{ item.campName }}</td>
|
||||
<td class="fenxian-col">{{ item.fenxianName }}</td>
|
||||
<td class="server-col">{{ item.friendName }}</td>
|
||||
<td class="role-col">{{ item.roleName }}</td>
|
||||
<td class="time-col">{{ item.seizeTime }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
|
||||
Reference in New Issue
Block a user