🔧 修复社区统计功能
- 修正 README 结构:标题 → 语言切换 → 简介 → 统计 → 内容
- 英文版使用英文统计文本,中文版使用中文统计文本
- 修正插件 URL 为 /posts/{slug} 格式
- 清理 README_CN.md 中的重复内容
This commit is contained in:
47
README.md
47
README.md
@@ -1,33 +1,30 @@
|
|||||||
# OpenWebUI Extras
|
# OpenWebUI Extras
|
||||||
|
|
||||||
|
|
||||||
<!-- STATS_START -->
|
|
||||||
## 📊 社区统计
|
|
||||||
|
|
||||||
> 🕐 自动更新于 2026-01-06
|
|
||||||
|
|
||||||
| 📝 发布 | ⬇️ 下载 | 👁️ 浏览 | 👍 点赞 | 💾 收藏 |
|
|
||||||
|:---:|:---:|:---:|:---:|:---:|
|
|
||||||
| **11** | **729** | **7627** | **54** | **43** |
|
|
||||||
|
|
||||||
### 🔥 热门插件 Top 5
|
|
||||||
|
|
||||||
| 排名 | 插件 | 下载 | 浏览 |
|
|
||||||
|:---:|------|:---:|:---:|
|
|
||||||
| 🥇 | [Turn Any Text into Beautiful Mind Maps](https://openwebui.com/f/turn_any_text_into_beautiful_mind_maps_3094c59a) | 212 | 1892 |
|
|
||||||
| 🥈 | [Export to Excel](https://openwebui.com/f/export_mulit_table_to_excel_244b8f9d) | 167 | 433 |
|
|
||||||
| 🥉 | [Async Context Compression](https://openwebui.com/f/async_context_compression_b1655bc8) | 110 | 1185 |
|
|
||||||
| 4️⃣ | [Flash Card ](https://openwebui.com/f/flash_card_65a2ea8f) | 70 | 1332 |
|
|
||||||
| 5️⃣ | [Smart Infographic](https://openwebui.com/f/smart_infographic_ad6f0c7f) | 62 | 850 |
|
|
||||||
|
|
||||||
*完整统计请查看 [社区统计报告](./docs/community-stats.md)*
|
|
||||||
<!-- STATS_END -->
|
|
||||||
|
|
||||||
English | [中文](./README_CN.md)
|
English | [中文](./README_CN.md)
|
||||||
|
|
||||||
A collection of enhancements, plugins, and prompts for [OpenWebUI](https://github.com/open-webui/open-webui), developed and curated for personal use to extend functionality and improve experience.
|
A collection of enhancements, plugins, and prompts for [OpenWebUI](https://github.com/open-webui/open-webui), developed and curated for personal use to extend functionality and improve experience.
|
||||||
|
|
||||||
[Contributing](./CONTRIBUTING.md)
|
<!-- STATS_START -->
|
||||||
|
## 📊 Community Stats
|
||||||
|
|
||||||
|
> 🕐 Auto-updated on 2026-01-06
|
||||||
|
|
||||||
|
| 📝 Posts | ⬇️ Downloads | 👁️ Views | 👍 Upvotes | 💾 Saves |
|
||||||
|
|:---:|:---:|:---:|:---:|:---:|
|
||||||
|
| **11** | **731** | **7648** | **54** | **43** |
|
||||||
|
|
||||||
|
### 🔥 Top 5 Popular Plugins
|
||||||
|
|
||||||
|
| Rank | Plugin | Downloads | Views |
|
||||||
|
|:---:|------|:---:|:---:|
|
||||||
|
| 🥇 | [Turn Any Text into Beautiful Mind Maps](https://openwebui.com/posts/turn_any_text_into_beautiful_mind_maps_3094c59a) | 213 | 1896 |
|
||||||
|
| 🥈 | [Export to Excel](https://openwebui.com/posts/export_mulit_table_to_excel_244b8f9d) | 167 | 433 |
|
||||||
|
| 🥉 | [Async Context Compression](https://openwebui.com/posts/async_context_compression_b1655bc8) | 110 | 1185 |
|
||||||
|
| 4️⃣ | [Flash Card ](https://openwebui.com/posts/flash_card_65a2ea8f) | 70 | 1334 |
|
||||||
|
| 5️⃣ | [Smart Infographic](https://openwebui.com/posts/smart_infographic_ad6f0c7f) | 62 | 850 |
|
||||||
|
|
||||||
|
*See full stats in [Community Stats Report](./docs/community-stats.md)*
|
||||||
|
<!-- STATS_END -->
|
||||||
|
|
||||||
## 📦 Project Contents
|
## 📦 Project Contents
|
||||||
|
|
||||||
@@ -100,3 +97,5 @@ If you have great prompts or plugins to share:
|
|||||||
1. Fork this repository.
|
1. Fork this repository.
|
||||||
2. Add your files to the appropriate `prompts/` or `plugins/` directory.
|
2. Add your files to the appropriate `prompts/` or `plugins/` directory.
|
||||||
3. Submit a Pull Request.
|
3. Submit a Pull Request.
|
||||||
|
|
||||||
|
[Contributing](./CONTRIBUTING.md)
|
||||||
|
|||||||
56
README_CN.md
56
README_CN.md
@@ -1,5 +1,8 @@
|
|||||||
# OpenWebUI Extras
|
# OpenWebUI Extras
|
||||||
|
|
||||||
|
[English](./README.md) | 中文
|
||||||
|
|
||||||
|
OpenWebUI 增强功能集合。包含个人开发与收集的插件、提示词等资源。
|
||||||
|
|
||||||
<!-- STATS_START -->
|
<!-- STATS_START -->
|
||||||
## 📊 社区统计
|
## 📊 社区统计
|
||||||
@@ -8,24 +11,24 @@
|
|||||||
|
|
||||||
| 📝 发布 | ⬇️ 下载 | 👁️ 浏览 | 👍 点赞 | 💾 收藏 |
|
| 📝 发布 | ⬇️ 下载 | 👁️ 浏览 | 👍 点赞 | 💾 收藏 |
|
||||||
|:---:|:---:|:---:|:---:|:---:|
|
|:---:|:---:|:---:|:---:|:---:|
|
||||||
| **11** | **729** | **7627** | **54** | **43** |
|
| **11** | **731** | **7648** | **54** | **43** |
|
||||||
|
|
||||||
### 🔥 热门插件 Top 5
|
### 🔥 热门插件 Top 5
|
||||||
|
|
||||||
| 排名 | 插件 | 下载 | 浏览 |
|
| 排名 | 插件 | 下载 | 浏览 |
|
||||||
|:---:|------|:---:|:---:|
|
|:---:|------|:---:|:---:|
|
||||||
| 🥇 | [Turn Any Text into Beautiful Mind Maps](https://openwebui.com/f/turn_any_text_into_beautiful_mind_maps_3094c59a) | 212 | 1892 |
|
| 🥇 | [Turn Any Text into Beautiful Mind Maps](https://openwebui.com/posts/turn_any_text_into_beautiful_mind_maps_3094c59a) | 213 | 1896 |
|
||||||
| 🥈 | [Export to Excel](https://openwebui.com/f/export_mulit_table_to_excel_244b8f9d) | 167 | 433 |
|
| 🥈 | [Export to Excel](https://openwebui.com/posts/export_mulit_table_to_excel_244b8f9d) | 167 | 433 |
|
||||||
| 🥉 | [Async Context Compression](https://openwebui.com/f/async_context_compression_b1655bc8) | 110 | 1185 |
|
| 🥉 | [Async Context Compression](https://openwebui.com/posts/async_context_compression_b1655bc8) | 110 | 1185 |
|
||||||
| 4️⃣ | [Flash Card ](https://openwebui.com/f/flash_card_65a2ea8f) | 70 | 1332 |
|
| 4️⃣ | [Flash Card ](https://openwebui.com/posts/flash_card_65a2ea8f) | 70 | 1334 |
|
||||||
| 5️⃣ | [Smart Infographic](https://openwebui.com/f/smart_infographic_ad6f0c7f) | 62 | 850 |
|
| 5️⃣ | [Smart Infographic](https://openwebui.com/posts/smart_infographic_ad6f0c7f) | 62 | 850 |
|
||||||
|
|
||||||
*完整统计请查看 [社区统计报告](./docs/community-stats.md)*
|
*完整统计请查看 [社区统计报告](./docs/community-stats.md)*
|
||||||
<!-- STATS_END -->
|
<!-- STATS_END -->
|
||||||
|
|
||||||
[English](./README.md) | 中文
|
## 📦 项目内容
|
||||||
|
|
||||||
OpenWebUI 增强功能集合。包含个人开发与收集的### 🧩 插件 (Plugins)
|
### 🧩 插件 (Plugins)
|
||||||
|
|
||||||
位于 `plugins/` 目录,包含各类 Python 编写的功能增强插件:
|
位于 `plugins/` 目录,包含各类 Python 编写的功能增强插件:
|
||||||
|
|
||||||
@@ -42,7 +45,6 @@ OpenWebUI 增强功能集合。包含个人开发与收集的### 🧩 插件 (Pl
|
|||||||
- **Context Enhancement** (`context_enhancement_filter`): 上下文增强过滤器。
|
- **Context Enhancement** (`context_enhancement_filter`): 上下文增强过滤器。
|
||||||
- **Gemini Manifold Companion** (`gemini_manifold_companion`): Gemini Manifold 配套增强。
|
- **Gemini Manifold Companion** (`gemini_manifold_companion`): Gemini Manifold 配套增强。
|
||||||
|
|
||||||
|
|
||||||
#### Pipes (模型管道)
|
#### Pipes (模型管道)
|
||||||
- **Gemini Manifold** (`gemini_mainfold`): 集成 Gemini 模型的管道。
|
- **Gemini Manifold** (`gemini_mainfold`): 集成 Gemini 模型的管道。
|
||||||
|
|
||||||
@@ -54,40 +56,10 @@ OpenWebUI 增强功能集合。包含个人开发与收集的### 🧩 插件 (Pl
|
|||||||
位于 `prompts/` 目录,包含精心调优的 System Prompts:
|
位于 `prompts/` 目录,包含精心调优的 System Prompts:
|
||||||
|
|
||||||
- **Coding**: 编程辅助类提示词。
|
- **Coding**: 编程辅助类提示词。
|
||||||
- **Marketing**: 营销文案类提示词。(`/prompts/marketing`): 内容创作、品牌策划、市场分析相关的提示词
|
- **Marketing**: 营销文案类提示词。
|
||||||
|
|
||||||
每个提示词都独立保存为 Markdown 文件,可直接在 OpenWebUI 中使用。
|
每个提示词都独立保存为 Markdown 文件,可直接在 OpenWebUI 中使用。
|
||||||
|
|
||||||
### 🔧 插件 (Plugins)
|
|
||||||
|
|
||||||
{{ ... }}
|
|
||||||
|
|
||||||
[贡献指南](./CONTRIBUTING.md) | [更新日志](./CHANGELOG.md)
|
|
||||||
|
|
||||||
## 📦 项目内容
|
|
||||||
|
|
||||||
### 🎯 提示词 (Prompts)
|
|
||||||
|
|
||||||
位于 `/prompts` 目录,包含针对不同领域的优质提示词模板:
|
|
||||||
|
|
||||||
- **编程类** (`/prompts/coding`): 代码生成、调试、优化相关的提示词
|
|
||||||
- **营销类** (`/prompts/marketing`): 内容创作、品牌策划、市场分析相关的提示词
|
|
||||||
|
|
||||||
每个提示词都独立保存为 Markdown 文件,可直接在 OpenWebUI 中使用。
|
|
||||||
|
|
||||||
### 🔧 插件 (Plugins)
|
|
||||||
|
|
||||||
位于 `/plugins` 目录,提供三种类型的插件扩展:
|
|
||||||
|
|
||||||
- **过滤器 (Filters)** - 在用户输入发送给 LLM 前进行处理和优化
|
|
||||||
- 异步上下文压缩:智能压缩长上下文,优化 token 使用效率
|
|
||||||
|
|
||||||
- **动作 (Actions)** - 自定义功能,从聊天中触发
|
|
||||||
- 思维导图生成:快速生成和导出思维导图
|
|
||||||
|
|
||||||
- **管道 (Pipes)** - 对 LLM 响应进行处理和增强
|
|
||||||
- 各类响应处理和格式化插件
|
|
||||||
|
|
||||||
## 📖 开发文档
|
## 📖 开发文档
|
||||||
|
|
||||||
位于 `docs/zh/` 目录:
|
位于 `docs/zh/` 目录:
|
||||||
@@ -96,7 +68,7 @@ OpenWebUI 增强功能集合。包含个人开发与收集的### 🧩 插件 (Pl
|
|||||||
- **[从问一个AI到运营一支AI团队](./docs/zh/从问一个AI到运营一支AI团队.md)** - 深度运营经验分享。
|
- **[从问一个AI到运营一支AI团队](./docs/zh/从问一个AI到运营一支AI团队.md)** - 深度运营经验分享。
|
||||||
|
|
||||||
更多示例请查看 `docs/examples/` 目录。
|
更多示例请查看 `docs/examples/` 目录。
|
||||||
|
|
||||||
## 🚀 快速开始
|
## 🚀 快速开始
|
||||||
|
|
||||||
本项目是一个资源集合,无需安装 Python 环境。你只需要下载对应的文件并导入到你的 OpenWebUI 实例中即可。
|
本项目是一个资源集合,无需安装 Python 环境。你只需要下载对应的文件并导入到你的 OpenWebUI 实例中即可。
|
||||||
@@ -127,3 +99,5 @@ OpenWebUI 增强功能集合。包含个人开发与收集的### 🧩 插件 (Pl
|
|||||||
1. Fork 本仓库。
|
1. Fork 本仓库。
|
||||||
2. 将你的文件添加到对应的 `prompts/` 或 `plugins/` 目录。
|
2. 将你的文件添加到对应的 `prompts/` 或 `plugins/` 目录。
|
||||||
3. 提交 Pull Request。
|
3. 提交 Pull Request。
|
||||||
|
|
||||||
|
[贡献指南](./CONTRIBUTING.md) | [更新日志](./CHANGELOG.md)
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"total_posts": 11,
|
"total_posts": 11,
|
||||||
"total_downloads": 729,
|
"total_downloads": 731,
|
||||||
"total_views": 7627,
|
"total_views": 7648,
|
||||||
"total_upvotes": 54,
|
"total_upvotes": 54,
|
||||||
"total_downvotes": 0,
|
"total_downvotes": 0,
|
||||||
"total_saves": 43,
|
"total_saves": 43,
|
||||||
@@ -15,14 +15,14 @@
|
|||||||
"slug": "turn_any_text_into_beautiful_mind_maps_3094c59a",
|
"slug": "turn_any_text_into_beautiful_mind_maps_3094c59a",
|
||||||
"type": "unknown",
|
"type": "unknown",
|
||||||
"version": "",
|
"version": "",
|
||||||
"downloads": 212,
|
"downloads": 213,
|
||||||
"views": 1892,
|
"views": 1896,
|
||||||
"upvotes": 10,
|
"upvotes": 10,
|
||||||
"saves": 15,
|
"saves": 15,
|
||||||
"comments": 8,
|
"comments": 8,
|
||||||
"created_at": "2025-12-31",
|
"created_at": "2025-12-31",
|
||||||
"updated_at": "2026-01-04",
|
"updated_at": "2026-01-04",
|
||||||
"url": "https://openwebui.com/f/turn_any_text_into_beautiful_mind_maps_3094c59a"
|
"url": "https://openwebui.com/posts/turn_any_text_into_beautiful_mind_maps_3094c59a"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Export to Excel",
|
"title": "Export to Excel",
|
||||||
@@ -36,7 +36,7 @@
|
|||||||
"comments": 0,
|
"comments": 0,
|
||||||
"created_at": "2025-05-30",
|
"created_at": "2025-05-30",
|
||||||
"updated_at": "2026-01-03",
|
"updated_at": "2026-01-03",
|
||||||
"url": "https://openwebui.com/f/export_mulit_table_to_excel_244b8f9d"
|
"url": "https://openwebui.com/posts/export_mulit_table_to_excel_244b8f9d"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Async Context Compression",
|
"title": "Async Context Compression",
|
||||||
@@ -50,7 +50,7 @@
|
|||||||
"comments": 0,
|
"comments": 0,
|
||||||
"created_at": "2025-11-08",
|
"created_at": "2025-11-08",
|
||||||
"updated_at": "2025-12-31",
|
"updated_at": "2025-12-31",
|
||||||
"url": "https://openwebui.com/f/async_context_compression_b1655bc8"
|
"url": "https://openwebui.com/posts/async_context_compression_b1655bc8"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Flash Card ",
|
"title": "Flash Card ",
|
||||||
@@ -58,13 +58,13 @@
|
|||||||
"type": "unknown",
|
"type": "unknown",
|
||||||
"version": "",
|
"version": "",
|
||||||
"downloads": 70,
|
"downloads": 70,
|
||||||
"views": 1332,
|
"views": 1334,
|
||||||
"upvotes": 8,
|
"upvotes": 8,
|
||||||
"saves": 5,
|
"saves": 5,
|
||||||
"comments": 2,
|
"comments": 2,
|
||||||
"created_at": "2025-12-30",
|
"created_at": "2025-12-30",
|
||||||
"updated_at": "2026-01-04",
|
"updated_at": "2026-01-04",
|
||||||
"url": "https://openwebui.com/f/flash_card_65a2ea8f"
|
"url": "https://openwebui.com/posts/flash_card_65a2ea8f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Smart Infographic",
|
"title": "Smart Infographic",
|
||||||
@@ -78,21 +78,21 @@
|
|||||||
"comments": 2,
|
"comments": 2,
|
||||||
"created_at": "2025-12-28",
|
"created_at": "2025-12-28",
|
||||||
"updated_at": "2026-01-04",
|
"updated_at": "2026-01-04",
|
||||||
"url": "https://openwebui.com/f/smart_infographic_ad6f0c7f"
|
"url": "https://openwebui.com/posts/smart_infographic_ad6f0c7f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Export to Word (Enhanced Formatting)",
|
"title": "Export to Word (Enhanced Formatting)",
|
||||||
"slug": "export_to_word_enhanced_formatting_fca6a315",
|
"slug": "export_to_word_enhanced_formatting_fca6a315",
|
||||||
"type": "unknown",
|
"type": "unknown",
|
||||||
"version": "",
|
"version": "",
|
||||||
"downloads": 37,
|
"downloads": 38,
|
||||||
"views": 419,
|
"views": 422,
|
||||||
"upvotes": 5,
|
"upvotes": 5,
|
||||||
"saves": 2,
|
"saves": 2,
|
||||||
"comments": 0,
|
"comments": 0,
|
||||||
"created_at": "2026-01-03",
|
"created_at": "2026-01-03",
|
||||||
"updated_at": "2026-01-05",
|
"updated_at": "2026-01-05",
|
||||||
"url": "https://openwebui.com/f/export_to_word_enhanced_formatting_fca6a315"
|
"url": "https://openwebui.com/posts/export_to_word_enhanced_formatting_fca6a315"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "智能信息图",
|
"title": "智能信息图",
|
||||||
@@ -106,7 +106,7 @@
|
|||||||
"comments": 0,
|
"comments": 0,
|
||||||
"created_at": "2025-12-28",
|
"created_at": "2025-12-28",
|
||||||
"updated_at": "2025-12-29",
|
"updated_at": "2025-12-29",
|
||||||
"url": "https://openwebui.com/f/智能信息图_e04a48ff"
|
"url": "https://openwebui.com/posts/智能信息图_e04a48ff"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "导出为 Word-支持公式、流程图、表格和代码块",
|
"title": "导出为 Word-支持公式、流程图、表格和代码块",
|
||||||
@@ -114,13 +114,13 @@
|
|||||||
"type": "unknown",
|
"type": "unknown",
|
||||||
"version": "",
|
"version": "",
|
||||||
"downloads": 13,
|
"downloads": 13,
|
||||||
"views": 502,
|
"views": 514,
|
||||||
"upvotes": 7,
|
"upvotes": 7,
|
||||||
"saves": 1,
|
"saves": 1,
|
||||||
"comments": 1,
|
"comments": 1,
|
||||||
"created_at": "2026-01-04",
|
"created_at": "2026-01-04",
|
||||||
"updated_at": "2026-01-05",
|
"updated_at": "2026-01-05",
|
||||||
"url": "https://openwebui.com/f/导出为_word_支持公式流程图表格和代码块_8a6306c0"
|
"url": "https://openwebui.com/posts/导出为_word_支持公式流程图表格和代码块_8a6306c0"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "闪记卡生成插件",
|
"title": "闪记卡生成插件",
|
||||||
@@ -134,7 +134,7 @@
|
|||||||
"comments": 0,
|
"comments": 0,
|
||||||
"created_at": "2025-12-30",
|
"created_at": "2025-12-30",
|
||||||
"updated_at": "2026-01-01",
|
"updated_at": "2026-01-01",
|
||||||
"url": "https://openwebui.com/f/闪记卡生成插件_4a31eac3"
|
"url": "https://openwebui.com/posts/闪记卡生成插件_4a31eac3"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "智能生成交互式思维导图,帮助用户可视化知识",
|
"title": "智能生成交互式思维导图,帮助用户可视化知识",
|
||||||
@@ -148,7 +148,7 @@
|
|||||||
"comments": 0,
|
"comments": 0,
|
||||||
"created_at": "2025-12-31",
|
"created_at": "2025-12-31",
|
||||||
"updated_at": "2025-12-31",
|
"updated_at": "2025-12-31",
|
||||||
"url": "https://openwebui.com/f/智能生成交互式思维导图帮助用户可视化知识_8d4b097b"
|
"url": "https://openwebui.com/posts/智能生成交互式思维导图帮助用户可视化知识_8d4b097b"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "异步上下文压缩",
|
"title": "异步上下文压缩",
|
||||||
@@ -162,7 +162,7 @@
|
|||||||
"comments": 0,
|
"comments": 0,
|
||||||
"created_at": "2025-11-08",
|
"created_at": "2025-11-08",
|
||||||
"updated_at": "2025-12-31",
|
"updated_at": "2025-12-31",
|
||||||
"url": "https://openwebui.com/f/异步上下文压缩_5c0617cb"
|
"url": "https://openwebui.com/posts/异步上下文压缩_5c0617cb"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -1,14 +1,14 @@
|
|||||||
# 📊 OpenWebUI 社区统计报告
|
# 📊 OpenWebUI 社区统计报告
|
||||||
|
|
||||||
> 📅 更新时间: 2026-01-06 01:31:12
|
> 📅 更新时间: 2026-01-06 01:47:55
|
||||||
|
|
||||||
## 📈 总览
|
## 📈 总览
|
||||||
|
|
||||||
| 指标 | 数值 |
|
| 指标 | 数值 |
|
||||||
|------|------|
|
|------|------|
|
||||||
| 📝 发布数量 | 11 |
|
| 📝 发布数量 | 11 |
|
||||||
| ⬇️ 总下载量 | 729 |
|
| ⬇️ 总下载量 | 731 |
|
||||||
| 👁️ 总浏览量 | 7627 |
|
| 👁️ 总浏览量 | 7648 |
|
||||||
| 👍 总点赞数 | 54 |
|
| 👍 总点赞数 | 54 |
|
||||||
| 💾 总收藏数 | 43 |
|
| 💾 总收藏数 | 43 |
|
||||||
| 💬 总评论数 | 13 |
|
| 💬 总评论数 | 13 |
|
||||||
@@ -21,14 +21,14 @@
|
|||||||
|
|
||||||
| 排名 | 标题 | 类型 | 版本 | 下载 | 浏览 | 点赞 | 收藏 | 更新日期 |
|
| 排名 | 标题 | 类型 | 版本 | 下载 | 浏览 | 点赞 | 收藏 | 更新日期 |
|
||||||
|:---:|------|:---:|:---:|:---:|:---:|:---:|:---:|:---:|
|
|:---:|------|:---:|:---:|:---:|:---:|:---:|:---:|:---:|
|
||||||
| 1 | [Turn Any Text into Beautiful Mind Maps](https://openwebui.com/f/turn_any_text_into_beautiful_mind_maps_3094c59a) | unknown | | 212 | 1892 | 10 | 15 | 2026-01-04 |
|
| 1 | [Turn Any Text into Beautiful Mind Maps](https://openwebui.com/posts/turn_any_text_into_beautiful_mind_maps_3094c59a) | unknown | | 213 | 1896 | 10 | 15 | 2026-01-04 |
|
||||||
| 2 | [Export to Excel](https://openwebui.com/f/export_mulit_table_to_excel_244b8f9d) | unknown | | 167 | 433 | 3 | 2 | 2026-01-03 |
|
| 2 | [Export to Excel](https://openwebui.com/posts/export_mulit_table_to_excel_244b8f9d) | unknown | | 167 | 433 | 3 | 2 | 2026-01-03 |
|
||||||
| 3 | [Async Context Compression](https://openwebui.com/f/async_context_compression_b1655bc8) | unknown | | 110 | 1185 | 5 | 9 | 2025-12-31 |
|
| 3 | [Async Context Compression](https://openwebui.com/posts/async_context_compression_b1655bc8) | unknown | | 110 | 1185 | 5 | 9 | 2025-12-31 |
|
||||||
| 4 | [Flash Card ](https://openwebui.com/f/flash_card_65a2ea8f) | unknown | | 70 | 1332 | 8 | 5 | 2026-01-04 |
|
| 4 | [Flash Card ](https://openwebui.com/posts/flash_card_65a2ea8f) | unknown | | 70 | 1334 | 8 | 5 | 2026-01-04 |
|
||||||
| 5 | [Smart Infographic](https://openwebui.com/f/smart_infographic_ad6f0c7f) | unknown | | 62 | 850 | 6 | 7 | 2026-01-04 |
|
| 5 | [Smart Infographic](https://openwebui.com/posts/smart_infographic_ad6f0c7f) | unknown | | 62 | 850 | 6 | 7 | 2026-01-04 |
|
||||||
| 6 | [Export to Word (Enhanced Formatting)](https://openwebui.com/f/export_to_word_enhanced_formatting_fca6a315) | unknown | | 37 | 419 | 5 | 2 | 2026-01-05 |
|
| 6 | [Export to Word (Enhanced Formatting)](https://openwebui.com/posts/export_to_word_enhanced_formatting_fca6a315) | unknown | | 38 | 422 | 5 | 2 | 2026-01-05 |
|
||||||
| 7 | [智能信息图](https://openwebui.com/f/智能信息图_e04a48ff) | unknown | | 31 | 372 | 3 | 0 | 2025-12-29 |
|
| 7 | [智能信息图](https://openwebui.com/posts/智能信息图_e04a48ff) | unknown | | 31 | 372 | 3 | 0 | 2025-12-29 |
|
||||||
| 8 | [导出为 Word-支持公式、流程图、表格和代码块](https://openwebui.com/f/导出为_word_支持公式流程图表格和代码块_8a6306c0) | unknown | | 13 | 502 | 7 | 1 | 2026-01-05 |
|
| 8 | [导出为 Word-支持公式、流程图、表格和代码块](https://openwebui.com/posts/导出为_word_支持公式流程图表格和代码块_8a6306c0) | unknown | | 13 | 514 | 7 | 1 | 2026-01-05 |
|
||||||
| 9 | [闪记卡生成插件](https://openwebui.com/f/闪记卡生成插件_4a31eac3) | unknown | | 12 | 305 | 3 | 1 | 2026-01-01 |
|
| 9 | [闪记卡生成插件](https://openwebui.com/posts/闪记卡生成插件_4a31eac3) | unknown | | 12 | 305 | 3 | 1 | 2026-01-01 |
|
||||||
| 10 | [智能生成交互式思维导图,帮助用户可视化知识](https://openwebui.com/f/智能生成交互式思维导图帮助用户可视化知识_8d4b097b) | unknown | | 10 | 233 | 2 | 0 | 2025-12-31 |
|
| 10 | [智能生成交互式思维导图,帮助用户可视化知识](https://openwebui.com/posts/智能生成交互式思维导图帮助用户可视化知识_8d4b097b) | unknown | | 10 | 233 | 2 | 0 | 2025-12-31 |
|
||||||
| 11 | [异步上下文压缩](https://openwebui.com/f/异步上下文压缩_5c0617cb) | unknown | | 5 | 104 | 2 | 1 | 2025-12-31 |
|
| 11 | [异步上下文压缩](https://openwebui.com/posts/异步上下文压缩_5c0617cb) | unknown | | 5 | 104 | 2 | 1 | 2025-12-31 |
|
||||||
|
|||||||
@@ -154,7 +154,7 @@ class OpenWebUIStats:
|
|||||||
"comments": post.get("commentCount", 0),
|
"comments": post.get("commentCount", 0),
|
||||||
"created_at": created_at.strftime("%Y-%m-%d"),
|
"created_at": created_at.strftime("%Y-%m-%d"),
|
||||||
"updated_at": updated_at.strftime("%Y-%m-%d"),
|
"updated_at": updated_at.strftime("%Y-%m-%d"),
|
||||||
"url": f"https://openwebui.com/f/{post.get('slug', '')}",
|
"url": f"https://openwebui.com/posts/{post.get('slug', '')}",
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -260,20 +260,48 @@ class OpenWebUIStats:
|
|||||||
json.dump(stats, f, ensure_ascii=False, indent=2)
|
json.dump(stats, f, ensure_ascii=False, indent=2)
|
||||||
print(f"✅ JSON 数据已保存到: {filepath}")
|
print(f"✅ JSON 数据已保存到: {filepath}")
|
||||||
|
|
||||||
def generate_readme_stats(self, stats: dict) -> str:
|
def generate_readme_stats(self, stats: dict, lang: str = "zh") -> str:
|
||||||
"""生成 README 统计徽章区域"""
|
"""
|
||||||
|
生成 README 统计徽章区域
|
||||||
|
|
||||||
|
Args:
|
||||||
|
stats: 统计数据
|
||||||
|
lang: 语言 ("zh" 中文, "en" 英文)
|
||||||
|
"""
|
||||||
# 获取 Top 5 插件
|
# 获取 Top 5 插件
|
||||||
top_plugins = stats["posts"][:5]
|
top_plugins = stats["posts"][:5]
|
||||||
|
|
||||||
|
# 中英文文本
|
||||||
|
texts = {
|
||||||
|
"zh": {
|
||||||
|
"title": "## 📊 社区统计",
|
||||||
|
"updated": f"> 🕐 自动更新于 {datetime.now().strftime('%Y-%m-%d')}",
|
||||||
|
"header": "| 📝 发布 | ⬇️ 下载 | 👁️ 浏览 | 👍 点赞 | 💾 收藏 |",
|
||||||
|
"top5_title": "### 🔥 热门插件 Top 5",
|
||||||
|
"top5_header": "| 排名 | 插件 | 下载 | 浏览 |",
|
||||||
|
"full_stats": "*完整统计请查看 [社区统计报告](./docs/community-stats.md)*",
|
||||||
|
},
|
||||||
|
"en": {
|
||||||
|
"title": "## 📊 Community Stats",
|
||||||
|
"updated": f"> 🕐 Auto-updated on {datetime.now().strftime('%Y-%m-%d')}",
|
||||||
|
"header": "| 📝 Posts | ⬇️ Downloads | 👁️ Views | 👍 Upvotes | 💾 Saves |",
|
||||||
|
"top5_title": "### 🔥 Top 5 Popular Plugins",
|
||||||
|
"top5_header": "| Rank | Plugin | Downloads | Views |",
|
||||||
|
"full_stats": "*See full stats in [Community Stats Report](./docs/community-stats.md)*",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
t = texts.get(lang, texts["en"])
|
||||||
|
|
||||||
lines = []
|
lines = []
|
||||||
lines.append("<!-- STATS_START -->")
|
lines.append("<!-- STATS_START -->")
|
||||||
lines.append("## 📊 社区统计")
|
lines.append(t["title"])
|
||||||
lines.append("")
|
lines.append("")
|
||||||
lines.append(f"> 🕐 自动更新于 {datetime.now().strftime('%Y-%m-%d')}")
|
lines.append(t["updated"])
|
||||||
lines.append("")
|
lines.append("")
|
||||||
|
|
||||||
# 统计徽章 - 使用 shields.io 风格的表格
|
# 统计徽章表格
|
||||||
lines.append("| 📝 发布 | ⬇️ 下载 | 👁️ 浏览 | 👍 点赞 | 💾 收藏 |")
|
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']}** | "
|
||||||
@@ -282,9 +310,9 @@ class OpenWebUIStats:
|
|||||||
lines.append("")
|
lines.append("")
|
||||||
|
|
||||||
# Top 5 热门插件
|
# Top 5 热门插件
|
||||||
lines.append("### 🔥 热门插件 Top 5")
|
lines.append(t["top5_title"])
|
||||||
lines.append("")
|
lines.append("")
|
||||||
lines.append("| 排名 | 插件 | 下载 | 浏览 |")
|
lines.append(t["top5_header"])
|
||||||
lines.append("|:---:|------|:---:|:---:|")
|
lines.append("|:---:|------|:---:|:---:|")
|
||||||
|
|
||||||
medals = ["🥇", "🥈", "🥉", "4️⃣", "5️⃣"]
|
medals = ["🥇", "🥈", "🥉", "4️⃣", "5️⃣"]
|
||||||
@@ -295,13 +323,20 @@ class OpenWebUIStats:
|
|||||||
)
|
)
|
||||||
|
|
||||||
lines.append("")
|
lines.append("")
|
||||||
lines.append("*完整统计请查看 [社区统计报告](./docs/community-stats.md)*")
|
lines.append(t["full_stats"])
|
||||||
lines.append("<!-- STATS_END -->")
|
lines.append("<!-- STATS_END -->")
|
||||||
|
|
||||||
return "\n".join(lines)
|
return "\n".join(lines)
|
||||||
|
|
||||||
def update_readme(self, stats: dict, readme_path: str):
|
def update_readme(self, stats: dict, readme_path: str, lang: str = "zh"):
|
||||||
"""更新 README 文件中的统计区域"""
|
"""
|
||||||
|
更新 README 文件中的统计区域
|
||||||
|
|
||||||
|
Args:
|
||||||
|
stats: 统计数据
|
||||||
|
readme_path: README 文件路径
|
||||||
|
lang: 语言 ("zh" 中文, "en" 英文)
|
||||||
|
"""
|
||||||
import re
|
import re
|
||||||
|
|
||||||
# 读取现有内容
|
# 读取现有内容
|
||||||
@@ -309,7 +344,7 @@ class OpenWebUIStats:
|
|||||||
content = f.read()
|
content = f.read()
|
||||||
|
|
||||||
# 生成新的统计区域
|
# 生成新的统计区域
|
||||||
new_stats = self.generate_readme_stats(stats)
|
new_stats = self.generate_readme_stats(stats, lang)
|
||||||
|
|
||||||
# 检查是否已有统计区域
|
# 检查是否已有统计区域
|
||||||
pattern = r"<!-- STATS_START -->.*?<!-- STATS_END -->"
|
pattern = r"<!-- STATS_START -->.*?<!-- STATS_END -->"
|
||||||
@@ -317,19 +352,35 @@ class OpenWebUIStats:
|
|||||||
# 替换现有区域
|
# 替换现有区域
|
||||||
new_content = re.sub(pattern, new_stats, content, flags=re.DOTALL)
|
new_content = re.sub(pattern, new_stats, content, flags=re.DOTALL)
|
||||||
else:
|
else:
|
||||||
# 在文件开头(标题之后)插入统计区域
|
# 在简介段落之后插入统计区域
|
||||||
# 找到第一个 ## 标题或在第一个空行后插入
|
# 查找模式:标题 -> 语言切换行 -> 简介段落 -> 插入位置
|
||||||
lines = content.split("\n")
|
lines = content.split("\n")
|
||||||
insert_pos = 0
|
insert_pos = 0
|
||||||
|
found_intro = False
|
||||||
|
|
||||||
for i, line in enumerate(lines):
|
for i, line in enumerate(lines):
|
||||||
|
# 跳过标题
|
||||||
if line.startswith("# "):
|
if line.startswith("# "):
|
||||||
# 找到主标题后继续
|
|
||||||
continue
|
continue
|
||||||
if line.startswith("[") or line.strip() == "":
|
# 跳过空行
|
||||||
insert_pos = i + 1
|
if line.strip() == "":
|
||||||
if line.strip() == "":
|
continue
|
||||||
break
|
# 跳过语言切换行 (如 "English | [中文]" 或 "[English] | 中文")
|
||||||
|
if ("English" in line or "中文" in line) and "|" in line:
|
||||||
|
continue
|
||||||
|
# 找到第一个非空、非标题、非语言切换的段落(简介)
|
||||||
|
if not found_intro:
|
||||||
|
found_intro = True
|
||||||
|
# 继续到这个段落结束
|
||||||
|
continue
|
||||||
|
# 简介段落后的空行或下一个标题就是插入位置
|
||||||
|
if line.strip() == "" or line.startswith("#"):
|
||||||
|
insert_pos = i
|
||||||
|
break
|
||||||
|
|
||||||
|
# 如果没找到合适位置,就放在第3行(标题和语言切换后)
|
||||||
|
if insert_pos == 0:
|
||||||
|
insert_pos = 3
|
||||||
|
|
||||||
# 在适当位置插入
|
# 在适当位置插入
|
||||||
lines.insert(insert_pos, "")
|
lines.insert(insert_pos, "")
|
||||||
@@ -394,8 +445,8 @@ def main():
|
|||||||
# 更新 README 文件
|
# 更新 README 文件
|
||||||
readme_path = script_dir / "README.md"
|
readme_path = script_dir / "README.md"
|
||||||
readme_cn_path = script_dir / "README_CN.md"
|
readme_cn_path = script_dir / "README_CN.md"
|
||||||
stats_client.update_readme(stats, str(readme_path))
|
stats_client.update_readme(stats, str(readme_path), lang="en")
|
||||||
stats_client.update_readme(stats, str(readme_cn_path))
|
stats_client.update_readme(stats, str(readme_cn_path), lang="zh")
|
||||||
|
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user