From 2381c5080e5f200619e6c5310ff90f49d92657dc Mon Sep 17 00:00:00 2001 From: fujie Date: Wed, 11 Feb 2026 13:23:05 +0800 Subject: [PATCH] fix: revert chart to embedded data - Kroki server-side rendering cannot fetch external URLs --- README.md | 2 +- README_CN.md | 2 +- docs/community-stats.json | 8 +++--- docs/community-stats.md | 2 +- docs/community-stats.zh.md | 2 +- docs/stats-history.json | 2 +- scripts/openwebui_stats.py | 51 +++++++------------------------------- 7 files changed, 18 insertions(+), 51 deletions(-) diff --git a/README.md b/README.md index 1f83017..8e16b62 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,7 @@ A collection of enhancements, plugins, and prompts for [OpenWebUI](https://githu | 6️⃣ | [Markdown Normalizer](https://openwebui.com/posts/markdown_normalizer_baaa8732) | ![v](https://img.shields.io/badge/v-1.2.4-blue?style=flat) | ![p6_dl](https://img.shields.io/endpoint?url=https%3A%2F%2Fgist.githubusercontent.com%2FFu-Jie%2Fdb3d95687075a880af6f1fba76d679c6%2Fraw%2Fbadge_p6_dl.json&style=flat) | ![p6_vw](https://img.shields.io/endpoint?url=https%3A%2F%2Fgist.githubusercontent.com%2FFu-Jie%2Fdb3d95687075a880af6f1fba76d679c6%2Fraw%2Fbadge_p6_vw.json&style=flat) | ![updated](https://img.shields.io/badge/2026--01--29-gray?style=flat) | ### 📈 Total Downloads Trend -![Activity](https://kroki.io/vegalite/svg/eNqNUj2T2jAQ_SuMkusCNtzYcLTJpEh9XSbF2lrbG2TJkdYYhuG_ZyUwQ65KY-ut3r63H7qoz6HusAe1X6iOeQj7LDtiC6uWuBurFbnsRkjRpSHG7Fisfgdn1ZeF0hhqTwOTQFF4dwxm8c1N1jjQYfHu0erIm0hzJ4xdngvqkNqOBW4SHEBrsq3gQlAF9aH1bpREUWQPNgwgOhx1amcbisyLOhJO6RDYuwN-JF-FDScKiaJdDxQrbMAElJvWk57hNVI1MCTq6M3zLFoKfJ_FGNCLP4v6qnZ99n1c_iDMdPWq34pyt823Bex2OTRls24q2Ja63L7VZeZhyuoOPC-jyW100bIHf0iWfB5S-VI4xCYNWUwXtTPOx5tPm6J8xSqlzcGLOq3lt5bQeT6cNnMkHvLUKGiK89jfdMFHh8BuiJP5eVGuaQLynf0wnDpZdLR7IqyfCY-KfqXxoa3dfYdSV_o2hCatULrGaDq3ydgPzoNRzxtqnO8hVfnSL1_Sm2FiExPsaEycClRovj78y7JUyfr8wW1-fM-Wf0awIgdMR_zH9n88rte_Foz4-Q==) +![Activity](https://kroki.io/vegalite/svg/eNqNlsFu2zAMhl8l8Nbb0liULdu9bo_Q27CDEiuxVsXybCVpEeTdR6lN0IU0sEsgSp9Iir8s5px9nTad2evsaZF1IQzT02p1NDv9uLOhO6wfrV-9A2l26Wwwq2P5-HvyffZtkbVm2ox2CBZN9PDsg3aLH_7UO6_bafE8mr6N3Mm2oUOiznO0OmN3XUATkjnotrX9Du0SrbXevOxGf8CN6DGMup8GjX5C9LPx_dZG8pwdrTmlwRRG_2Lu4QvS-tVOCWn9XtuY4Va7yeDKbrTt1bxEtNVBv7vV7mDirp_nOJn8Qg5qmYtlXqYzX4-HS1VR426GVPdkLXOerO7JRpQ8WROyAp5s7kmRC8WiIqdoXfGoIKio-QQEEBTKmQQkQWUhebQgaKH4qgqilChh5liKog2vqiBaCaVmUCKWqNRMBahatSxYFKhaDfASAFWrmTkWELUgn8kViFowdweAqAVQ8hIAUQvkXAWIWlDMfINA1IJSzqBELVDQ8ChRC6qav4SSqAV1xVdAErWgqbgEAOl7VObs24IoEVYK9r4iSoSVIBWPEmGlrAoeJcLKkr2vwLyYUinJo0RYWc0Viwgr62omASKsbBq-AvTRLIQUPCooim_Wr9hz9np8ST0nvA1pE3YuHXFne5MWNt75Ma58wedTmnXqatfJc_Yq4meNU2_XwStcZ-IgT51OtzY2xKd3v3qMEabgh48m57fbyYQP-hbw1GGnz9KRboD4DNwy-pX6p-k3_qOJY17pd2uNSz081QSZ6zGD2Q9-1C773KK3ftzrlOXDfvmQ_jQEG1zc0B-ci1XRa-O-3-IrpbIU-u0u2q3Wn0L-Oege3elgj-afsP8T43L5C23qg4U=) *See full stats and charts in [Community Stats Report](./docs/community-stats.md)* diff --git a/README_CN.md b/README_CN.md index 9688b70..94d5895 100644 --- a/README_CN.md +++ b/README_CN.md @@ -28,7 +28,7 @@ OpenWebUI 增强功能集合。包含个人开发与收集的插件、提示词 | 6️⃣ | [Markdown Normalizer](https://openwebui.com/posts/markdown_normalizer_baaa8732) | ![v](https://img.shields.io/badge/v-1.2.4-blue?style=flat) | ![p6_dl](https://img.shields.io/endpoint?url=https%3A%2F%2Fgist.githubusercontent.com%2FFu-Jie%2Fdb3d95687075a880af6f1fba76d679c6%2Fraw%2Fbadge_p6_dl.json&style=flat) | ![p6_vw](https://img.shields.io/endpoint?url=https%3A%2F%2Fgist.githubusercontent.com%2FFu-Jie%2Fdb3d95687075a880af6f1fba76d679c6%2Fraw%2Fbadge_p6_vw.json&style=flat) | ![updated](https://img.shields.io/badge/2026--01--29-gray?style=flat) | ### 📈 总下载量累计趋势 -![Activity](https://kroki.io/vegalite/svg/eNqNksuy2jAMhl_lTNqzK-RCc4FtZ7roK5QulFhOXBw79YXAMLx7ZUOY9Ky6USzptz5Jzi35bLsBR0gOb8ng3GQPaXrGHra9cINvt0KnD0GMbqRwmJ7L7W-rVfLlLWFoOyMmJ8ilCkdfZbv26L9iRrbhNTv6fd7xo69ZQbZpISfLGsqWRctDiVkwN9DlJsvIG1D0gyO3iO4EjAnVk1-S10J36o32igWYM6DsBAaVC3U6rbgIyltyFjjHg3VGn_Cj-E5quAgbJUyPIELzHKRFyvRGsMW9BykDB1HqjVyvqRfWPdfkLRriO6q-7fSYfvebHwJT1u7YvqyaOqtLaJoMeMVz3kJdsared1VqYE67AYzbBMhjqwE5gjlFpLtOsX1qHMKQUiiMiU5LbULmU1FWO2zjtSV4Sy45fXIKXZfDpVgi4ZDFQYGJsI_Doy6YQLBOT2EzP2-J5tyie6pfwHmgfyDgVoJ8LXh19CuuD1Wnn29IfUXLBcr4hDQ1BugypsNx0gZksn4hrs0Iscv3cfPOol44GS4oL2XYCrQov734VVUlEX39QNOzkhqYXSP_eFBUDpw44z_Y_2Hc738BAXQA-g==) +![Activity](https://kroki.io/vegalite/svg/eNqNlsFy2yAQhl8loza3OoZFAinXPkadAxLIopGFKiE7GY_fvUBiT-pFM70wWvjYXfbHrM_Z97np9EFmzw9Z59w4P2-3R72XT3vjuqV-Mnb7AcTZTW-c3h6Lp9-zHbIfD5nSczOZ0Rlveg-7hRNW75ZcEz-WrVC7paJNu1uEAj-WtaR-VKVfLaBug4uTUa7zm0tCvNVps--cNyGao1TKDHtvF96qZfO6n-wyqBDMTXKYRznpwQU_jR1aE8hzdjT6FD9mN9lXfQ9fPC3fzBwRZQ_ShORb2c_ar-wno67mJaBKOvnhVvaLDrt-ncNk9AsE-IbQDSliOexp6K1UARJ56XcnSH5PloykSXFPVrRIkyUiBaTJ6p6khPIkSglGS5FGKUJpmU6AAkKhWEmAIZTlLI3mCM15uqoUKUULWDkWx2iVVpUirSjnKygSiwq-UgGsVsnyJApYrQrSEgBWq1o5FiC1gKzkCkgtWLsDgNQCKNISAFIL2FoFkFqQr_wGAakFBVtBkVrAoUqjSC0QZfoSMqQWlCJdAYbUgkqkEgBP36OMJN8WjyJhGU3eV48iYRkwnkaRsIyJPI0iYVmRvK-QeDEZ5yyNImGZWCsWEpaVYiUBJCyrqnQF8KOZU0bTKMWof7NeQs85yOk19hz3PsZNvnPJgPdm0HGhsb2dwso3_3wyXceudp08Z280_Kz91Pv14w2uM-GDxE4nlQkN8fnDr5xChNnZ8bPJ2badtfukbwFPnf8TkMUj3QD6Fbhl9BL7px4a-9nEfV5xbI3uYw-PNfHM9ZhOH0Y7yT772qJbOx1kzPLxsHlUkTeuDxuGpe9DVWSt-5-3-JzzLIZ-v4t2q_WXkH8WOXh30pmj_ifs_8S4XP4CD5SLdw==) *完整统计与趋势图请查看 [社区统计报告](./docs/community-stats.zh.md)* diff --git a/docs/community-stats.json b/docs/community-stats.json index e86f654..9be770c 100644 --- a/docs/community-stats.json +++ b/docs/community-stats.json @@ -1,7 +1,7 @@ { "total_posts": 22, "total_downloads": 4160, - "total_views": 45978, + "total_views": 45980, "total_upvotes": 231, "total_downvotes": 2, "total_saves": 274, @@ -71,7 +71,7 @@ "author": "Fu-Jie", "description": "Reduces token consumption in long conversations while maintaining coherence through intelligent summarization and message compression.", "downloads": 363, - "views": 3758, + "views": 3759, "upvotes": 14, "saves": 34, "comments": 0, @@ -183,7 +183,7 @@ "author": "Fu-Jie", "description": "Integrate GitHub Copilot SDK. Supports dynamic models, multi-turn conversation, streaming, multimodal input, infinite sessions, and frontend debug logging.", "downloads": 107, - "views": 2410, + "views": 2411, "upvotes": 14, "saves": 9, "comments": 6, @@ -311,7 +311,7 @@ "author": "", "description": "", "downloads": 0, - "views": 290, + "views": 292, "upvotes": 5, "saves": 0, "comments": 0, diff --git a/docs/community-stats.md b/docs/community-stats.md index ed2647e..bc69e02 100644 --- a/docs/community-stats.md +++ b/docs/community-stats.md @@ -3,7 +3,7 @@ > ![updated](https://img.shields.io/endpoint?url=https%3A%2F%2Fgist.githubusercontent.com%2FFu-Jie%2Fdb3d95687075a880af6f1fba76d679c6%2Fraw%2Fbadge_updated.json&style=flat) ### 📈 Growth & Trends (Last 14 Days) -![Trend](https://kroki.io/mermaid/svg/eNpNjkFuxCAMRfc9Bcqiq0QCbMCs295gdqMsaAdNI2WINKFq5va1k1KVxef5Y769PT4-070O77mmJ8WnTnXOqnsr13TNt1yqelavy3eZl3RZ1emey6XbG7chbdOqzp02g41drwRANzA72EH_gW0ADbCBa-AbhAbUIP6C0Q1MN-6bPI5NutNS06xelq9S12PHeSpZnW0g3StLIbDGEHsFGtgB44nVgmeFgKzOWlbvgTXsnRTEiZF70IAR9Xr8lw6WSGL49UhAqRxpJxloxSQDkhgReSzq6NlEMEHiEJxUzjr-gN6jXERBBroYaPwB6wZaLg==) +![Trend](https://kroki.io/mermaid/svg/eNpNjkFuxCAMRfc9Bcqiq0QCbMCs295gdqMsaAdNI2WINKFq5va1k1KVxef5Y769PT4-070O77mmJ8WnTnXOqnsr13TNt1yqelavy3eZl3RZ1emey6XbG7chbdOqzp02g41drwRANzA72EH_gW0ADbCBa-AbhAbUIP6C0Q1MN-6bPI5NutNS06xelq9S12PHeSpZnW0g3StLIbDGEHsFGtgB44nVgmeFgKzOWlbvgTXsnRTEiZF70IAR9Xr8lw6WSGL49UhAqRxpJxloxSQDkhgReSzq6NlEMEHiEJxUzjr-gN6jXERBBrpIevwB6vlaJw==) > *Blue: Downloads | Purple: Views (Real-time dynamic)* diff --git a/docs/community-stats.zh.md b/docs/community-stats.zh.md index d3a4fcb..03f85ee 100644 --- a/docs/community-stats.zh.md +++ b/docs/community-stats.zh.md @@ -3,7 +3,7 @@ > ![updated_zh](https://img.shields.io/endpoint?url=https%3A%2F%2Fgist.githubusercontent.com%2FFu-Jie%2Fdb3d95687075a880af6f1fba76d679c6%2Fraw%2Fbadge_updated_zh.json&style=flat) ### 📈 增长与趋势 (Last 14 Days) -![Trend](https://kroki.io/mermaid/svg/eNpNjkFuxCAMRfc9Bcqiq0QCbMCs295gdqMsaAdNI2WINKFq5va1k1KVxef5Y769PT4-070O77mmJ8WnTnXOqnsr13TNt1yqelavy3eZl3RZ1emey6XbG7chbdOqzp02g41drwRANzA72EH_gW0ADbCBa-AbhAbUIP6C0Q1MN-6bPI5NutNS06xelq9S12PHeSpZnW0g3StLIbDGEHsFGtgB44nVgmeFgKzOWlbvgTXsnRTEiZF70IAR9Xr8lw6WSGL49UhAqRxpJxloxSQDkhgReSzq6NlEMEHiEJxUzjr-gN6jXERBBroYaPwB6wZaLg==) +![Trend](https://kroki.io/mermaid/svg/eNpNjkFuxCAMRfc9Bcqiq0QCbMCs295gdqMsaAdNI2WINKFq5va1k1KVxef5Y769PT4-070O77mmJ8WnTnXOqnsr13TNt1yqelavy3eZl3RZ1emey6XbG7chbdOqzp02g41drwRANzA72EH_gW0ADbCBa-AbhAbUIP6C0Q1MN-6bPI5NutNS06xelq9S12PHeSpZnW0g3StLIbDGEHsFGtgB44nVgmeFgKzOWlbvgTXsnRTEiZF70IAR9Xr8lw6WSGL49UhAqRxpJxloxSQDkhgReSzq6NlEMEHiEJxUzjr-gN6jXERBBrpIevwB6vlaJw==) > *蓝色: 总下载量 | 紫色: 总浏览量 (实时动态生成)* diff --git a/docs/stats-history.json b/docs/stats-history.json index 2a2b82b..c55f486 100644 --- a/docs/stats-history.json +++ b/docs/stats-history.json @@ -1084,7 +1084,7 @@ "date": "2026-02-11", "total_posts": 22, "total_downloads": 4160, - "total_views": 45978, + "total_views": 45980, "total_upvotes": 231, "total_saves": 274, "followers": 220, diff --git a/scripts/openwebui_stats.py b/scripts/openwebui_stats.py index bcbca12..b56e709 100644 --- a/scripts/openwebui_stats.py +++ b/scripts/openwebui_stats.py @@ -1170,50 +1170,20 @@ class OpenWebUIStats: f.write(content) print(f"✅ 文档图表已更新: {doc_path}") - def upload_chart_data(self, stats: dict): - """上传图表数据到 Gist (独立于徽章数据)""" - if not (self.gist_token and self.gist_id): - return - + def generate_activity_chart(self, lang: str = "zh") -> str: + """生成 Vega-Lite 趋势图 (内嵌数据,Kroki 服务端渲染不支持外部 URL)""" history = self.load_history() if len(history) < 3: - return - - # 准备图表数据点 - chart_data = [] - for item in history: - chart_data.append( - {"date": item["date"], "downloads": item["total_downloads"]} - ) - - try: - url = f"https://api.github.com/gists/{self.gist_id}" - headers = {"Authorization": f"token {self.gist_token}"} - payload = { - "files": { - "chart-data.json": { - "content": json.dumps(chart_data, ensure_ascii=False, indent=2) - } - } - } - resp = requests.patch(url, headers=headers, json=payload) - if resp.status_code == 200: - print(f"✅ 图表数据已同步至 Gist") - except Exception as e: - print(f"⚠️ 图表数据同步失败: {e}") - - def generate_activity_chart(self, lang: str = "zh") -> str: - """生成 Vega-Lite 趋势图 (使用外部数据源,URL 固定)""" - if not (self.gist_token and self.gist_id): return "" + # 准备数据点 + values = [] + for item in history: + values.append({"date": item["date"], "downloads": item["total_downloads"]}) + title = "Total Downloads Trend" if lang == "en" else "总下载量累计趋势" - # 使用 Gist Raw URL 作为数据源 - gist_user = "Fu-Jie" # Replace with your GitHub username - data_url = f"https://gist.githubusercontent.com/{gist_user}/{self.gist_id}/raw/chart-data.json" - - # Vega-Lite Spec (数据从外部 URL 加载) + # Vega-Lite Spec (内嵌数据,Kroki 服务端渲染必须内嵌) vl_spec = { "$schema": "https://vega.github.io/schema/vega-lite/v5.json", "description": title, @@ -1225,7 +1195,7 @@ class OpenWebUIStats: "view": {"stroke": "transparent"}, "axis": {"domain": False, "grid": False}, }, - "data": {"url": data_url}, # 外部数据源 + "data": {"values": values}, "mark": { "type": "area", "line": {"color": "#2563eb"}, @@ -1334,9 +1304,6 @@ def main(): # 生成 Shields.io endpoint JSON (用于动态徽章) badges_dir = script_dir / "docs" / "badges" - # 上传图表数据到 Gist (独立存储) - stats_client.upload_chart_data(stats) - # 生成徽章 stats_client.generate_shields_endpoints(stats, str(badges_dir))