diff --git a/README.md b/README.md index f6e1e8b..9477a47 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,19 @@ -# WeChatter +

+ WeChatter: + + Make + WeChat + Better + +

+
[![CI/CD](https://github.com/Cassius0924/WeChatter/actions/workflows/test.yml/badge.svg)](https://github.com/Cassius0924/WeChatter/actions/workflows/test.yml) [![GitHub Release](https://img.shields.io/github/v/release/Cassius0924/WeChatter)](https://github.com/Cassius0924/WeChatter/releases) [![GitHub License](https://img.shields.io/github/license/Cassius0924/WeChatter)](https://github.com/Cassius0924/WeChatter/blob/master/LICENSE) +![Welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat)
@@ -12,6 +21,8 @@ 基于 [wechatbot-webhook](https://github.com/danni-cool/wechatbot-webhook) 的微信机器人💬,支持 GPT 问答、热搜、天气预报、消息转发、Webhook提醒等功能。 +[![wechatter show](docs/images/wechatter_show.png)](docs/command_show.md) + ## 快速开始 ### 运行 wechatbot-webhook @@ -82,24 +93,24 @@ python3 main.py ## 支持的命令 - [x] GPT 问答,基于 [Copilot-GPT4-Server](https://github.com/aaamoon/copilot-gpt4-service) -- [x] 获取 Bilibili 热搜 -- [x] 获取知乎热搜 -- [x] 获取微博热搜 -- [x] 获取抖音热搜 -- [x] 获取 GitHub 趋势 -- [x] 单词/词语翻译 -- [x] 获取少数派早报 -- [x] 获取历史上的今天 -- [x] 二维码生成器 +- [x] Bilibili 热搜 +- [x] 知乎热搜 +- [x] 微博热搜 +- [x] 抖音热搜 +- [x] GitHub 趋势 +- [x] 单词词语翻译 +- [x] 少数派早报 +- [x] 历史上的今天 +- [x] 二维码生成 - [x] 待办清单(TODO) -- [x] 获取人民日报PDF -- [x] 获取天气预报 -- [x] 获取食物热量/卡路里 -- [x] 随机获取冷知识 -- [x] 获取中石化92号汽油指导价 +- [x] 人民日报PDF +- [x] 天气预报 +- [x] 食物热量 +- [x] 冷知识 +- [x] 中石化92号汽油指导价 > [!TIP] -> 更多命令使用 `/help` 命令查看。 +> 命令帮助请使用 `/help` 命令查询或查看[命令功能展示](docs/command_show.md)。 ## 支持的功能 @@ -193,6 +204,12 @@ python3 main.py 关于命令名称可选值详见[自定义命令关键词配置详细](docs/custom_command_key_config_detail.md) +# 贡献者 + +Thanks to the following people who have contributed to this project: + +[![Contributors](https://contrib.rocks/image?repo=Cassius0924/WeChatter)](https://github.com/Cassius0924/WeChatter/graphs/contributors) + ## 插件化 > [!NOTE] diff --git a/docs/command_show.md b/docs/command_show.md new file mode 100644 index 0000000..6166346 --- /dev/null +++ b/docs/command_show.md @@ -0,0 +1,127 @@ +# 命令功能展示 + +本文档展示了 WeChatter 支持的命令功能。 + +## 目录 +- [天气预报](#天气预报) +- [待办清单](#待办清单) + - [添加待办](#添加待办) + - [删除待办](#删除待办) + - [查看待办](#查看待办) +- [Bilibili 热搜](#Bilibili-热搜) +- [知乎热搜](#知乎热搜) +- [微博热搜](#微博热搜) +- [抖音热搜](#抖音热搜) +- [GitHub 趋势](#GitHub-趋势) +- [GPT 问答](#GPT-问答) + - [持续对话](#持续对话) + - [新建对话](#新建对话) + - [所有对话](#所有对话) + - [继续对话](#继续对话) + - [对话记录](#对话记录) +- [单词词语翻译](#单词词语翻译) +- [少数派早报](#少数派早报) +- [人民日报](#人民日报) +- [二维码生成](#二维码生成) +- [食物热量](#食物热量) +- [中石化92号汽油指导价](#中石化92号汽油指导价) +- [冷知识](#冷知识) +- [历史上的今天](#历史上的今天) + +## 天气预报 + +![获取天气预报](./images/cmd_weather.png) + +## 待办清单 + +### 添加待办 + +![待办清单](./images/cmd_todo_1.png) + +### 删除待办 + +![待办清单](./images/cmd_todo_2.png) + +### 查看待办 + +![待办清单](./images/cmd_todo_3.png) + +## Bilibili 热搜 + +![获取 Bilibili 热搜](./images/cmd_bili_hot.png) + +## 知乎热搜 + +![获取知乎热搜](./images/cmd_zhihu_hot.png) + +## 微博热搜 + +![获取微博热搜](./images/cmd_weibo_hot.png) + +## 抖音热搜 + +![获取抖音热搜](./images/cmd_douyin_hot.png) + +## GitHub 趋势 + +![获取 GitHub 趋势](./images/cmd_github_trending.png) + +## GPT 问答 + +### 持续对话 + +![GPT 问答](./images/cmd_gpt4_1.png) + +### 新建对话 + +![GPT 问答](./images/cmd_gpt4_2.png) + +### 所有对话 + +![GPT 问答](./images/cmd_gpt4_3.png) + +### 继续对话 + +![GPT 问答](./images/cmd_gpt4_4.png) + +### 对话记录 + +![GPT 问答](./images/cmd_gpt4_5.png) + +## 单词词语翻译 + +![单词词语翻译](./images/cmd_word.png) + +## 少数派早报 + +![少数派早报](./images/cmd_pai_post.png) + +## 人民日报 + +### PDF 文件 + +![人民日报](./images/cmd_people_daily_1.png) + +### 日报链接 + +![人民日报](./images/cmd_people_daily_2.png) + +## 二维码生成 + +![二维码生成](./images/cmd_qrcode.png) + +## 食物热量 + +![食物热量](./images/cmd_food_calories.png) + +## 中石化92号汽油指导价 + +![中石化92号汽油指导价](./images/cmd_gasoline_price.png) + +## 冷知识 + +![冷知识](./images/cmd_trivia.png) + +## 历史上的今天 + +![历史上的今天](./images/cmd_today_in_history.png) diff --git a/docs/images/cmd_bili_hot.png b/docs/images/cmd_bili_hot.png new file mode 100644 index 0000000..87fa242 Binary files /dev/null and b/docs/images/cmd_bili_hot.png differ diff --git a/docs/images/cmd_douyin_hot.png b/docs/images/cmd_douyin_hot.png new file mode 100644 index 0000000..bd768e4 Binary files /dev/null and b/docs/images/cmd_douyin_hot.png differ diff --git a/docs/images/cmd_food_calories.png b/docs/images/cmd_food_calories.png new file mode 100644 index 0000000..b6de435 Binary files /dev/null and b/docs/images/cmd_food_calories.png differ diff --git a/docs/images/cmd_gasoline_price.png b/docs/images/cmd_gasoline_price.png new file mode 100644 index 0000000..d21868a Binary files /dev/null and b/docs/images/cmd_gasoline_price.png differ diff --git a/docs/images/cmd_github_trending.png b/docs/images/cmd_github_trending.png new file mode 100644 index 0000000..03c24b1 Binary files /dev/null and b/docs/images/cmd_github_trending.png differ diff --git a/docs/images/cmd_gpt4_1.png b/docs/images/cmd_gpt4_1.png new file mode 100644 index 0000000..0c28cd4 Binary files /dev/null and b/docs/images/cmd_gpt4_1.png differ diff --git a/docs/images/cmd_gpt4_2.png b/docs/images/cmd_gpt4_2.png new file mode 100644 index 0000000..0c603c8 Binary files /dev/null and b/docs/images/cmd_gpt4_2.png differ diff --git a/docs/images/cmd_gpt4_3.png b/docs/images/cmd_gpt4_3.png new file mode 100644 index 0000000..5343dd0 Binary files /dev/null and b/docs/images/cmd_gpt4_3.png differ diff --git a/docs/images/cmd_gpt4_4.png b/docs/images/cmd_gpt4_4.png new file mode 100644 index 0000000..108508f Binary files /dev/null and b/docs/images/cmd_gpt4_4.png differ diff --git a/docs/images/cmd_gpt4_5.png b/docs/images/cmd_gpt4_5.png new file mode 100644 index 0000000..ebfb49d Binary files /dev/null and b/docs/images/cmd_gpt4_5.png differ diff --git a/docs/images/cmd_pai_post.png b/docs/images/cmd_pai_post.png new file mode 100644 index 0000000..5b99d4a Binary files /dev/null and b/docs/images/cmd_pai_post.png differ diff --git a/docs/images/cmd_people_daily_1.png b/docs/images/cmd_people_daily_1.png new file mode 100644 index 0000000..fd9c98e Binary files /dev/null and b/docs/images/cmd_people_daily_1.png differ diff --git a/docs/images/cmd_people_daily_2.png b/docs/images/cmd_people_daily_2.png new file mode 100644 index 0000000..caa4383 Binary files /dev/null and b/docs/images/cmd_people_daily_2.png differ diff --git a/docs/images/cmd_qrcode.png b/docs/images/cmd_qrcode.png new file mode 100644 index 0000000..37b423d Binary files /dev/null and b/docs/images/cmd_qrcode.png differ diff --git a/docs/images/cmd_today_in_history.png b/docs/images/cmd_today_in_history.png new file mode 100644 index 0000000..da70041 Binary files /dev/null and b/docs/images/cmd_today_in_history.png differ diff --git a/docs/images/cmd_todo_1.png b/docs/images/cmd_todo_1.png new file mode 100644 index 0000000..8c3a708 Binary files /dev/null and b/docs/images/cmd_todo_1.png differ diff --git a/docs/images/cmd_todo_2.png b/docs/images/cmd_todo_2.png new file mode 100644 index 0000000..8982fa7 Binary files /dev/null and b/docs/images/cmd_todo_2.png differ diff --git a/docs/images/cmd_todo_3.png b/docs/images/cmd_todo_3.png new file mode 100644 index 0000000..b3cc040 Binary files /dev/null and b/docs/images/cmd_todo_3.png differ diff --git a/docs/images/cmd_trivia.png b/docs/images/cmd_trivia.png new file mode 100644 index 0000000..c539ccc Binary files /dev/null and b/docs/images/cmd_trivia.png differ diff --git a/docs/images/cmd_weather.png b/docs/images/cmd_weather.png new file mode 100644 index 0000000..571f339 Binary files /dev/null and b/docs/images/cmd_weather.png differ diff --git a/docs/images/cmd_weibo_hot.png b/docs/images/cmd_weibo_hot.png new file mode 100644 index 0000000..edc8d6a Binary files /dev/null and b/docs/images/cmd_weibo_hot.png differ diff --git a/docs/images/cmd_word.png b/docs/images/cmd_word.png new file mode 100644 index 0000000..8e8aa97 Binary files /dev/null and b/docs/images/cmd_word.png differ diff --git a/docs/images/cmd_zhihu_hot.png b/docs/images/cmd_zhihu_hot.png new file mode 100644 index 0000000..ebe1eac Binary files /dev/null and b/docs/images/cmd_zhihu_hot.png differ diff --git a/docs/images/wechatter_show.png b/docs/images/wechatter_show.png new file mode 100644 index 0000000..3027845 Binary files /dev/null and b/docs/images/wechatter_show.png differ diff --git a/docs/images/wechatter_show2.png b/docs/images/wechatter_show2.png new file mode 100644 index 0000000..e228395 Binary files /dev/null and b/docs/images/wechatter_show2.png differ diff --git a/tests/commands/test_github_trending/test_github_trending.py b/tests/commands/test_github_trending/test_github_trending.py index 564840c..2cb8667 100644 --- a/tests/commands/test_github_trending/test_github_trending.py +++ b/tests/commands/test_github_trending/test_github_trending.py @@ -28,8 +28,8 @@ def test_parse_github_trending_response_failure(self): def test_generate_github_trending_message_success(self): result = gt._generate_github_trending_message(self.gt_list) - true_result = "1. 🏎️ danielmiessler / fabric\n⭐ 2,538 total (⭐1,139 today)\n🔤 Python\n📖 fabric is an open-source framework for augmenting humans using AI.\n2. 🏎️ InkboxSoftware / excelCPU\n⭐ 2,507 total (⭐337 today)\n🔤 Python\n📖 16-bit CPU for Excel, and related files\n3. 🏎️ f / awesome-chatgpt-prompts\n⭐ 98,933 total (⭐115 today)\n🔤 HTML\n📖 This repo includes ChatGPT prompt curation to use ChatGPT better.\n4. 🏎️ all-in-aigc / aicover\n⭐ 973 total (⭐205 today)\n🔤 TypeScript\n📖 ai cover generator\n5. 🏎️ facebookresearch / codellama\n⭐ 12,972 total (⭐197 today)\n🔤 Python\n📖 Inference code for CodeLlama models\n6. 🏎️ webprodigies / plura-production\n⭐ 315 total (⭐43 today)\n🔤 TypeScript\n📖 No description.\n7. 🏎️ ExOK / Celeste64\n⭐ 895 total (⭐170 today)\n🔤 C#\n📖 A game made by the Celeste developers in a week(ish, closer to 2)\n8. 🏎️ haotian-liu / LLaVA\n⭐ 13,169 total (⭐155 today)\n🔤 Python\n📖 [NeurIPS'23 Oral] Visual Instruction Tuning (LLaVA) built towards GPT-4V level capabilities and beyond.\n9. 🏎️ mlflow / mlflow\n⭐ 16,583 total (⭐127 today)\n🔤 Python\n📖 Open source platform for the machine learning lifecycle\n10. 🏎️ PKU-YuanGroup / MoE-LLaVA\n⭐ 689 total (⭐219 today)\n🔤 Python\n📖 Mixture-of-Experts for Large Vision-Language Models" - self.assertIn(true_result, result) + true_result = "✨=====GitHub Trending=====✨\n1.📦 danielmiessler / fabric\n ⭐ 2,538 total (⭐1,139 today)\n 🔤 Python\n 📖 fabric is an open-source framework for augmenting humans using AI.\n2.📦 InkboxSoftware / excelCPU\n ⭐ 2,507 total (⭐337 today)\n 🔤 Python\n 📖 16-bit CPU for Excel, and related files\n3.📦 f / awesome-chatgpt-prompts\n ⭐ 98,933 total (⭐115 today)\n 🔤 HTML\n 📖 This repo includes ChatGPT prompt curation to use ChatGPT better.\n4.📦 all-in-aigc / aicover\n ⭐ 973 total (⭐205 today)\n 🔤 TypeScript\n 📖 ai cover generator\n5.📦 facebookresearch / codellama\n ⭐ 12,972 total (⭐197 today)\n 🔤 Python\n 📖 Inference code for CodeLlama models\n6.📦 webprodigies / plura-production\n ⭐ 315 total (⭐43 today)\n 🔤 TypeScript\n 📖 No description.\n7.📦 ExOK / Celeste64\n ⭐ 895 total (⭐170 today)\n 🔤 C#\n 📖 A game made by the Celeste developers in a week(ish, closer to 2)\n8.📦 haotian-liu / LLaVA\n ⭐ 13,169 total (⭐155 today)\n 🔤 Python\n 📖 [NeurIPS'23 Oral] Visual Instruction Tuning (LLaVA) built towards GPT-4V level capabilities and beyond.\n9.📦 mlflow / mlflow\n ⭐ 16,583 total (⭐127 today)\n 🔤 Python\n 📖 Open source platform for the machine learning lifecycle\n10.📦 PKU-YuanGroup / MoE-LLaVA\n ⭐ 689 total (⭐219 today)\n 🔤 Python\n 📖 Mixture-of-Experts for Large Vision-Language Models\n" + self.assertEqual(result, true_result) def test_generate_zhihu_hot_message_empty_list(self): result = gt._generate_github_trending_message([]) diff --git a/wechatter/commands/_commands/github_trending.py b/wechatter/commands/_commands/github_trending.py index da28bd4..7d1fb1b 100644 --- a/wechatter/commands/_commands/github_trending.py +++ b/wechatter/commands/_commands/github_trending.py @@ -129,10 +129,10 @@ def _generate_github_trending_message(gt_list: List) -> str: gt_str = "✨=====GitHub Trending=====✨\n" for i, trending in enumerate(gt_list[:10]): # 只获取前10个趋势 gt_str += ( - f"{i + 1}. 🏎️ {trending['author']} / {trending['repo']}\n" - f"⭐ {trending['star_total']} total (⭐{trending['star_today']})\n" - f"🔤 {trending['programmingLanguage']}\n" - f"📖 {trending['comment']}\n" + f"{i + 1}.📦 {trending['author']} / {trending['repo']}\n" + f" ⭐ {trending['star_total']} total (⭐{trending['star_today']})\n" + f" 🔤 {trending['programmingLanguage']}\n" + f" 📖 {trending['comment']}\n" ) return gt_str