修改3
This commit is contained in:
@@ -9,20 +9,23 @@
|
|||||||
插件内置 `功能` 指令,会以图片形式展示完整指令列表、参数说明和是否需要令牌。当前帮助页按 13 个功能分组维护,约 88 条指令。
|
插件内置 `功能` 指令,会以图片形式展示完整指令列表、参数说明和是否需要令牌。当前帮助页按 13 个功能分组维护,约 88 条指令。
|
||||||
|
|
||||||
主要功能包括:
|
主要功能包括:
|
||||||
|
【活动情报】
|
||||||
- 日常功能:日常、月历、名望、诛恶。
|
活动日历: 日常 [延后天数] | 日常预测
|
||||||
- 官方功能:公告、维护、技改、区服、开服、状态。
|
声望社:楚天社 | 云从社 | 披风会 | 穹野卫
|
||||||
- 角色功能:角色、资历、名片、所有名片、奇遇、未做奇遇、战绩、精耐。
|
关隘首领:关隘
|
||||||
- 职业功能:小药、宏、配装、阵眼、奇穴、技能。
|
赤兔:赤兔 | 本周赤兔
|
||||||
- 休闲功能:烟花、拜师、收徒、随机名片、攻略、奇遇统计、近期奇遇、奇遇汇总。
|
阵营事件:阵营奉献 [阵营]
|
||||||
- 阵营功能:沙盘、阵营拍卖、阵营事件、关隘首领、帮战记录、统战 YY。
|
烟花记录::烟花 区服 角色
|
||||||
- 副本功能:百战、招募、掉落、解密。
|
马场查询:刷马 | 马场
|
||||||
- 活动功能:扶摇、本日赤兔、本周赤兔、刷马、的卢。
|
【名剑相关】
|
||||||
- 交易功能:金价、物价、交易行、贴吧物价。
|
名剑战绩:战绩 服务器 角色 [模式]
|
||||||
- 杂项功能:科举、花价、装饰、器物、八卦、骗子、骚话。
|
名剑排行:名剑排行 [模式] [数量]
|
||||||
- 排行功能:名剑统计、名剑排行、资历排行、试炼排行和各类风云录榜单。
|
名剑统计:名剑统计 [模式]
|
||||||
- 推送功能:开服推送、新闻推送、刷马推送、赤兔推送。
|
【排行榜单】
|
||||||
- 避雷功能:避雷查看、添加、删除、修改、查询。
|
排行统计:名士五十强 服务器 | 老江湖五十强 服务器 | 兵甲藏家五十强 服务器 | 名师五十强 服务器 | 阵营英雄五十强 服务器 | 薪火相传五十强 服务器 |
|
||||||
|
庐园广记一百强 服务器 | 浩气神兵宝甲五十强 服务器 | 恶人神兵宝甲五十强 服务器 | 浩气爱心帮会五十强 服务器 | 恶人爱心帮会五十强 服务器 |
|
||||||
|
赛季恶人五十强 服务器 | 赛季浩气五十强 服务器 | 上周恶人五十强 服务器 | 上周浩气五十强 服务器 | 本周恶人五十强 服务器 | 本周浩气五十强 服务器
|
||||||
|
试炼排行:试炼排行 服务器 心法
|
||||||
|
|
||||||
## 安装与依赖
|
## 安装与依赖
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from datetime import datetime,date
|
from datetime import datetime,date
|
||||||
|
from zoneinfo import ZoneInfo
|
||||||
|
|
||||||
import aiofiles
|
import aiofiles
|
||||||
import base64
|
import base64
|
||||||
import os
|
import os
|
||||||
@@ -142,3 +144,21 @@ def load_as_base64(icons_dir: str) -> dict[str, str]:
|
|||||||
icons[display_name] = f"data:{mime};base64,{data}"
|
icons[display_name] = f"data:{mime};base64,{data}"
|
||||||
|
|
||||||
return icons
|
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 ""
|
||||||
+387
-685
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))
|
return await self.T2I_image_msg(event, lambda: self.jx3api.richang("list",15))
|
||||||
|
|
||||||
|
|
||||||
async def xingxiashijian(self, event: AstrMessageEvent,name: str = "穹野卫"):
|
async def qiongyewei(self, event: AstrMessageEvent):
|
||||||
""" 名望"""
|
""" 穹野卫"""
|
||||||
return await self.T2I_image_msg(event, lambda: self.jx3api.xingxiashijian(name))
|
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):
|
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("", ""))
|
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,):
|
async def shaohua(self, event: AstrMessageEvent,):
|
||||||
@@ -406,29 +531,17 @@ class MessageBuilder:
|
|||||||
return await self.T2I_image_msg(event, self.jx3api.zhueevent)
|
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 = ""):
|
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))
|
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 = ""):
|
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)))
|
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):
|
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))
|
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 = ""):
|
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)))
|
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 = ""):
|
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)))
|
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"):
|
async def jinjia(self, event: AstrMessageEvent,server: str = "", limit:str = "15"):
|
||||||
|
|||||||
@@ -198,56 +198,21 @@ class Jx3ApiPlugin(Star):
|
|||||||
self.command_map = {
|
self.command_map = {
|
||||||
"功能": self. jx3cmd.helps,
|
"功能": self. jx3cmd.helps,
|
||||||
"日常": self. jx3cmd.richang,
|
"日常": self. jx3cmd.richang,
|
||||||
"月历": self. jx3cmd.richangyuche,
|
"日常预测": self. jx3cmd.richangyuche,
|
||||||
"名望": self. jx3cmd.xingxiashijian,
|
"穹野卫": self. jx3cmd.qiongyewei,
|
||||||
"科举": self. jx3cmd.keju,
|
"披风会": self. jx3cmd.pifenghui,
|
||||||
"花价": self. jx3cmd.huajia,
|
"云从社": self. jx3cmd.yunchongshe,
|
||||||
"装饰": self. jx3cmd.zhuangshi,
|
"楚天社": self. jx3cmd.chutianshe,
|
||||||
"器物": self. jx3cmd.qiwu,
|
"关隘": self. jx3cmd.guanaishouling,
|
||||||
"公告": self. jx3cmd.xinwen,
|
"赤兔": self. jx3cmd.benrichitu,
|
||||||
"维护": 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.benzhouchitu,
|
||||||
"拍卖": self. jx3cmd.zhengyingpaimai,
|
"阵营奉献": self. jx3cmd.zhenyingevent,
|
||||||
"阵营事件": self. jx3cmd.zhenyingevent,
|
|
||||||
"关隘首领": self. jx3cmd.guanaishouling,
|
|
||||||
"帮战记录": self. jx3cmd.bangzhanjilu,
|
|
||||||
"统战": self. jx3cmd.tongzhanyy,
|
|
||||||
"的卢": self. jx3cmd.dilujilu,
|
|
||||||
"烟花": self. jx3cmd.yanhuachaxun,
|
"烟花": self. jx3cmd.yanhuachaxun,
|
||||||
"骗子": self. jx3cmd.pianzhi,
|
"刷马": self. jx3cmd.shuma,
|
||||||
"奇遇": self. jx3cmd.juesheqiyu,
|
"马场": self. jx3cmd.machang,
|
||||||
"未做奇遇": self. jx3cmd.weizuoqiyu,
|
|
||||||
"奇遇统计": self. jx3cmd.qiyutongji,
|
|
||||||
"近期奇遇": self. jx3cmd.jinqiqiyu,
|
|
||||||
"奇遇汇总": self. jx3cmd.qiyuhuizong,
|
|
||||||
"战绩": self. jx3cmd.zhanji,
|
"战绩": self. jx3cmd.zhanji,
|
||||||
"名剑排行": self. jx3cmd.mingjianpaihang,
|
"名剑排行": self. jx3cmd.mingjianpaihang,
|
||||||
"名剑统计": self. jx3cmd.mingjiantongji,
|
"名剑统计": self. jx3cmd.mingjiantongji,
|
||||||
"招募": self. jx3cmd.tuanduizhaomu,
|
|
||||||
"拜师": self. jx3cmd.baishi,
|
|
||||||
"收徒": self. jx3cmd.shoutu,
|
|
||||||
"名士五十强": self. jx3cmd.mingshiwushiqiang,
|
"名士五十强": self. jx3cmd.mingshiwushiqiang,
|
||||||
"老江湖五十强": self. jx3cmd.laojianghuwushiqiang,
|
"老江湖五十强": self. jx3cmd.laojianghuwushiqiang,
|
||||||
"兵甲藏家五十强": self. jx3cmd.bingjiacangjiawushiqiang,
|
"兵甲藏家五十强": self. jx3cmd.bingjiacangjiawushiqiang,
|
||||||
@@ -265,12 +230,60 @@ class Jx3ApiPlugin(Star):
|
|||||||
"上周浩气五十强": self. jx3cmd.shangzhouhaoqiwushiqiang,
|
"上周浩气五十强": self. jx3cmd.shangzhouhaoqiwushiqiang,
|
||||||
"本周恶人五十强": self. jx3cmd.benzhouerenwushiqiang,
|
"本周恶人五十强": self. jx3cmd.benzhouerenwushiqiang,
|
||||||
"本周浩气五十强": self. jx3cmd.benzhouhaoqiwushiqiang,
|
"本周浩气五十强": 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.jueshe,
|
||||||
"名片": self. jx3cmd.jueshemingpian,
|
"名片": self. jx3cmd.jueshemingpian,
|
||||||
"精耐": self. jx3cmd.jingnai,
|
"精耐": self. jx3cmd.jingnai,
|
||||||
"所有名片": self. jx3cmd.shuoyoumingpian,
|
"所有名片": self. jx3cmd.shuoyoumingpian,
|
||||||
"随机名片": self. jx3cmd.shuijimingpian,
|
"随机名片": self. jx3cmd.shuijimingpian,
|
||||||
"刷马": self. jx3cmd.shuma,
|
|
||||||
"金价": self. jx3cmd.jinjia,
|
"金价": self. jx3cmd.jinjia,
|
||||||
"物价": self. jx3cmd.wujia,
|
"物价": self. jx3cmd.wujia,
|
||||||
"八卦": self. jx3cmd.bagua,
|
"八卦": self. jx3cmd.bagua,
|
||||||
|
|||||||
@@ -95,8 +95,8 @@
|
|||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>门派</th>
|
<th>门派</th>
|
||||||
<th>当前赛季数量</th>
|
<th>本周数量</th>
|
||||||
<th>上赛季数量</th>
|
<th>上周数量</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
|
|
||||||
@@ -105,14 +105,14 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<div class="school">
|
<div class="school">
|
||||||
{% if icons.sect.get(m.name) %}
|
{% if icons.sect.get(m.forceName) %}
|
||||||
<img class="school-icon" src="{{ icons.sect[m.name] }}" alt="{{ m.name }}">
|
<img class="school-icon" src="{{ icons.sect[m.forceName] }}" alt="{{ m.forceName }}">
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<span>{{ m.name }}</span>
|
<span>{{ m.forceName }}</span>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td class="num-col">{{ m.this }}</td>
|
<td class="num-col">{{ m.thisWeek }}</td>
|
||||||
<td class="num-col">{{ m.last }}</td>
|
<td class="num-col">{{ m.lastWeek }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|||||||
@@ -137,17 +137,17 @@
|
|||||||
<td class="rank-col">{{ loop.index }}</td>
|
<td class="rank-col">{{ loop.index }}</td>
|
||||||
<td>
|
<td>
|
||||||
<div class="force">
|
<div class="force">
|
||||||
{% if icons.sect.get(item.force_name) %}
|
{% if icons.sect.get(item.forceName) %}
|
||||||
<img class="force-icon" src="{{ icons.sect[item.force_name] }}" alt="{{ item.force_name }}">
|
<img class="force-icon" src="{{ icons.sect[item.forceName] }}" alt="{{ item.forceName }}">
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<span>{{ item.force_name }}</span>
|
<span>{{ item.forceName }}</span>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td class="role-col">{{ item.role_name }}</td>
|
<td class="role-col">{{ item.name }}</td>
|
||||||
<td class="level-col">{{ item.role_level }}</td>
|
<td class="level-col">{{ item.level }}</td>
|
||||||
<td class="camp-col">{{ item.camp_name }}</td>
|
<td class="camp-col">{{ item.campName }}</td>
|
||||||
<td class="tong-col">{{ item.tong_name }}</td>
|
<td class="tong-col">{{ item.tongName }}</td>
|
||||||
<td class="score-col">{{ item.total_score }}</td>
|
<td class="score-col">{{ item.totalScore }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|||||||
@@ -126,11 +126,11 @@
|
|||||||
{% for item in items %}
|
{% for item in items %}
|
||||||
<tr>
|
<tr>
|
||||||
<td class="rank-col">{{ loop.index }}</td>
|
<td class="rank-col">{{ loop.index }}</td>
|
||||||
<td class="tong-col">{{ item.tong_name }}</td>
|
<td class="tong-col">{{ item.tongName }}</td>
|
||||||
<td class="master-col">{{ item.master_name }}</td>
|
<td class="master-col">{{ item.masterName }}</td>
|
||||||
<td class="castle-col">{{ item.castle_name }}</td>
|
<td class="castle-col">{{ item.castleName }}</td>
|
||||||
<td class="people-col">{{ item.now_count }}/{{ item.max_count }}</td>
|
<td class="people-col">{{ item.memberCount }}/{{ item.maxMemberCount }}</td>
|
||||||
<td class="score-col">{{ item.total_score }}</td>
|
<td class="score-col">{{ item.titlePoint }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</tbody>
|
</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 %}
|
{% for m in list %}
|
||||||
<tr>
|
<tr>
|
||||||
<td>{{ m.server }}</td>
|
<td>{{ m.server }}</td>
|
||||||
<td>{{ m.name }}</td>
|
<td>{{ m.firework }}</td>
|
||||||
<td>{{ m.map_name }}</td>
|
<td>{{ m.mapName }}</td>
|
||||||
<td>{{ m.sender }}</td>
|
<td>{{ m.sender }}</td>
|
||||||
<td>{{ m.receive }}</td>
|
<td>{{ m.receiver }}</td>
|
||||||
<td>{{ m.time }}</td>
|
<td>{{ m.time }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|||||||
+7
-14
@@ -275,24 +275,17 @@ tbody tr:nth-child(odd) {
|
|||||||
</div>
|
</div>
|
||||||
<script>
|
<script>
|
||||||
document.querySelectorAll(".start-time").forEach(function (cell) {
|
document.querySelectorAll(".start-time").forEach(function (cell) {
|
||||||
var raw = cell.dataset.ts || cell.textContent.trim();
|
const ts = Number(cell.dataset.ts);
|
||||||
var ts = Number(raw);
|
|
||||||
if (!Number.isFinite(ts) || ts <= 0) {
|
if (!Number.isFinite(ts) || ts <= 0) {
|
||||||
cell.textContent = raw || "-";
|
cell.textContent = "-";
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var date = new Date(ts * 1000);
|
cell.textContent = new Date(ts * 1000).toLocaleString("zh-CN", {
|
||||||
var pad = function (n) { return String(n).padStart(2, "0"); };
|
timeZone: "Asia/Shanghai",
|
||||||
cell.textContent = [
|
hour12: false
|
||||||
date.getFullYear(),
|
});
|
||||||
pad(date.getMonth() + 1),
|
|
||||||
pad(date.getDate())
|
|
||||||
].join("-") + " " + [
|
|
||||||
pad(date.getHours()),
|
|
||||||
pad(date.getMinutes()),
|
|
||||||
pad(date.getSeconds())
|
|
||||||
].join(":");
|
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
</body>
|
</body>
|
||||||
|
|||||||
@@ -136,11 +136,11 @@
|
|||||||
class="camp-haoqi"
|
class="camp-haoqi"
|
||||||
{% endif %}
|
{% endif %}
|
||||||
>
|
>
|
||||||
<td class="camp-col">{{ item.camp_name }}</td>
|
<td class="camp-col">{{ item.campName }}</td>
|
||||||
<td class="fenxian-col">{{ item.fenxian_name }}</td>
|
<td class="fenxian-col">{{ item.fenxianName }}</td>
|
||||||
<td class="server-col">{{ item.friend_name }}</td>
|
<td class="server-col">{{ item.friendName }}</td>
|
||||||
<td class="role-col">{{ item.role_name }}</td>
|
<td class="role-col">{{ item.roleName }}</td>
|
||||||
<td class="time-col">{{ item.seize_time }}</td>
|
<td class="time-col">{{ item.seizeTime }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|||||||
Reference in New Issue
Block a user