style: reformat README stats section for better clarity and premium look
This commit is contained in:
@@ -636,7 +636,7 @@ class OpenWebUIStats:
|
|||||||
|
|
||||||
def generate_readme_stats(self, stats: dict, lang: str = "zh") -> str:
|
def generate_readme_stats(self, stats: dict, lang: str = "zh") -> str:
|
||||||
"""
|
"""
|
||||||
生成 README 统计徽章区域
|
生成 README 统计区域 (精简版)
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
stats: 统计数据
|
stats: 统计数据
|
||||||
@@ -644,28 +644,33 @@ class OpenWebUIStats:
|
|||||||
"""
|
"""
|
||||||
# 获取 Top 6 插件
|
# 获取 Top 6 插件
|
||||||
top_plugins = stats["posts"][:6]
|
top_plugins = stats["posts"][:6]
|
||||||
|
delta = self.get_stat_delta(stats)
|
||||||
|
|
||||||
|
def fmt_delta(key: str) -> str:
|
||||||
|
val = delta.get(key, 0)
|
||||||
|
if val > 0:
|
||||||
|
return f" <br><sub>(+{val}🚀)</sub>"
|
||||||
|
return ""
|
||||||
|
|
||||||
# 中英文文本
|
# 中英文文本
|
||||||
texts = {
|
texts = {
|
||||||
"zh": {
|
"zh": {
|
||||||
"title": "## 📊 社区统计",
|
"title": "## 📊 社区统计",
|
||||||
"updated": f"> 🕐 自动更新于 {get_beijing_time().strftime('%Y-%m-%d %H:%M')}",
|
"updated": f"🕐 自动更新于 {get_beijing_time().strftime('%Y-%m-%d %H:%M')}",
|
||||||
"author_header": "| 👤 作者 | 👥 粉丝 | ⭐ 积分 | 🏆 贡献 |",
|
"author_header": "| 👤 作者 | 👥 粉丝 | ⭐ 积分 | 🏆 贡献 |",
|
||||||
"header": "| 📝 发布 | ⬇️ 下载 | 👁️ 浏览 | 👍 点赞 | 💾 收藏 |",
|
"header": "| 📝 发布 | ⬇️ 下载 | 👁️ 浏览 | 👍 点赞 | 💾 收藏 |",
|
||||||
"top6_title": "### 🔥 热门插件 Top 6",
|
"top6_title": "### 🔥 热门插件 Top 6",
|
||||||
"top6_updated": f"> 🕐 自动更新于 {get_beijing_time().strftime('%Y-%m-%d %H:%M')}",
|
|
||||||
"top6_header": "| 排名 | 插件 | 版本 | 下载 | 浏览 | 更新日期 |",
|
"top6_header": "| 排名 | 插件 | 版本 | 下载 | 浏览 | 更新日期 |",
|
||||||
"full_stats": "*完整统计请查看 [社区统计报告](./docs/community-stats.zh.md)*",
|
"full_stats": "*完整统计与趋势图请查看 [社区统计报告](./docs/community-stats.zh.md)*",
|
||||||
},
|
},
|
||||||
"en": {
|
"en": {
|
||||||
"title": "## 📊 Community Stats",
|
"title": "## 📊 Community Stats",
|
||||||
"updated": f"> 🕐 Auto-updated: {get_beijing_time().strftime('%Y-%m-%d %H:%M')}",
|
"updated": f"🕐 Auto-updated: {get_beijing_time().strftime('%Y-%m-%d %H:%M')}",
|
||||||
"author_header": "| 👤 Author | 👥 Followers | ⭐ Points | 🏆 Contributions |",
|
"author_header": "| 👤 Author | 👥 Followers | ⭐ Points | 🏆 Contributions |",
|
||||||
"header": "| 📝 Posts | ⬇️ Downloads | 👁️ Views | 👍 Upvotes | 💾 Saves |",
|
"header": "| 📝 Posts | ⬇️ Downloads | 👁️ Views | 👍 Upvotes | 💾 Saves |",
|
||||||
"top6_title": "### 🔥 Top 6 Popular Plugins",
|
"top6_title": "### 🔥 Top 6 Popular Plugins",
|
||||||
"top6_updated": f"> 🕐 Auto-updated: {get_beijing_time().strftime('%Y-%m-%d %H:%M')}",
|
|
||||||
"top6_header": "| Rank | Plugin | Version | Downloads | Views | Updated |",
|
"top6_header": "| Rank | Plugin | Version | Downloads | Views | Updated |",
|
||||||
"full_stats": "*See full stats in [Community Stats Report](./docs/community-stats.md)*",
|
"full_stats": "*See full stats and charts in [Community Stats Report](./docs/community-stats.md)*",
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -675,8 +680,7 @@ class OpenWebUIStats:
|
|||||||
lines = []
|
lines = []
|
||||||
lines.append("<!-- STATS_START -->")
|
lines.append("<!-- STATS_START -->")
|
||||||
lines.append(t["title"])
|
lines.append(t["title"])
|
||||||
lines.append("")
|
lines.append(f"> {t['updated']}")
|
||||||
lines.append(t["updated"])
|
|
||||||
lines.append("")
|
lines.append("")
|
||||||
|
|
||||||
# 作者信息表格
|
# 作者信息表格
|
||||||
@@ -686,25 +690,22 @@ class OpenWebUIStats:
|
|||||||
lines.append(t["author_header"])
|
lines.append(t["author_header"])
|
||||||
lines.append("| :---: | :---: | :---: | :---: |")
|
lines.append("| :---: | :---: | :---: | :---: |")
|
||||||
lines.append(
|
lines.append(
|
||||||
f"| [{username}]({profile_url}) | **{user.get('followers', 0)}** | "
|
f"| [{username}]({profile_url}) | **{user.get('followers', 0)}**{fmt_delta('followers')} | "
|
||||||
f"**{user.get('total_points', 0)}** | **{user.get('contributions', 0)}** |"
|
f"**{user.get('total_points', 0)}**{fmt_delta('points')} | **{user.get('contributions', 0)}** |"
|
||||||
)
|
)
|
||||||
lines.append("")
|
lines.append("")
|
||||||
|
|
||||||
# 统计徽章表格
|
# 统计面板
|
||||||
lines.append(t["header"])
|
lines.append(t["header"])
|
||||||
lines.append("| :---: | :---: | :---: | :---: | :---: |")
|
lines.append("| :---: | :---: | :---: | :---: | :---: |")
|
||||||
lines.append(
|
lines.append(
|
||||||
f"| **{stats['total_posts']}** | **{stats['total_downloads']}** | "
|
f"| **{stats['total_posts']}** | **{stats['total_downloads']}**{fmt_delta('downloads')} | "
|
||||||
f"**{stats['total_views']}** | **{stats['total_upvotes']}** | **{stats['total_saves']}** |"
|
f"**{stats['total_views']}**{fmt_delta('views')} | **{stats['total_upvotes']}**{fmt_delta('upvotes')} | **{stats['total_saves']}** |"
|
||||||
)
|
)
|
||||||
lines.append("")
|
lines.append("")
|
||||||
|
|
||||||
# Top 6 热门插件
|
# Top 6 热门插件
|
||||||
lines.append(t["top6_title"])
|
lines.append(t["top6_title"])
|
||||||
lines.append("")
|
|
||||||
lines.append(t["top6_updated"])
|
|
||||||
lines.append("")
|
|
||||||
lines.append(t["top6_header"])
|
lines.append(t["top6_header"])
|
||||||
lines.append("| :---: | :--- | :---: | :---: | :---: | :---: |")
|
lines.append("| :---: | :--- | :---: | :---: | :---: | :---: |")
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user