OK
This commit is contained in:
@@ -0,0 +1,132 @@
|
||||
<!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: 1080px;
|
||||
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;
|
||||
}
|
||||
|
||||
.item-col {
|
||||
min-width: 120px;
|
||||
color: #d93939;
|
||||
font-weight: 800;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.server-col {
|
||||
min-width: 90px;
|
||||
text-align: center;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.map-col {
|
||||
max-width: 260px;
|
||||
color: #333;
|
||||
word-break: break-word;
|
||||
line-height: 1.45;
|
||||
}
|
||||
|
||||
.role-col {
|
||||
max-width: 260px;
|
||||
color: #333;
|
||||
font-weight: 700;
|
||||
word-break: break-word;
|
||||
line-height: 1.45;
|
||||
}
|
||||
|
||||
.time-col {
|
||||
min-width: 150px;
|
||||
color: #60657a;
|
||||
text-align: center;
|
||||
white-space: nowrap;
|
||||
font-variant-numeric: tabular-nums;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="container">
|
||||
<h1>{{ name }} 掉落记录</h1>
|
||||
<div class="meta">{{ server }} · 数量:{{ limit }} · 更新时间:{{ 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="item-col">{{ item.item_name }}</td>
|
||||
<td class="server-col">{{ item.server }}</td>
|
||||
<td class="map-col">{{ item.map_name }}</td>
|
||||
<td class="role-col">{{ item.role_name }}</td>
|
||||
<td class="time-col">{{ item.time }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
+36
-4
@@ -164,20 +164,52 @@ body {
|
||||
<div class="command"><div class="cmd-name">的卢记录</div><div class="cmd-usage">的卢 [服务器]</div><div class="cmd-desc"></div></div>
|
||||
<div class="command"><div class="cmd-name">烟花记录</div><div class="cmd-usage">烟花 角色名 [服务器]</div><div class="cmd-desc"></div></div>
|
||||
<div class="command"><div class="cmd-name">骗子查询</div><div class="cmd-usage">骗子 QQ号</div><div class="cmd-desc"></div></div>
|
||||
<div class="command"><div class="cmd-name">角色奇遇</div><div class="cmd-usage">查询 角色名 [服务器]</div><div class="cmd-desc"></div></div>
|
||||
<div class="command"><div class="cmd-name">奇遇统计</div><div class="cmd-usage">统计 奇遇名称 [服务器]</div><div class="cmd-desc">统计指定奇遇触发次数</div></div>
|
||||
<div class="command"><div class="cmd-name">角色奇遇</div><div class="cmd-usage">奇遇 角色名 [服务器]</div><div class="cmd-desc"></div></div>
|
||||
<div class="command"><div class="cmd-name">未做奇遇</div><div class="cmd-usage">未做奇遇 角色名 [服务器]</div><div class="cmd-desc"></div></div>
|
||||
<div class="command"><div class="cmd-name">奇遇统计</div><div class="cmd-usage">奇遇统计 奇遇名称 [服务器]</div><div class="cmd-desc">统计指定奇遇触发次数</div></div>
|
||||
<div class="command"><div class="cmd-name">近期奇遇</div><div class="cmd-usage">近期奇遇 [服务器]</div><div class="cmd-desc">查询指定服务器最近触发的奇遇记录</div></div>
|
||||
<div class="command"><div class="cmd-name">奇遇汇总</div><div class="cmd-usage">奇遇汇总 [天数] [服务器]</div><div class="cmd-desc">统计指定服务器最近一段时间的奇遇触发汇总</div></div>
|
||||
<div class="command"><div class="cmd-name">名剑战绩</div><div class="cmd-usage">战绩 角色名 [服务器] [模式]</div><div class="cmd-desc">33 22</div></div>
|
||||
<div class="command"><div class="cmd-name">名剑排行</div><div class="cmd-usage">排行 [数量] [模式]</div><div class="cmd-desc">33 22</div></div>
|
||||
<div class="command"><div class="cmd-name">名剑统计</div><div class="cmd-usage">名剑统计 [模式]</div><div class="cmd-desc">22 33 55</div></div>
|
||||
<div class="command"><div class="cmd-name">副本招募</div><div class="cmd-usage">招募 副本名称 [服务器]</div><div class="cmd-desc"></div></div>
|
||||
<div class="command"><div class="cmd-name">拜师列表</div><div class="cmd-usage">拜师 [搜索关键词] [服务器]</div><div class="cmd-desc">查询徒弟找师傅信息</div></div>
|
||||
<div class="command"><div class="cmd-name">收徒列表</div><div class="cmd-usage">收徒 [搜索关键词] [服务器]</div><div class="cmd-desc">查询师傅找徒弟信息</div></div>
|
||||
<div class="command"><div class="cmd-name">名士五十强</div><div class="cmd-usage">名士五十强 [服务器]</div><div class="cmd-desc">查询风云录角色榜单</div></div>
|
||||
<div class="command"><div class="cmd-name">老江湖五十强</div><div class="cmd-usage">老江湖五十强 [服务器]</div><div class="cmd-desc">查询风云录角色榜单</div></div>
|
||||
<div class="command"><div class="cmd-name">兵甲藏家五十强</div><div class="cmd-usage">兵甲藏家五十强 [服务器]</div><div class="cmd-desc">查询风云录角色榜单</div></div>
|
||||
<div class="command"><div class="cmd-name">名师五十强</div><div class="cmd-usage">名师五十强 [服务器]</div><div class="cmd-desc">查询风云录角色榜单</div></div>
|
||||
<div class="command"><div class="cmd-name">阵营英雄五十强</div><div class="cmd-usage">阵营英雄五十强 [服务器]</div><div class="cmd-desc">查询风云录角色榜单</div></div>
|
||||
<div class="command"><div class="cmd-name">薪火相传五十强</div><div class="cmd-usage">薪火相传五十强 [服务器]</div><div class="cmd-desc">查询风云录角色榜单</div></div>
|
||||
<div class="command"><div class="cmd-name">庐园广记一百强</div><div class="cmd-usage">庐园广记一百强 [服务器]</div><div class="cmd-desc">查询风云录角色榜单</div></div>
|
||||
<div class="command"><div class="cmd-name">浩气神兵宝甲五十强</div><div class="cmd-usage">浩气神兵宝甲五十强 [服务器]</div><div class="cmd-desc">查询风云录帮会榜单</div></div>
|
||||
<div class="command"><div class="cmd-name">恶人神兵宝甲五十强</div><div class="cmd-usage">恶人神兵宝甲五十强 [服务器]</div><div class="cmd-desc">查询风云录帮会榜单</div></div>
|
||||
<div class="command"><div class="cmd-name">浩气爱心帮会五十强</div><div class="cmd-usage">浩气爱心帮会五十强 [服务器]</div><div class="cmd-desc">查询风云录帮会榜单</div></div>
|
||||
<div class="command"><div class="cmd-name">恶人爱心帮会五十强</div><div class="cmd-usage">恶人爱心帮会五十强 [服务器]</div><div class="cmd-desc">查询风云录帮会榜单</div></div>
|
||||
<div class="command"><div class="cmd-name">赛季恶人五十强</div><div class="cmd-usage">赛季恶人五十强 [服务器]</div><div class="cmd-desc">查询风云录帮会榜单</div></div>
|
||||
<div class="command"><div class="cmd-name">赛季浩气五十强</div><div class="cmd-usage">赛季浩气五十强 [服务器]</div><div class="cmd-desc">查询风云录帮会榜单</div></div>
|
||||
<div class="command"><div class="cmd-name">上周恶人五十强</div><div class="cmd-usage">上周恶人五十强 [服务器]</div><div class="cmd-desc">查询风云录帮会榜单</div></div>
|
||||
<div class="command"><div class="cmd-name">上周浩气五十强</div><div class="cmd-usage">上周浩气五十强 [服务器]</div><div class="cmd-desc">查询风云录帮会榜单</div></div>
|
||||
<div class="command"><div class="cmd-name">本周恶人五十强</div><div class="cmd-usage">本周恶人五十强 [服务器]</div><div class="cmd-desc">查询风云录帮会榜单</div></div>
|
||||
<div class="command"><div class="cmd-name">本周浩气五十强</div><div class="cmd-usage">本周浩气五十强 [服务器]</div><div class="cmd-desc">查询风云录帮会榜单</div></div>
|
||||
<div class="command"><div class="cmd-name">掉落记录</div><div class="cmd-usage">掉落 物品名称 [数量] [服务器]</div><div class="cmd-desc">查询团队秘境贵重物品掉落记录</div></div>
|
||||
<div class="command"><div class="cmd-name">角色信息</div><div class="cmd-usage">角色 名称 [服务器]</div><div class="cmd-desc">查询角色基础信息</div></div>
|
||||
<div class="command"><div class="cmd-name">角色名片</div><div class="cmd-usage">名片 角色名 [服务器]</div><div class="cmd-desc"></div></div>
|
||||
<div class="command"><div class="cmd-name">角色名片</div><div class="cmd-usage">名片 角色名 [服务器]</div><div class="cmd-desc">查询角色当前名片</div></div>
|
||||
<div class="command"><div class="cmd-name">所有名片</div><div class="cmd-usage">所有名片 角色名 [服务器]</div><div class="cmd-desc"></div></div>
|
||||
<div class="command"><div class="cmd-name">随机名片</div><div class="cmd-usage">随机 职业 体型 [服务器]</div><div class="cmd-desc"></div></div>
|
||||
<div class="command"><div class="cmd-name">刷马</div><div class="cmd-usage">刷马 [服务器]</div><div class="cmd-desc"></div></div>
|
||||
<div class="command"><div class="cmd-name">角色百战</div><div class="cmd-usage">精耐 角色名 [服务器]</div><div class="cmd-desc">查询角色百战精力耐力和技能列表</div></div>
|
||||
<div class="command"><div class="cmd-name">心法阵眼</div><div class="cmd-usage">阵眼 心法</div><div class="cmd-desc">查询指定心法阵眼效果</div></div>
|
||||
<div class="command"><div class="cmd-name">奇穴详情</div><div class="cmd-usage">奇穴 心法</div><div class="cmd-desc">查询指定心法奇穴详情</div></div>
|
||||
<div class="command"><div class="cmd-name">技能详情</div><div class="cmd-usage">技能 心法</div><div class="cmd-desc">查询指定心法技能详情</div></div>
|
||||
<div class="command"><div class="cmd-name">资历排行</div><div class="cmd-usage">资历排行 职业 [服务器]</div><div class="cmd-desc">查询指定职业资历排行榜</div></div>
|
||||
<div class="command"><div class="cmd-name">马场刷新</div><div class="cmd-usage">刷马 [服务器]</div><div class="cmd-desc"></div></div>
|
||||
<div class="command"><div class="cmd-name">金价查询</div><div class="cmd-usage">金价 [服务器]</div><div class="cmd-desc"></div></div>
|
||||
<div class="command"><div class="cmd-name">外观物价</div><div class="cmd-usage">物价 外观名称 [服务器]</div><div class="cmd-desc"></div></div>
|
||||
<div class="command"><div class="cmd-name">八卦记录</div><div class="cmd-usage">八卦 类型</div><div class="cmd-desc">818 616 避雷</div></div>
|
||||
<div class="command"><div class="cmd-name">交易行</div><div class="cmd-usage">交易行 物品名称 [服务器]</div><div class="cmd-desc"></div></div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -0,0 +1,158 @@
|
||||
<!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: 1120px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 34px;
|
||||
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;
|
||||
}
|
||||
|
||||
.section {
|
||||
margin-bottom: 24px;
|
||||
}
|
||||
|
||||
.section-title {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 10px;
|
||||
margin: 0 0 12px 0;
|
||||
color: #222;
|
||||
font-size: 24px;
|
||||
font-weight: 800;
|
||||
}
|
||||
|
||||
.section-title::before {
|
||||
content: "";
|
||||
display: block;
|
||||
width: 5px;
|
||||
height: 30px;
|
||||
background: #2f74d0;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
.cards {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(2, minmax(0, 1fr));
|
||||
gap: 14px;
|
||||
}
|
||||
|
||||
.card {
|
||||
display: grid;
|
||||
grid-template-columns: 54px minmax(0, 1fr);
|
||||
gap: 12px;
|
||||
background: white;
|
||||
border-radius: 12px;
|
||||
padding: 14px;
|
||||
box-shadow: 0 4px 16px rgba(0,0,0,0.08);
|
||||
}
|
||||
|
||||
.icon {
|
||||
width: 48px;
|
||||
height: 48px;
|
||||
border-radius: 8px;
|
||||
object-fit: cover;
|
||||
background: #f1f2f6;
|
||||
}
|
||||
|
||||
.head {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
flex-wrap: wrap;
|
||||
gap: 8px;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
.name {
|
||||
color: #222;
|
||||
font-size: 18px;
|
||||
font-weight: 800;
|
||||
line-height: 1.25;
|
||||
}
|
||||
|
||||
.tag {
|
||||
color: #5d6680;
|
||||
background: #eef2f8;
|
||||
border-radius: 999px;
|
||||
padding: 2px 8px;
|
||||
font-size: 13px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.desc {
|
||||
color: #333;
|
||||
font-size: 15px;
|
||||
line-height: 1.55;
|
||||
word-break: break-word;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="container">
|
||||
<h1>{{ name }} 技能详情</h1>
|
||||
<div class="meta">更新时间:{{ update_time }}</div>
|
||||
|
||||
{% for group in groups %}
|
||||
<div class="section">
|
||||
<div class="section-title">{{ group.title }}</div>
|
||||
<div class="cards">
|
||||
{% for skill in group.skills %}
|
||||
<div class="card">
|
||||
{% if skill.icon %}
|
||||
<img class="icon" src="{{ skill.icon }}" alt="{{ skill.name }}">
|
||||
{% else %}
|
||||
<div class="icon"></div>
|
||||
{% endif %}
|
||||
<div>
|
||||
<div class="head">
|
||||
<span class="name">{{ skill.name }}</span>
|
||||
{% if skill.interval %}
|
||||
<span class="tag">{{ skill.interval }}</span>
|
||||
{% endif %}
|
||||
{% if skill.distance %}
|
||||
<span class="tag">{{ skill.distance }}</span>
|
||||
{% endif %}
|
||||
{% if skill.release_type %}
|
||||
<span class="tag">{{ skill.release_type }}</span>
|
||||
{% endif %}
|
||||
{% if skill.weapon %}
|
||||
<span class="tag">{{ skill.weapon }}</span>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="desc">{{ skill.desc }}</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,165 @@
|
||||
<!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: 980px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 32px;
|
||||
margin: 0 0 8px 0;
|
||||
color: #222;
|
||||
font-weight: 800;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.meta {
|
||||
margin-bottom: 22px;
|
||||
color: #7a7f99;
|
||||
font-size: 16px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.summary {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(3, 1fr);
|
||||
gap: 14px;
|
||||
margin-bottom: 22px;
|
||||
}
|
||||
|
||||
.stat {
|
||||
background: white;
|
||||
border-radius: 12px;
|
||||
padding: 18px 14px;
|
||||
text-align: center;
|
||||
box-shadow: 0 4px 16px rgba(0,0,0,0.08);
|
||||
}
|
||||
|
||||
.label {
|
||||
color: #7a7f99;
|
||||
font-size: 16px;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
.value {
|
||||
color: #d93939;
|
||||
font-size: 30px;
|
||||
line-height: 1;
|
||||
font-weight: 800;
|
||||
font-variant-numeric: tabular-nums;
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
.skill-col {
|
||||
width: 34%;
|
||||
font-weight: 800;
|
||||
color: #333;
|
||||
word-break: break-word;
|
||||
line-height: 1.45;
|
||||
}
|
||||
|
||||
.leader-col {
|
||||
width: 30%;
|
||||
color: #333;
|
||||
word-break: break-word;
|
||||
line-height: 1.45;
|
||||
}
|
||||
|
||||
.color-col,
|
||||
.level-col {
|
||||
text-align: center;
|
||||
white-space: nowrap;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.level-col {
|
||||
color: #d93939;
|
||||
font-variant-numeric: tabular-nums;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="container">
|
||||
<h1>{{ server }} - {{ role_name }}</h1>
|
||||
<div class="meta">更新时间:{{ update_time }}</div>
|
||||
|
||||
<div class="summary">
|
||||
<div class="stat">
|
||||
<div class="label">精力</div>
|
||||
<div class="value">{{ skill_energy }}</div>
|
||||
</div>
|
||||
<div class="stat">
|
||||
<div class="label">耐力</div>
|
||||
<div class="value">{{ skill_stamina }}</div>
|
||||
</div>
|
||||
<div class="stat">
|
||||
<div class="label">技能数量</div>
|
||||
<div class="value">{{ skill_count }}</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>技能名称</th>
|
||||
<th>首领</th>
|
||||
<th>破绽颜色</th>
|
||||
<th>技能等级</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
{% for item in items %}
|
||||
<tr>
|
||||
<td class="skill-col">{{ item.skill_name }}</td>
|
||||
<td class="leader-col">{{ item.leader_name }}</td>
|
||||
<td class="color-col">{{ item.skill_color_text }}</td>
|
||||
<td class="level-col">{{ item.skill_level }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,109 @@
|
||||
<!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: 18px;
|
||||
}
|
||||
|
||||
th, td {
|
||||
padding: 14px 12px;
|
||||
border-bottom: 1px solid #eee;
|
||||
font-size: 16px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
tbody tr:nth-child(even) {
|
||||
background: #fafafa;
|
||||
}
|
||||
|
||||
.event-col {
|
||||
font-weight: 700;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.role-col {
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.time-col {
|
||||
color: #60657a;
|
||||
font-variant-numeric: tabular-nums;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="container">
|
||||
<h1>{{ server }} 近期奇遇</h1>
|
||||
<div class="meta">更新时间:{{ update_time }}</div>
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>区服</th>
|
||||
<th>角色</th>
|
||||
<th>奇遇名称</th>
|
||||
<th>触发时间</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
{% for m in items %}
|
||||
<tr>
|
||||
<td>{{ m.server }}</td>
|
||||
<td class="role-col">{{ m.name }}</td>
|
||||
<td class="event-col">{{ m.event }}</td>
|
||||
<td class="time-col">{{ m.time }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,124 @@
|
||||
<!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: 640px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 30px;
|
||||
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: 18px;
|
||||
}
|
||||
|
||||
th, td {
|
||||
padding: 12px 10px;
|
||||
border-bottom: 1px solid #eee;
|
||||
font-size: 15px;
|
||||
white-space: nowrap;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
tbody tr:nth-child(even) {
|
||||
background: #fafafa;
|
||||
}
|
||||
|
||||
.school {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
font-weight: 700;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.school-icon {
|
||||
width: 32px;
|
||||
height: 32px;
|
||||
border-radius: 50%;
|
||||
object-fit: contain;
|
||||
flex: 0 0 auto;
|
||||
}
|
||||
|
||||
.num-col {
|
||||
color: #d93939;
|
||||
font-weight: 700;
|
||||
text-align: center;
|
||||
font-variant-numeric: tabular-nums;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="container">
|
||||
<h1>名剑统计(前1000) · {{ mode }}</h1>
|
||||
<div class="meta">更新时间:{{ update_time }}</div>
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>门派</th>
|
||||
<th>当前赛季数量</th>
|
||||
<th>上赛季数量</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
{% for m in items %}
|
||||
<tr>
|
||||
<td>
|
||||
<div class="school">
|
||||
{% if icons.sect.get(m.name) %}
|
||||
<img class="school-icon" src="{{ icons.sect[m.name] }}" alt="{{ m.name }}">
|
||||
{% endif %}
|
||||
<span>{{ m.name }}</span>
|
||||
</div>
|
||||
</td>
|
||||
<td class="num-col">{{ m.this }}</td>
|
||||
<td class="num-col">{{ m.last }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,160 @@
|
||||
<!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: 1120px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 34px;
|
||||
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;
|
||||
}
|
||||
|
||||
.section {
|
||||
margin-bottom: 24px;
|
||||
}
|
||||
|
||||
.section-title {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 10px;
|
||||
margin: 0 0 12px 0;
|
||||
color: #222;
|
||||
font-size: 24px;
|
||||
font-weight: 800;
|
||||
}
|
||||
|
||||
.section-title::before {
|
||||
content: "";
|
||||
display: block;
|
||||
width: 5px;
|
||||
height: 30px;
|
||||
background: #d93939;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
.cards {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(2, minmax(0, 1fr));
|
||||
gap: 14px;
|
||||
}
|
||||
|
||||
.card {
|
||||
display: grid;
|
||||
grid-template-columns: 54px minmax(0, 1fr);
|
||||
gap: 12px;
|
||||
background: white;
|
||||
border-radius: 12px;
|
||||
padding: 14px;
|
||||
box-shadow: 0 4px 16px rgba(0,0,0,0.08);
|
||||
}
|
||||
|
||||
.icon {
|
||||
width: 48px;
|
||||
height: 48px;
|
||||
border-radius: 8px;
|
||||
object-fit: cover;
|
||||
background: #f1f2f6;
|
||||
}
|
||||
|
||||
.head {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
flex-wrap: wrap;
|
||||
gap: 8px;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
.name {
|
||||
color: #222;
|
||||
font-size: 18px;
|
||||
font-weight: 800;
|
||||
line-height: 1.25;
|
||||
}
|
||||
|
||||
.tag {
|
||||
color: white;
|
||||
background: #d93939;
|
||||
border-radius: 999px;
|
||||
padding: 2px 8px;
|
||||
font-size: 13px;
|
||||
font-weight: 700;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.interval {
|
||||
color: #7a7f99;
|
||||
background: #f1f2f6;
|
||||
border-radius: 999px;
|
||||
padding: 2px 8px;
|
||||
font-size: 13px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.desc {
|
||||
color: #333;
|
||||
font-size: 15px;
|
||||
line-height: 1.55;
|
||||
word-break: break-word;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="container">
|
||||
<h1>{{ name }} 奇穴详情</h1>
|
||||
<div class="meta">更新时间:{{ update_time }}</div>
|
||||
|
||||
{% for group in groups %}
|
||||
<div class="section">
|
||||
<div class="section-title">{{ group['title'] }}</div>
|
||||
<div class="cards">
|
||||
{% for item in group.talents %}
|
||||
<div class="card">
|
||||
{% if item['icon'] %}
|
||||
<img class="icon" src="{{ item['icon'] }}" alt="{{ item['name'] }}">
|
||||
{% else %}
|
||||
<div class="icon"></div>
|
||||
{% endif %}
|
||||
<div>
|
||||
<div class="head">
|
||||
<span class="name">{{ item['name'] }}</span>
|
||||
<span class="tag">{{ item['class_text'] }}</span>
|
||||
{% if item['interval'] %}
|
||||
<span class="interval">{{ item['interval'] }}</span>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="desc">{{ item['desc'] }}</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,117 @@
|
||||
<!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: 1080px;
|
||||
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: 18px;
|
||||
}
|
||||
|
||||
th, td {
|
||||
padding: 14px 12px;
|
||||
border-bottom: 1px solid #eee;
|
||||
font-size: 16px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
tbody tr:nth-child(even) {
|
||||
background: #fafafa;
|
||||
}
|
||||
|
||||
.event-col {
|
||||
font-weight: 700;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.count-col {
|
||||
color: #d93939;
|
||||
font-weight: 700;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.role-col {
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.time-col {
|
||||
color: #60657a;
|
||||
font-variant-numeric: tabular-nums;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="container">
|
||||
<h1>{{ server }} 奇遇汇总</h1>
|
||||
<div class="meta">最近 {{ num }} 天 · 更新时间:{{ update_time }}</div>
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>区服</th>
|
||||
<th>奇遇名称</th>
|
||||
<th>触发次数</th>
|
||||
<th>最近角色</th>
|
||||
<th>最近时间</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
{% for m in items %}
|
||||
<tr>
|
||||
<td>{{ m.server }}</td>
|
||||
<td class="event-col">{{ m.event }}</td>
|
||||
<td class="count-col">{{ m.count }}</td>
|
||||
<td class="role-col">{{ m.latest_name }}</td>
|
||||
<td class="time-col">{{ m.latest_time }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,158 @@
|
||||
<!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: 1120px;
|
||||
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,
|
||||
.level-col,
|
||||
.camp-col,
|
||||
.score-col {
|
||||
white-space: nowrap;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.rank-col {
|
||||
width: 56px;
|
||||
color: #d93939;
|
||||
font-weight: 800;
|
||||
}
|
||||
|
||||
.force {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
min-width: 108px;
|
||||
font-weight: 700;
|
||||
color: #333;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.force-icon {
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
border-radius: 50%;
|
||||
object-fit: contain;
|
||||
flex: 0 0 auto;
|
||||
}
|
||||
|
||||
.role-col {
|
||||
min-width: 120px;
|
||||
font-weight: 700;
|
||||
color: #333;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.tong-col {
|
||||
max-width: 260px;
|
||||
word-break: break-word;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.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>
|
||||
<th>帮会</th>
|
||||
<th>排行积分</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
{% for item in items %}
|
||||
<tr>
|
||||
<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 }}">
|
||||
{% endif %}
|
||||
<span>{{ item.force_name }}</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>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,141 @@
|
||||
<!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>
|
||||
<th>排行积分</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
{% 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>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,151 @@
|
||||
<!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: 1280px;
|
||||
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: 18px;
|
||||
}
|
||||
|
||||
th, td {
|
||||
padding: 14px 12px;
|
||||
border-bottom: 1px solid #eee;
|
||||
font-size: 16px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
tbody tr:nth-child(even) {
|
||||
background: #fafafa;
|
||||
}
|
||||
|
||||
.force-col {
|
||||
min-width: 120px;
|
||||
}
|
||||
|
||||
.force {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
font-weight: 700;
|
||||
color: #333;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.force-icon {
|
||||
width: 32px;
|
||||
height: 32px;
|
||||
border-radius: 50%;
|
||||
object-fit: contain;
|
||||
flex: 0 0 auto;
|
||||
}
|
||||
|
||||
.name-col {
|
||||
font-weight: 700;
|
||||
color: #333;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.small-col {
|
||||
white-space: nowrap;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.comment-col {
|
||||
max-width: 420px;
|
||||
line-height: 1.5;
|
||||
word-break: break-word;
|
||||
color: #333;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="container">
|
||||
<h1>{{ title }}</h1>
|
||||
<div class="meta">
|
||||
{{ server }}
|
||||
{% if keyword %} · 关键词:{{ keyword }}{% endif %}
|
||||
· 更新时间:{{ update_time }}
|
||||
</div>
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>职业</th>
|
||||
<th>角色名称</th>
|
||||
<th>等级</th>
|
||||
<th>体型</th>
|
||||
<th>帮会</th>
|
||||
<th>阵营</th>
|
||||
<th>信息</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
{% for item in items %}
|
||||
<tr>
|
||||
<td class="force-col">
|
||||
<div class="force">
|
||||
{% if icons.sect.get(item.forceName) %}
|
||||
<img class="force-icon" src="{{ icons.sect[item.forceName] }}" alt="{{ item.forceName }}">
|
||||
{% endif %}
|
||||
<span>{{ item.forceName }}</span>
|
||||
</div>
|
||||
</td>
|
||||
<td class="name-col">{{ item.roleName }}</td>
|
||||
<td class="small-col">{{ item.roleLevel }}</td>
|
||||
<td class="small-col">{{ item.bodyName }}</td>
|
||||
<td>{{ item.tongName }}</td>
|
||||
<td class="small-col">{{ item.campName }}</td>
|
||||
<td class="comment-col">{{ item.comment }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,139 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>未做奇遇</title>
|
||||
<style>
|
||||
body {
|
||||
margin: 0;
|
||||
padding: 24px;
|
||||
background: #f5f7fb;
|
||||
color: #2c2c33;
|
||||
font-family: "Microsoft YaHei", Arial, sans-serif;
|
||||
}
|
||||
|
||||
.header {
|
||||
margin-bottom: 24px;
|
||||
color: #1f2a44;
|
||||
}
|
||||
|
||||
.title {
|
||||
font-size: 34px;
|
||||
font-weight: 800;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
.meta {
|
||||
font-size: 20px;
|
||||
color: #7a7f99;
|
||||
}
|
||||
|
||||
.section {
|
||||
margin-bottom: 32px;
|
||||
}
|
||||
|
||||
.section-title {
|
||||
font-size: 36px;
|
||||
font-weight: bold;
|
||||
margin-bottom: 16px;
|
||||
border-left: 4px solid #4f7cff;
|
||||
padding-left: 10px;
|
||||
color: #1f2a44;
|
||||
}
|
||||
|
||||
.card-container {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(4, 1fr);
|
||||
gap: 16px;
|
||||
}
|
||||
|
||||
.card {
|
||||
background: #ffffff;
|
||||
border-radius: 8px;
|
||||
padding: 16px 12px;
|
||||
box-shadow: 0 4px 10px rgba(0, 0, 0, 0.08);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
text-align: center;
|
||||
min-height: 90px;
|
||||
}
|
||||
|
||||
.card img {
|
||||
width: 100%;
|
||||
max-width: 180px;
|
||||
height: auto;
|
||||
object-fit: contain;
|
||||
margin-bottom: 6px;
|
||||
}
|
||||
|
||||
.event-name {
|
||||
font-size: 22px;
|
||||
font-weight: 600;
|
||||
margin-bottom: 4px;
|
||||
color: #2b3a67;
|
||||
}
|
||||
|
||||
.time {
|
||||
font-size: 22px;
|
||||
color: #7a7f99;
|
||||
}
|
||||
|
||||
.empty {
|
||||
background: #ffffff;
|
||||
border-radius: 8px;
|
||||
box-shadow: 0 4px 10px rgba(0, 0, 0, 0.06);
|
||||
color: #7a7f99;
|
||||
font-size: 20px;
|
||||
padding: 22px;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="header">
|
||||
<div class="title">未做奇遇</div>
|
||||
<div class="meta">{{ server }} · {{ name }}</div>
|
||||
</div>
|
||||
|
||||
<div class="section">
|
||||
<div class="section-title">普通奇遇({{ ptqy|length if ptqy else 0 }})</div>
|
||||
{% if ptqy %}
|
||||
<div class="card-container">
|
||||
{% for item in ptqy %}
|
||||
<div class="card">
|
||||
{% if icons.serendipity.get(item.event) %}
|
||||
<img src="{{ icons.serendipity[item.event] }}" alt="{{ item.event }}">
|
||||
{% else %}
|
||||
<div class="event-name">{{ item.event }}</div>
|
||||
{% endif %}
|
||||
<div class="time">{{ item.time }}</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% else %}
|
||||
<div class="empty">暂无未做普通奇遇</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
<div class="section">
|
||||
<div class="section-title">绝世奇遇({{ jsqy|length if jsqy else 0 }})</div>
|
||||
{% if jsqy %}
|
||||
<div class="card-container">
|
||||
{% for item in jsqy %}
|
||||
<div class="card">
|
||||
{% if icons.serendipity.get(item.event) %}
|
||||
<img src="{{ icons.serendipity[item.event] }}" alt="{{ item.event }}">
|
||||
{% else %}
|
||||
<div class="event-name">{{ item.event }}</div>
|
||||
{% endif %}
|
||||
<div class="time">{{ item.time }}</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% else %}
|
||||
<div class="empty">暂无未做绝世奇遇</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
+71
-16
@@ -107,7 +107,8 @@ table {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
margin-top: 20px;
|
||||
font-size: 22px;
|
||||
font-size: 18px;
|
||||
table-layout: fixed;
|
||||
}
|
||||
|
||||
thead {
|
||||
@@ -115,7 +116,7 @@ thead {
|
||||
}
|
||||
|
||||
th, td {
|
||||
padding: 10px;
|
||||
padding: 8px 6px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
@@ -154,6 +155,36 @@ tbody tr:nth-child(odd) {
|
||||
color: #f5a623;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.time-col {
|
||||
width: 170px;
|
||||
font-size: 16px;
|
||||
font-variant-numeric: tabular-nums;
|
||||
}
|
||||
|
||||
.duration-col {
|
||||
width: 92px;
|
||||
}
|
||||
|
||||
.kungfu-col {
|
||||
width: 150px;
|
||||
}
|
||||
|
||||
.result-col {
|
||||
width: 64px;
|
||||
}
|
||||
|
||||
.score-col {
|
||||
width: 104px;
|
||||
}
|
||||
|
||||
.grade-col {
|
||||
width: 96px;
|
||||
}
|
||||
|
||||
.mvp-col {
|
||||
width: 58px;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
@@ -210,28 +241,30 @@ tbody tr:nth-child(odd) {
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>对战时长</th>
|
||||
<th>心法</th>
|
||||
<th>胜负</th>
|
||||
<th>积分变化</th>
|
||||
<th>最终积分</th>
|
||||
<th>平均段位</th>
|
||||
<th>MVP</th>
|
||||
<th class="time-col">开始时间</th>
|
||||
<th class="duration-col">对战时长</th>
|
||||
<th class="kungfu-col">心法</th>
|
||||
<th class="result-col">胜负</th>
|
||||
<th class="score-col">积分变化</th>
|
||||
<th class="score-col">最终积分</th>
|
||||
<th class="grade-col">平均段位</th>
|
||||
<th class="mvp-col">MVP</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
{% for m in history %}
|
||||
<tr>
|
||||
<td>{{ m.endTime - m.startTime }}</td>
|
||||
<td>{{ m.kungfu }}</td>
|
||||
<td class="{{ 'win' if m.won else 'lose' }}">{{ '胜' if m.won else '负' }}</td>
|
||||
<td class="{{ 'mmr-up' if m.mmr > 0 else 'mmr-down' }}">
|
||||
<td class="time-col start-time" data-ts="{{ m.startTime }}">{{ m.startTime }}</td>
|
||||
<td class="duration-col">{{ m.endTime - m.startTime }}</td>
|
||||
<td class="kungfu-col">{{ m.kungfu }}</td>
|
||||
<td class="result-col {{ 'win' if m.won else 'lose' }}">{{ '胜' if m.won else '负' }}</td>
|
||||
<td class="score-col {{ 'mmr-up' if m.mmr > 0 else 'mmr-down' }}">
|
||||
{{ m.mmr }}
|
||||
</td>
|
||||
<td>{{ m.totalMmr }}</td>
|
||||
<td>{{ m.avgGrade }}</td>
|
||||
<td class="{{ 'mvp' if m.mvp else '' }}">
|
||||
<td class="score-col">{{ m.totalMmr }}</td>
|
||||
<td class="grade-col">{{ m.avgGrade }}</td>
|
||||
<td class="mvp-col {{ 'mvp' if m.mvp else '' }}">
|
||||
{{ '是' if m.mvp else '-' }}
|
||||
</td>
|
||||
</tr>
|
||||
@@ -240,5 +273,27 @@ tbody tr:nth-child(odd) {
|
||||
</table>
|
||||
|
||||
</div>
|
||||
<script>
|
||||
document.querySelectorAll(".start-time").forEach(function (cell) {
|
||||
var raw = cell.dataset.ts || cell.textContent.trim();
|
||||
var ts = Number(raw);
|
||||
if (!Number.isFinite(ts) || ts <= 0) {
|
||||
cell.textContent = raw || "-";
|
||||
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(":");
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -0,0 +1,163 @@
|
||||
<!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,
|
||||
.server-col,
|
||||
.score-col {
|
||||
white-space: nowrap;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.rank-col {
|
||||
width: 56px;
|
||||
color: #d93939;
|
||||
font-weight: 800;
|
||||
}
|
||||
|
||||
.role,
|
||||
.force {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
min-width: 150px;
|
||||
font-weight: 700;
|
||||
color: #333;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.avatar {
|
||||
width: 34px;
|
||||
height: 34px;
|
||||
border-radius: 50%;
|
||||
object-fit: cover;
|
||||
flex: 0 0 auto;
|
||||
background: #eef2f8;
|
||||
}
|
||||
|
||||
.force-icon {
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
border-radius: 50%;
|
||||
object-fit: contain;
|
||||
flex: 0 0 auto;
|
||||
background: #eef2f8;
|
||||
}
|
||||
|
||||
.server-col {
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.score-col {
|
||||
color: #d93939;
|
||||
font-weight: 800;
|
||||
font-variant-numeric: tabular-nums;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="container">
|
||||
<h1>{{ school }} 资历排行</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>
|
||||
<div class="role">
|
||||
{% if item.avatarUrl %}
|
||||
<img class="avatar" src="{{ item.avatarUrl }}" alt="{{ item.roleName }}">
|
||||
{% endif %}
|
||||
<span>{{ item.roleName }}</span>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<div class="force">
|
||||
{% set force_icon = item.forceIcon or icons.sect.get(item.forceName) %}
|
||||
{% if force_icon %}
|
||||
<img class="force-icon" src="{{ force_icon }}" alt="{{ item.forceName }}">
|
||||
{% endif %}
|
||||
<span>{{ item.forceName }}</span>
|
||||
</div>
|
||||
</td>
|
||||
<td class="server-col">{{ item.serverName }}</td>
|
||||
<td class="score-col">{{ item.seniority }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user