fix: use dynamic badges for auto-updated timestamp to ensure real-time accuracy

This commit is contained in:
fujie
2026-02-11 12:54:45 +08:00
parent 015b0d98ec
commit b9104702ac
3 changed files with 35 additions and 8 deletions

View File

@@ -7,7 +7,7 @@ A collection of enhancements, plugins, and prompts for [OpenWebUI](https://githu
<!-- STATS_START --> <!-- STATS_START -->
## 📊 Community Stats ## 📊 Community Stats
> 🕐 Auto-updated: 2026-02-11 12:51 > ![updated](https://img.shields.io/endpoint?url=https%3A%2F%2Fgist.githubusercontent.com%2FFu-Jie%2Fdb3d95687075a880af6f1fba76d679c6%2Fraw%2Fbadge_updated.json&style=flat)
| 👤 Author | 👥 Followers | ⭐ Points | 🏆 Contributions | | 👤 Author | 👥 Followers | ⭐ Points | 🏆 Contributions |
| :---: | :---: | :---: | :---: | | :---: | :---: | :---: | :---: |

View File

@@ -6,7 +6,7 @@ OpenWebUI 增强功能集合。包含个人开发与收集的插件、提示词
<!-- STATS_START --> <!-- STATS_START -->
## 📊 社区统计 ## 📊 社区统计
> 🕐 自动更新于 2026-02-11 12:51 > ![updated_zh](https://img.shields.io/endpoint?url=https%3A%2F%2Fgist.githubusercontent.com%2FFu-Jie%2Fdb3d95687075a880af6f1fba76d679c6%2Fraw%2Fbadge_updated_zh.json&style=flat)
| 👤 作者 | 👥 粉丝 | ⭐ 积分 | 🏆 贡献 | | 👤 作者 | 👥 粉丝 | ⭐ 积分 | 🏆 贡献 |
| :---: | :---: | :---: | :---: | | :---: | :---: | :---: | :---: |

View File

@@ -525,7 +525,7 @@ class OpenWebUIStats:
texts = { texts = {
"zh": { "zh": {
"title": "# 📊 OpenWebUI 社区统计报告", "title": "# 📊 OpenWebUI 社区统计报告",
"updated": f"> 📅 更新时间: {get_beijing_time().strftime('%Y-%m-%d %H:%M')}", "updated_label": "更新时间",
"overview_title": "## 📈 总览", "overview_title": "## 📈 总览",
"overview_header": "| 指标 | 数值 |", "overview_header": "| 指标 | 数值 |",
"posts": "📝 发布数量", "posts": "📝 发布数量",
@@ -542,7 +542,7 @@ class OpenWebUIStats:
}, },
"en": { "en": {
"title": "# 📊 OpenWebUI Community Stats Report", "title": "# 📊 OpenWebUI Community Stats Report",
"updated": f"> 📅 Updated: {get_beijing_time().strftime('%Y-%m-%d %H:%M')}", "updated_label": "Updated",
"overview_title": "## 📈 Overview", "overview_title": "## 📈 Overview",
"overview_header": "| Metric | Value |", "overview_header": "| Metric | Value |",
"posts": "📝 Total Posts", "posts": "📝 Total Posts",
@@ -565,7 +565,9 @@ class OpenWebUIStats:
md = [] md = []
md.append(t["title"]) md.append(t["title"])
md.append("") md.append("")
md.append(t["updated"])
updated_key = "updated_zh" if lang == "zh" else "updated"
md.append(f"> {self.get_badge(updated_key, stats, user, delta)}")
md.append("") md.append("")
# 插入趋势图 (使用 Kroki SVG 链接) # 插入趋势图 (使用 Kroki SVG 链接)
@@ -869,6 +871,29 @@ class OpenWebUIStats:
) )
} }
# 生成更新时间徽章
now_str = get_beijing_time().strftime("%Y-%m-%d %H:%M")
files_payload["badge_updated.json"] = {
"content": json.dumps(
{
"schemaVersion": 1,
"label": "Auto-updated",
"message": now_str,
"color": "gray",
}
)
}
files_payload["badge_updated_zh.json"] = {
"content": json.dumps(
{
"schemaVersion": 1,
"label": "自动更新于",
"message": now_str,
"color": "gray",
}
)
}
# 将生成的 Markdown 报告也作为一个普通 JSON 文件上传到 Gist # 将生成的 Markdown 报告也作为一个普通 JSON 文件上传到 Gist
for lang in ["zh", "en"]: for lang in ["zh", "en"]:
report_content = self.generate_markdown(stats, lang=lang) report_content = self.generate_markdown(stats, lang=lang)
@@ -919,6 +944,8 @@ class OpenWebUIStats:
val = stats.get("total_posts", 0) val = stats.get("total_posts", 0)
if key == "saves": if key == "saves":
val = stats.get("total_saves", 0) val = stats.get("total_saves", 0)
if key.startswith("updated"):
return f"🕐 {get_beijing_time().strftime('%Y-%m-%d %H:%M')}"
return f"**{val}**{_fmt_delta(key)}" return f"**{val}**{_fmt_delta(key)}"
raw_url = f"https://gist.githubusercontent.com/{gist_user}/{self.gist_id}/raw/badge_{key}.json" raw_url = f"https://gist.githubusercontent.com/{gist_user}/{self.gist_id}/raw/badge_{key}.json"
@@ -949,7 +976,6 @@ class OpenWebUIStats:
texts = { texts = {
"zh": { "zh": {
"title": "## 📊 社区统计", "title": "## 📊 社区统计",
"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",
@@ -958,7 +984,6 @@ class OpenWebUIStats:
}, },
"en": { "en": {
"title": "## 📊 Community Stats", "title": "## 📊 Community Stats",
"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",
@@ -973,7 +998,9 @@ class OpenWebUIStats:
lines = [] lines = []
lines.append("<!-- STATS_START -->") lines.append("<!-- STATS_START -->")
lines.append(t["title"]) lines.append(t["title"])
lines.append(f"> {t['updated']}")
updated_key = "updated_zh" if lang == "zh" else "updated"
lines.append(f"> {self.get_badge(updated_key, stats, user, delta)}")
lines.append("") lines.append("")
delta = self.get_stat_delta(stats) delta = self.get_stat_delta(stats)