From 711663571b3df616cfb784eb816ff43d602e8eed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28ZhengCheng=29?= Date: Thu, 4 Dec 2025 15:28:23 +0800 Subject: [PATCH 001/126] Update README.md --- README.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/README.md b/README.md index 59497c9..0d3a2f8 100644 --- a/README.md +++ b/README.md @@ -21,6 +21,21 @@ ## 3. 项目列表 ### 2025 年 12 月 4 号添加 +#### Williams +* :white_check_mark: [AI Excel Translator](https://aiexceltranslator.com/):批量翻译 Excel 或 CSV 文档,支持 100+ 语言。 + +#### PlayerYK +* :white_check_mark: [SongGuru.AI](https://songguru.ai/):使用 AI 生成音乐、写歌词还可以分离音乐中的乐器和人声 + +#### ExtsBox +* :white_check_mark: [PromptGather](https://promptgather.io/):手工挑选的上千条视频、图片提示词,全部免费查看。可以直接复制使用,也可以用 AI 微调,生成图片、视频。 + +#### jzhone +* :white_check_mark: [CheckAIBots](https://checkaibots.com):CheckAIBots 能检测 40+ 个AI爬虫是否在爬你的网站,一键生成屏蔽代码(nginx/Apache/Cloudflare)并计算能省多少带宽费 + +#### JL +* :white_check_mark: [CSVtoAny](https://csvtoany.com/):CSV 格式万能转换,CSV 格式转化一站式解决方案 + #### 超能刚哥 - [Github](https://github.com/margox) * :white_check_mark: [随身小记](https://smartnote.chat/):随身记事AI助理,可记账、记事、记物,并以时间线形式展示;支持语音快速创建记录。 From 453aa512d345a392028787045301e8807ca0d22a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28ZhengCheng=29?= Date: Sat, 6 Dec 2025 00:18:36 +0800 Subject: [PATCH 002/126] Update README.md --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 0d3a2f8..8b83e49 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,10 @@ ## 3. 项目列表 +### 2025 年 12 月 6 号添加 +#### Victory - [Github](https://github.com/victorymakes) [Twitter](https://x.com/victorymakes) +* :white_check_mark: [launchsaas.org](https://launchsaas.org):最佳的 Next.js SaaS 模板,几个小时就能上线你的 SaaS 开始盈利 + ### 2025 年 12 月 4 号添加 #### Williams * :white_check_mark: [AI Excel Translator](https://aiexceltranslator.com/):批量翻译 Excel 或 CSV 文档,支持 100+ 语言。 From fa0e17276c5f5b68e20810b3f75dd7b03d611107 Mon Sep 17 00:00:00 2001 From: xibobo Date: Sun, 7 Dec 2025 15:03:26 +0800 Subject: [PATCH 003/126] Update README.md --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 8b83e49..5d8bced 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,10 @@ ## 3. 项目列表 +### 2025 年 12 月 7 号添加 +#### Victory - [Github](https://github.com/my19940202) [Twitter](https://x.com/xishengbo) +* :white_check_mark: [red-note.top](https://www.red-note.top/zh/create):基于人设,多个AI生成小红书笔记,助力自媒体IP搭建 + ### 2025 年 12 月 6 号添加 #### Victory - [Github](https://github.com/victorymakes) [Twitter](https://x.com/victorymakes) * :white_check_mark: [launchsaas.org](https://launchsaas.org):最佳的 Next.js SaaS 模板,几个小时就能上线你的 SaaS 开始盈利 From 27dd77229e70ba69a02f829e0d12c8644b745d31 Mon Sep 17 00:00:00 2001 From: xibobo Date: Sun, 7 Dec 2025 15:04:28 +0800 Subject: [PATCH 004/126] Update project name from Victory to Xibobo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5d8bced..24934b2 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ ## 3. 项目列表 ### 2025 年 12 月 7 号添加 -#### Victory - [Github](https://github.com/my19940202) [Twitter](https://x.com/xishengbo) +#### Xibobo - [Github](https://github.com/my19940202) [Twitter](https://x.com/xishengbo) * :white_check_mark: [red-note.top](https://www.red-note.top/zh/create):基于人设,多个AI生成小红书笔记,助力自媒体IP搭建 ### 2025 年 12 月 6 号添加 From 29a6040101146cd39ddf5b1f8815ca5e452d3594 Mon Sep 17 00:00:00 2001 From: xibobo Date: Sun, 7 Dec 2025 15:08:15 +0800 Subject: [PATCH 005/126] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 24934b2..5b555db 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ ### 2025 年 12 月 7 号添加 #### Xibobo - [Github](https://github.com/my19940202) [Twitter](https://x.com/xishengbo) -* :white_check_mark: [red-note.top](https://www.red-note.top/zh/create):基于人设,多个AI生成小红书笔记,助力自媒体IP搭建 +* :white_check_mark: [小红书笔记AI生成](https://www.red-note.top/zh/create):基于人设,使用多个AI生成小红书笔记,助力自媒体博主快速生成图文内容,提升个人IP搭建效率 ### 2025 年 12 月 6 号添加 #### Victory - [Github](https://github.com/victorymakes) [Twitter](https://x.com/victorymakes) From df56434de161e6ee6e72ac8374f1b0bfb9477bd7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28ZhengCheng=29?= Date: Sun, 7 Dec 2025 22:48:25 +0800 Subject: [PATCH 006/126] Update README.md --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index 5b555db..7db5abd 100644 --- a/README.md +++ b/README.md @@ -21,6 +21,12 @@ ## 3. 项目列表 ### 2025 年 12 月 7 号添加 +#### ALioooon(南京) +* :white_check_mark: [Address Generator](https://addressgen.top):随机地址生成工具(支持 40+ 国家/地区) — 随机生成结构化地址,适合测试/模拟注册/本地化展示 + +#### mztkn(深圳) +* :white_check_mark: [云文档查找工具](https://www.cloudocs.top/):分享云文档的平台。定位是纯粹的分享平台。除了直接使用网站,还可以打开微信小程序“云文档查找工具”,输入关键词,就能找到心仪的文档。内容平台丰富,涵盖飞书云文档、Notion、语雀、FlowUS、金山云文档、腾讯云文档等众多平台的公开云文档 + #### Xibobo - [Github](https://github.com/my19940202) [Twitter](https://x.com/xishengbo) * :white_check_mark: [小红书笔记AI生成](https://www.red-note.top/zh/create):基于人设,使用多个AI生成小红书笔记,助力自媒体博主快速生成图文内容,提升个人IP搭建效率 From e16a70b446cbff0f735867e6e1d81b959aa94aac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28ZhengCheng=29?= Date: Tue, 9 Dec 2025 10:13:55 +0800 Subject: [PATCH 007/126] Update README.md --- README.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/README.md b/README.md index 7db5abd..17cd652 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,16 @@ ## 3. 项目列表 +### 2025 年 12 月 9 号添加 +#### DeadWave(北京) - [Github](https://github.com/DeadWaveWave) +* :white_check_mark: [Demo2APK](https://demo2apk.lasuo.ai):把 Gemini 做的 Demo 一键打包成APK - [项目开源地址](https://github.com/DeadWaveWave/demo2apk) + +#### xbaicai0 - [Github](https://github.com/xbaicai0) +* :white_check_mark: [musci](https://musci.io/):AI 音乐生成,支持多语言 + +#### lkunxyz - [Github](https://github.com/lkunxyz) +* :white_check_mark: [videobackgroundremover](https://videobackgroundremover.io/):视频去背景 + ### 2025 年 12 月 7 号添加 #### ALioooon(南京) * :white_check_mark: [Address Generator](https://addressgen.top):随机地址生成工具(支持 40+ 国家/地区) — 随机生成结构化地址,适合测试/模拟注册/本地化展示 From 44df4285f9dd34af4a98a0e548cff3ed893f707f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28ZhengCheng=29?= Date: Tue, 9 Dec 2025 10:15:15 +0800 Subject: [PATCH 008/126] Update README-Game.md --- README-Game.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README-Game.md b/README-Game.md index e907fa4..64d7a99 100644 --- a/README-Game.md +++ b/README-Game.md @@ -2,6 +2,10 @@ 本版面放的都是游戏,起始于2025年1月4号 +### 2025 年 12 月 9 号添加 +#### shuiwuhen - [Github](https://github.com/290713469) +* :white_check_mark: [A.I.L.A Calculator](https://ailagame.com):Stream A.I.L.A 游戏工具网站 + ### 2025 年 11 月 26 号添加 #### Light(上海) * :white_check_mark: [Yes or No Wheel](https://yesornot.net/):Spin the Yes or No Wheel - Get Your Free & Instant Decision - Struggling with a decision? Spin our free Yes or No Wheel for an instant, random answer! It's the simple, fun, and fast way to eliminate hesitation. From 7ce205b87eba799d762139ba8f9bac8630d8de19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28ZhengCheng=29?= Date: Tue, 9 Dec 2025 20:21:34 +0800 Subject: [PATCH 009/126] Update README.md --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index 17cd652..50bb408 100644 --- a/README.md +++ b/README.md @@ -21,6 +21,12 @@ ## 3. 项目列表 ### 2025 年 12 月 9 号添加 +#### pillow(重庆) +* :white_check_mark: [AI Voice Cloning](https://aivoicecloning.net):AI 声音克隆 + +#### BOS1980 - [GitHub](https://github.com/BOS1980) +* :white_check_mark: [Humanizadordeia.app](https://humanizadordeia.app/):将AI文本转化为自然人类写作。1)人性化处理,让 AI 文本更自然、更贴近人工写作与品牌口吻;2)检测服务,帮助识别潜在 AI 生成内容,提升合规与质量。支持多语种、极速处理、保留语义与风格。免注册体验 300 字,适合博主、营销团队、跨境站点、教育与企业内容运营。以先进模型(GPT、Claude、Gemini 等)驱动。 + #### DeadWave(北京) - [Github](https://github.com/DeadWaveWave) * :white_check_mark: [Demo2APK](https://demo2apk.lasuo.ai):把 Gemini 做的 Demo 一键打包成APK - [项目开源地址](https://github.com/DeadWaveWave/demo2apk) From 4a0b1e613df6fc3d4e6d6612ddfdc4d225c7ad79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28ZhengCheng=29?= Date: Thu, 11 Dec 2025 10:43:45 +0800 Subject: [PATCH 010/126] Update README.md --- README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/README.md b/README.md index 50bb408..df801b8 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,14 @@ ## 3. 项目列表 +### 2025 年 12 月 11 号添加 +#### handsometong +* :white_check_mark: [Future Me AI](https://futuremeai.app/):专为儿童设计的 AI 职业肖像生成器。上传孩子照片,从 50+ 职业中选择,生成激发梦想的专业未来职业照片 +* :white_check_mark: [kirkify ai](https://kirkifyai.net/):将任意人脸变成 Kirkify 梗图 + +#### Leon(杭州) - [Github](https://github.com/fangweihao123) +* :white_check_mark: [LearnFlux](https://www.learnflux.net):AI 驱动的智能学习助手,为你生成个性化学习材料,让你以更少时间掌握更多知识。 + ### 2025 年 12 月 9 号添加 #### pillow(重庆) * :white_check_mark: [AI Voice Cloning](https://aivoicecloning.net):AI 声音克隆 From 843f51f911c3d295fca3abd6972cc7d611354580 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28ZhengCheng=29?= Date: Thu, 11 Dec 2025 10:44:57 +0800 Subject: [PATCH 011/126] Update README-Game.md --- README-Game.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README-Game.md b/README-Game.md index 64d7a99..1e0c0f8 100644 --- a/README-Game.md +++ b/README-Game.md @@ -2,6 +2,9 @@ 本版面放的都是游戏,起始于2025年1月4号 +### 2025 年 12 月 11 号添加 +* :white_check_mark: [No Means Nothing Calculator](https://nomeansnothing.com):Stream No Means Nothing 游戏工具网站 + ### 2025 年 12 月 9 号添加 #### shuiwuhen - [Github](https://github.com/290713469) * :white_check_mark: [A.I.L.A Calculator](https://ailagame.com):Stream A.I.L.A 游戏工具网站 From f4f698e8f2a3356d2da4ae5bc58edd8ef2fbebef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28ZhengCheng=29?= Date: Fri, 12 Dec 2025 21:06:38 +0800 Subject: [PATCH 012/126] Update README.md --- README.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/README.md b/README.md index df801b8..4e7f43c 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,22 @@ ## 3. 项目列表 +### 2025 年 12 月 12 号添加 +#### WtecHtec(s) - [Github](https://github.com/WtecHtec), [博客](https://wtechtec.com/) +:white_check_mark: [PassScan](https://xujingyichang.top/):简历分析工具(AI驱动),支持人岗匹配、多维度人才画像分析 + +#### xxk1323(郑州) +* :white_check_mark: [ImagineGo](https://imaginego.ai):视频和图像模型聚合站,目前上线 10+ 模型 + +#### Wcowin(重庆) - [Github](https://github.com/Wcowin), [博客](https://wcowin.work/) +* :white_check_mark: [OneClip](https://oneclip.cloud/):剪贴板管理工具(专为 macOS 设计),支持多种格式内容管理,智能搜索和分类,让您的复制粘贴操作更加便捷高效 - [更多介绍](https://wcowin.work/blog/OneClip/) + +#### Shawn(北京) - [Github](https://github.com/ShawnHacks) +* :white_check_mark: [Screentell](https://screentell.com):录屏工具(低门槛),可以满足 90 %以上的录屏 DEMO 需求,特色支持手绘风格贴纸 - [更多介绍](https://x.com/ShawnHacks/status/1996480396637446197) +* +#### biboom(广州) +* :white_check_mark: [transcriptinprogress](https://transcriptinprogress.online):使用 YouTube 字幕生成器将影片转为文字。 + ### 2025 年 12 月 11 号添加 #### handsometong * :white_check_mark: [Future Me AI](https://futuremeai.app/):专为儿童设计的 AI 职业肖像生成器。上传孩子照片,从 50+ 职业中选择,生成激发梦想的专业未来职业照片 From 166cedfd9f7787a4627b8ad6cdfa0fedbab01857 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28ZhengCheng=29?= Date: Fri, 12 Dec 2025 21:10:18 +0800 Subject: [PATCH 013/126] Update README.md --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 4e7f43c..e65ed51 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ ### 2025 年 12 月 12 号添加 #### WtecHtec(s) - [Github](https://github.com/WtecHtec), [博客](https://wtechtec.com/) -:white_check_mark: [PassScan](https://xujingyichang.top/):简历分析工具(AI驱动),支持人岗匹配、多维度人才画像分析 +- :white_check_mark: [PassScan](https://xujingyichang.top/):简历分析工具(AI驱动),支持人岗匹配、多维度人才画像分析 #### xxk1323(郑州) * :white_check_mark: [ImagineGo](https://imaginego.ai):视频和图像模型聚合站,目前上线 10+ 模型 @@ -32,9 +32,9 @@ #### Shawn(北京) - [Github](https://github.com/ShawnHacks) * :white_check_mark: [Screentell](https://screentell.com):录屏工具(低门槛),可以满足 90 %以上的录屏 DEMO 需求,特色支持手绘风格贴纸 - [更多介绍](https://x.com/ShawnHacks/status/1996480396637446197) -* + #### biboom(广州) -* :white_check_mark: [transcriptinprogress](https://transcriptinprogress.online):使用 YouTube 字幕生成器将影片转为文字。 +* :white_check_mark: [YouTube 字幕生成器](https://transcriptinprogress.online):将 Youtube 视频转为文字 ### 2025 年 12 月 11 号添加 #### handsometong From c5914b155ee5bf09401bf539ccd31907df925e1f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28ZhengCheng=29?= Date: Fri, 12 Dec 2025 23:03:50 +0800 Subject: [PATCH 014/126] Update README.md --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index e65ed51..d069861 100644 --- a/README.md +++ b/README.md @@ -21,6 +21,9 @@ ## 3. 项目列表 ### 2025 年 12 月 12 号添加 +#### Ri_vai(sz) +* :white_check_mark: [Nano Banana Pro](https://applebanana.pro/):AI 图片生成、图片编辑网站 + #### WtecHtec(s) - [Github](https://github.com/WtecHtec), [博客](https://wtechtec.com/) - :white_check_mark: [PassScan](https://xujingyichang.top/):简历分析工具(AI驱动),支持人岗匹配、多维度人才画像分析 From 0ae9f1ad9794767ab4579389e8da2439669837d0 Mon Sep 17 00:00:00 2001 From: Toby <166572436+DesignTobyZhang@users.noreply.github.com> Date: Sat, 13 Dec 2025 00:41:02 +0800 Subject: [PATCH 015/126] Update README.md --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index d069861..5d1df3a 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,10 @@ ## 3. 项目列表 +### 2025 年 12 月 13 号添加 +#### Toby(南京) +* :white_check_mark: [YoChanger](https://yochanger.com/):AI换装,在线试衣间 + ### 2025 年 12 月 12 号添加 #### Ri_vai(sz) * :white_check_mark: [Nano Banana Pro](https://applebanana.pro/):AI 图片生成、图片编辑网站 From b0fc444443806032dd382931d0ca9d912d091276 Mon Sep 17 00:00:00 2001 From: haosao12345 <644238567@qq.com> Date: Sat, 13 Dec 2025 16:34:20 +0800 Subject: [PATCH 016/126] Update README-Game.md with new game entries Added new games to the project list with descriptions. --- README-Game.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README-Game.md b/README-Game.md index 1e0c0f8..3ffed0c 100644 --- a/README-Game.md +++ b/README-Game.md @@ -2,6 +2,9 @@ 本版面放的都是游戏,起始于2025年1月4号 +### 2025 年 12 月 13 号添加 +* :white_check_mark: [Duck Duck Clicker](https://duckduckclicker.space/):如果你喜欢轻松的点击游戏,你应该试试Duck Duck Clicker。你只需轻点一只可爱的大鸭子,就可以建立自己的鸭子帝国——超级上瘾,而且有趣得令人惊讶。 + ### 2025 年 12 月 11 号添加 * :white_check_mark: [No Means Nothing Calculator](https://nomeansnothing.com):Stream No Means Nothing 游戏工具网站 From ed37f8e5721128396d2f614e3f1ecee5e4515a88 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28ZhengCheng=29?= Date: Sat, 13 Dec 2025 19:50:49 +0800 Subject: [PATCH 017/126] Update README.md --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 5d1df3a..3df29dc 100644 --- a/README.md +++ b/README.md @@ -21,6 +21,10 @@ ## 3. 项目列表 ### 2025 年 12 月 13 号添加 +#### Ivanvolt(wh) - [我的博客](https://ivanvolt.com) +* :white_check_mark: [Aluo AI](https://aluo.ai):AI 产品图生成与电商图片编辑工具 +* :white_check_mark: [AiDirs](https://aidirs.best):探索并分享最佳人工智能工具 + #### Toby(南京) * :white_check_mark: [YoChanger](https://yochanger.com/):AI换装,在线试衣间 From 04a1bff25ad810fc512b6d99b42419abc732cbc3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28ZhengCheng=29?= Date: Sat, 13 Dec 2025 19:51:53 +0800 Subject: [PATCH 018/126] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 3df29dc..d97ae94 100644 --- a/README.md +++ b/README.md @@ -21,12 +21,12 @@ ## 3. 项目列表 ### 2025 年 12 月 13 号添加 -#### Ivanvolt(wh) - [我的博客](https://ivanvolt.com) +#### Ivanvolt(wh) - [博客](https://ivanvolt.com) * :white_check_mark: [Aluo AI](https://aluo.ai):AI 产品图生成与电商图片编辑工具 * :white_check_mark: [AiDirs](https://aidirs.best):探索并分享最佳人工智能工具 #### Toby(南京) -* :white_check_mark: [YoChanger](https://yochanger.com/):AI换装,在线试衣间 +* :white_check_mark: [YoChanger](https://yochanger.com/):AI 换装,在线试衣间 ### 2025 年 12 月 12 号添加 #### Ri_vai(sz) From cee3f8b176f08f1bac03753c29e19ee264616e61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28ZhengCheng=29?= Date: Sun, 14 Dec 2025 09:07:58 +0800 Subject: [PATCH 019/126] Update README-Game.md --- README-Game.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README-Game.md b/README-Game.md index 3ffed0c..e2b4e33 100644 --- a/README-Game.md +++ b/README-Game.md @@ -2,6 +2,10 @@ 本版面放的都是游戏,起始于2025年1月4号 +### 2025 年 12 月 14 号添加 +#### seven(沈阳) +* :white_check_mark: [Pips game](https://pipsgame.dev/): 每日逻辑谜题,你通过纯推理放置多米诺骨牌——无需猜测(Pips Game is a daily logic puzzle where you place dominoes using pure deduction — no guessing) + ### 2025 年 12 月 13 号添加 * :white_check_mark: [Duck Duck Clicker](https://duckduckclicker.space/):如果你喜欢轻松的点击游戏,你应该试试Duck Duck Clicker。你只需轻点一只可爱的大鸭子,就可以建立自己的鸭子帝国——超级上瘾,而且有趣得令人惊讶。 From d6b762d31287892fd7054e8129571bac74985f06 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28ZhengCheng=29?= Date: Sun, 14 Dec 2025 09:20:23 +0800 Subject: [PATCH 020/126] Update README.md --- README.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/README.md b/README.md index d97ae94..b5bec29 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,16 @@ ## 3. 项目列表 +### 2025 年 12 月 14 号添加 +#### yuhanw496-sketch - [Github](https://github.com/yuhanw496-sketch) +* :white_check_mark: [YourGirlfriend.app](https://www.yourgirlfriend.app/):专注于对话与情感支持的 AI 伴侣,提供自然流畅的聊天体验,适合缓解压力或日常陪伴 +* :white_check_mark: [Hailuo AI](https://www.hailuoai.work/):无需剪辑软件,将创意快速转化为动画视频的 AI 内容生成工具,简化视频制作流程 +- :white_check_mark: [Nano Banana 2 AI](https://banananano2.ai/):支持角色一致性保持与多步工作流,兼顾速度与质量的 AI 图像生成工具,适合快速产出专业视觉内容 +* :white_check_mark: [Flux 2 AI](https://flux-2-ai.com/):无需注册即可生成 2K-4K 高清图像的 AI 绘画工具,支持多模型切换,适合快速创意验证与设计 + +#### seven(沈阳) +* :white_check_mark: [online eye test](https://eyetestonline.org/): 视力测试(免费)包括视力(visual acuity)、色觉(color)、对比度(contrast)和视野(field screening)筛查。 lets you take free online vision tests — including visual acuity, color, contrast, and field screening — right in your browser. + ### 2025 年 12 月 13 号添加 #### Ivanvolt(wh) - [博客](https://ivanvolt.com) * :white_check_mark: [Aluo AI](https://aluo.ai):AI 产品图生成与电商图片编辑工具 From f9e68ec01e4f8f51663a7d287e3183444f38e42f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28ZhengCheng=29?= Date: Sun, 14 Dec 2025 09:21:44 +0800 Subject: [PATCH 021/126] Update README.md --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index b5bec29..e90f2c0 100644 --- a/README.md +++ b/README.md @@ -22,13 +22,13 @@ ### 2025 年 12 月 14 号添加 #### yuhanw496-sketch - [Github](https://github.com/yuhanw496-sketch) -* :white_check_mark: [YourGirlfriend.app](https://www.yourgirlfriend.app/):专注于对话与情感支持的 AI 伴侣,提供自然流畅的聊天体验,适合缓解压力或日常陪伴 -* :white_check_mark: [Hailuo AI](https://www.hailuoai.work/):无需剪辑软件,将创意快速转化为动画视频的 AI 内容生成工具,简化视频制作流程 -- :white_check_mark: [Nano Banana 2 AI](https://banananano2.ai/):支持角色一致性保持与多步工作流,兼顾速度与质量的 AI 图像生成工具,适合快速产出专业视觉内容 -* :white_check_mark: [Flux 2 AI](https://flux-2-ai.com/):无需注册即可生成 2K-4K 高清图像的 AI 绘画工具,支持多模型切换,适合快速创意验证与设计 +* :white_check_mark: [YourGirlfriend.app](https://www.yourgirlfriend.app/):AI 伴侣(专注于对话与情感支持),提供自然流畅的聊天体验,适合缓解压力或日常陪伴 +* :white_check_mark: [Hailuo AI](https://www.hailuoai.work/):AI 内容生成工具,无需剪辑软件,将创意快速转化为动画视频,简化视频制作流程 +* :white_check_mark: [Nano Banana 2 AI](https://banananano2.ai/):AI 图像生成工具(支持角色一致性保持与多步工作流,兼顾速度与质量),适合快速产出专业视觉内容 +* :white_check_mark: [Flux 2 AI](https://flux-2-ai.com/):AI 绘画工具(无需注册即可生成 2K-4K 高清图像),支持多模型切换,适合快速创意验证与设计 #### seven(沈阳) -* :white_check_mark: [online eye test](https://eyetestonline.org/): 视力测试(免费)包括视力(visual acuity)、色觉(color)、对比度(contrast)和视野(field screening)筛查。 lets you take free online vision tests — including visual acuity, color, contrast, and field screening — right in your browser. +* :white_check_mark: [online eye test](https://eyetestonline.org/): 视力测试(免费)包括视力(visual acuity)、色觉(color)、对比度(contrast)和视野(field screening)筛查 ### 2025 年 12 月 13 号添加 #### Ivanvolt(wh) - [博客](https://ivanvolt.com) From 0f90f4e272825727730603196d1891fdc41f3ca3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28ZhengCheng=29?= Date: Sun, 14 Dec 2025 09:22:32 +0800 Subject: [PATCH 022/126] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e90f2c0..af60ede 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@ * :white_check_mark: [Flux 2 AI](https://flux-2-ai.com/):AI 绘画工具(无需注册即可生成 2K-4K 高清图像),支持多模型切换,适合快速创意验证与设计 #### seven(沈阳) -* :white_check_mark: [online eye test](https://eyetestonline.org/): 视力测试(免费)包括视力(visual acuity)、色觉(color)、对比度(contrast)和视野(field screening)筛查 +* :white_check_mark: [视力测试](https://eyetestonline.org/): 视力测试(免费)包括视力(visual acuity)、色觉(color)、对比度(contrast)和视野(field screening)筛查 ### 2025 年 12 月 13 号添加 #### Ivanvolt(wh) - [博客](https://ivanvolt.com) From c58e141be252584cd826a3d8c1bfc22dd6f6b780 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=9A=E5=96=9D=E7=83=AD=E6=B0=B4?= <54731221+acmenlei@users.noreply.github.com> Date: Mon, 15 Dec 2025 17:18:23 +0800 Subject: [PATCH 023/126] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=89=9B=E7=AC=94AI?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index af60ede..d46dffa 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,10 @@ ## 3. 项目列表 +### 2025 年 12 月 15 号添加 +#### coderlei - [Github](https://github.com/acmenlei) +* :white_check_mark: [牛笔AI - 微信公众号排版工具_在线图文排版神器](https://niubi.codecvcv.com):基于 Markdown 和所见即所得编辑模式,提供精美主题样式,一键美化公众号文章排版、导出图文卡片,只需要编写一份内容就可以得到文章内容和图文卡片,免费使用 + ### 2025 年 12 月 14 号添加 #### yuhanw496-sketch - [Github](https://github.com/yuhanw496-sketch) * :white_check_mark: [YourGirlfriend.app](https://www.yourgirlfriend.app/):AI 伴侣(专注于对话与情感支持),提供自然流畅的聊天体验,适合缓解压力或日常陪伴 From 9a248981698a7394fb9b176df28d7d92a3ff88f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28ZhengCheng=29?= Date: Mon, 15 Dec 2025 20:39:39 +0800 Subject: [PATCH 024/126] Update README.md --- README.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/README.md b/README.md index d46dffa..255ac7d 100644 --- a/README.md +++ b/README.md @@ -24,6 +24,20 @@ #### coderlei - [Github](https://github.com/acmenlei) * :white_check_mark: [牛笔AI - 微信公众号排版工具_在线图文排版神器](https://niubi.codecvcv.com):基于 Markdown 和所见即所得编辑模式,提供精美主题样式,一键美化公众号文章排版、导出图文卡片,只需要编写一份内容就可以得到文章内容和图文卡片,免费使用 +#### august - [github](https://github.com/august-xu) +* :white_check_mark: [Dunk Calculator](https://www.dunkcalculator.online/):Dunk Calculator - How High Do You Need to Jump to Dunk? +* :white_check_mark: [Tbsp to Cups Converter](https://tbsptocups.com/):Tablespoons to Cups Converter [Chart + Printable PDF] + +#### RickyLee +* :white_check_mark: [TankMate AI](https://tankmate.org/?utm_source=github):即时查询您的鱼能否混养。TankMate AI 分析攻击性、pH 值和鱼缸尺寸,帮您规避混养风险 + +#### AppScreenshots +* :white_check_mark: [AppScreenshots](https://appscreenshots.net/):为iOS、Android、Chrome、HarmonyOS等平台生成应用商店截图,支持3D设备展示和AI驱动的Mockup创建工具 + +#### yvonuk - [推特](https://x.com/mcwangcn) +* :white_check_mark: [极简AI生图](https://image.stockai.trade):完全免费、免登录、无广告、无水印的AI生图网站 + + ### 2025 年 12 月 14 号添加 #### yuhanw496-sketch - [Github](https://github.com/yuhanw496-sketch) * :white_check_mark: [YourGirlfriend.app](https://www.yourgirlfriend.app/):AI 伴侣(专注于对话与情感支持),提供自然流畅的聊天体验,适合缓解压力或日常陪伴 From b57df10483cf47d9969d049368a2c9f7c5994f92 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28ZhengCheng=29?= Date: Mon, 15 Dec 2025 20:41:37 +0800 Subject: [PATCH 025/126] Update README.md --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 255ac7d..5c73662 100644 --- a/README.md +++ b/README.md @@ -29,13 +29,13 @@ * :white_check_mark: [Tbsp to Cups Converter](https://tbsptocups.com/):Tablespoons to Cups Converter [Chart + Printable PDF] #### RickyLee -* :white_check_mark: [TankMate AI](https://tankmate.org/?utm_source=github):即时查询您的鱼能否混养。TankMate AI 分析攻击性、pH 值和鱼缸尺寸,帮您规避混养风险 +* :white_check_mark: [TankMate AI](https://tankmate.org/?utm_source=github):查询鱼能否混养。分析攻击性、pH 值和鱼缸尺寸,帮您规避混养风险 #### AppScreenshots -* :white_check_mark: [AppScreenshots](https://appscreenshots.net/):为iOS、Android、Chrome、HarmonyOS等平台生成应用商店截图,支持3D设备展示和AI驱动的Mockup创建工具 +* :white_check_mark: [AppScreenshots](https://appscreenshots.net/):生成应用商店截图,支持 iOS、Android、Chrome、HarmonyOS 等平台,支持 3D 设备展示和 AI 驱动的 Mockup 创建工具 #### yvonuk - [推特](https://x.com/mcwangcn) -* :white_check_mark: [极简AI生图](https://image.stockai.trade):完全免费、免登录、无广告、无水印的AI生图网站 +* :white_check_mark: [极简AI生图](https://image.stockai.trade):AI 生图网站,完全免费、免登录、无广告、无水印 ### 2025 年 12 月 14 号添加 From 35cda28bf1eeac3fc0e5ba1b67490a27c2b0999a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28ZhengCheng=29?= Date: Tue, 16 Dec 2025 14:26:28 +0800 Subject: [PATCH 026/126] Update README.md --- README.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/README.md b/README.md index 5c73662..ae994a1 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,16 @@ ## 3. 项目列表 +### 2025 年 12 月 16 号添加 +#### Nico - [Github](https://github.com/yijianbo) +:white_check_mark: [News In Simple](https://newsinsimple.com/):基于 AI 的英语学习新闻网站,提供初、中、高三级分级新闻及配套阅读、听力、词汇和测验素材 + +#### Dakuai - [GitHub](https://github.com/YananLee?tab=repositories) +* :white_check_mark: [Word Cloud Art](http://www.wordcloud.art/):词云生成器,支持AI词生成2k+模版丰富的颜色搭配方案 + +#### weiqingtangx - [GitHub](https://github.com/weiqingtangx) +* :white_check_mark: [LRC Generator](https://www.quicklrc.com/): 生成 LRC、SRT、TTML、WEBVTT 和 ASS 等字幕格式的网站,支持行级和词级时间戳。生成的字幕文件可用于音乐播放器、视频编辑器和主流流媒体播放器 + ### 2025 年 12 月 15 号添加 #### coderlei - [Github](https://github.com/acmenlei) * :white_check_mark: [牛笔AI - 微信公众号排版工具_在线图文排版神器](https://niubi.codecvcv.com):基于 Markdown 和所见即所得编辑模式,提供精美主题样式,一键美化公众号文章排版、导出图文卡片,只需要编写一份内容就可以得到文章内容和图文卡片,免费使用 From 0c00befcffee2bd26f74fc0c3c1c7cd979da84ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28ZhengCheng=29?= Date: Tue, 16 Dec 2025 14:27:11 +0800 Subject: [PATCH 027/126] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ae994a1..0f34eec 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ ### 2025 年 12 月 16 号添加 #### Nico - [Github](https://github.com/yijianbo) -:white_check_mark: [News In Simple](https://newsinsimple.com/):基于 AI 的英语学习新闻网站,提供初、中、高三级分级新闻及配套阅读、听力、词汇和测验素材 +* :white_check_mark: [News In Simple](https://newsinsimple.com/):基于 AI 的英语学习新闻网站,提供初、中、高三级分级新闻及配套阅读、听力、词汇和测验素材 #### Dakuai - [GitHub](https://github.com/YananLee?tab=repositories) * :white_check_mark: [Word Cloud Art](http://www.wordcloud.art/):词云生成器,支持AI词生成2k+模版丰富的颜色搭配方案 From 00cd821bd0a6252c48f00424fa012f1e59d1b9c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28ZhengCheng=29?= Date: Tue, 16 Dec 2025 17:22:33 +0800 Subject: [PATCH 028/126] Update README.md --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 0f34eec..78c0567 100644 --- a/README.md +++ b/README.md @@ -21,6 +21,9 @@ ## 3. 项目列表 ### 2025 年 12 月 16 号添加 +#### Brian Chan +* :white_check_mark: [logo87.com](https://logo87.com):几秒钟创建专业的 favicon + #### Nico - [Github](https://github.com/yijianbo) * :white_check_mark: [News In Simple](https://newsinsimple.com/):基于 AI 的英语学习新闻网站,提供初、中、高三级分级新闻及配套阅读、听力、词汇和测验素材 From d153f3ab9cd5617597e2669b7120e9caedfcee7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28ZhengCheng=29?= Date: Thu, 18 Dec 2025 16:58:06 +0800 Subject: [PATCH 029/126] Update README.md --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 78c0567..323049a 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,10 @@ ## 3. 项目列表 +### 2025 年 12 月 18 号添加 +#### jonbrown66 - [Github](https://github.com/jonbrown66/bananacanvas-ai) +* :white_check_mark: [BananaCanvas AI](https://bananacanvas-ai.vercel.app/): 前沿的创意工作区,结合了基于对话的 AI 交互和无限画布,用于多模态内容创作。 + ### 2025 年 12 月 16 号添加 #### Brian Chan * :white_check_mark: [logo87.com](https://logo87.com):几秒钟创建专业的 favicon From ea59f2cbf876721fe27c4bbce9d29b1d4431f4a7 Mon Sep 17 00:00:00 2001 From: Cheng Zheng Date: Sat, 20 Dec 2025 12:40:43 +0800 Subject: [PATCH 030/126] doc --- .github/README.md | 15 ++++ .github/scripts/process_item.py | 120 +++++++++++++++++++++++++++++ .github/workflows/process_list.yml | 29 +++++++ 3 files changed, 164 insertions(+) create mode 100644 .github/README.md create mode 100644 .github/scripts/process_item.py create mode 100644 .github/workflows/process_list.yml diff --git a/.github/README.md b/.github/README.md new file mode 100644 index 0000000..c16400d --- /dev/null +++ b/.github/README.md @@ -0,0 +1,15 @@ +## `.github/` 的文档 + +## 需求(想做到什么?) +我希望将 "用户提交产品"(新增一条 Github Issue 的 Comment) +到 "存入 .md 文件",这个流程进行自动化。减少我的时间投入。 + +## 如何本地运行 +```bash +export GITHUB_TOKEN="你的_github_token" +export LLM_API_KEY="你的_ai_key" +export GITHUB_REPOSITORY="你的用户名/你的仓库名" + +python .github/scripts/process_item.py +``` + diff --git a/.github/scripts/process_item.py b/.github/scripts/process_item.py new file mode 100644 index 0000000..32a9050 --- /dev/null +++ b/.github/scripts/process_item.py @@ -0,0 +1,120 @@ +import os +import datetime +from github import Github # https://github.com/PyGithub/PyGithub +from openai import OpenAI +from datetime import datetime, timedelta, timezone + + +# ================= 配置区 ================= +GITHUB_TOKEN = os.getenv("GITHUB_TOKEN") +API_KEY = os.getenv("LLM_API_KEY") +BASE_URL = os.getenv("LLM_BASE_URL", "https://api.openai.com/v1") +REPO_NAME = "1c7/chinese-independent-developer" # os.getenv("GITHUB_REPOSITORY") +ISSUE_NUMBER = 160 # 你在维护的那个 Issue 编号 +ADMIN_HANDLE = "1c7" # 替换为你的 GitHub ID +TRIGGER_EMOJI = "rocket" # 🚀 +SUCCESS_EMOJI = "white_check_mark" # ✅ +# ========================================== + +def get_ai_format(raw_text): + client = OpenAI(api_key=API_KEY, base_url=BASE_URL) + prompt = f""" +你是一个严格的文案编辑。任务是将用户的项目介绍转换为标准的 Markdown 格式。 + +严格规则: +1. 严禁使用“一款、一个、一种、完全免费、高效、简洁、强大、快速、好用”等营销形容词。 +2. 描述部分必须以“用途”或“核心功能”作为动词开头,直接描述它是什么。 +3. 严禁使用加粗格式(即不要使用 ** 包裹文字)。 +4. 格式模板: +#### 制作者名字 - [Github](链接) +* :white_check_mark: [项目名](链接):用途描述 + +待处理文本: +{raw_text} +""" + response = client.chat.completions.create( + model="gpt-4o-mini", # 或者使用 deepseek-chat + messages=[{"role": "user", "content": prompt}], + temperature=0.3 + ) + return response.choices[0].message.content.strip() + +def main(): + g = Github(GITHUB_TOKEN) + repo = g.get_repo(REPO_NAME) + issue = repo.get_issue(ISSUE_NUMBER) + + # 计算 3 天前的时间(GitHub API 使用的是 UTC 时间) + time_threshold = datetime.now(timezone.utc) - timedelta(days=3) + + # 如果你一定要死守 2025-12-15,也可以手动指定: + # time_threshold = datetime(2025, 12, 15, tzinfo=timezone.utc) + + # 重点:在这里加上 since 参数 + comments = issue.get_comments(since=time_threshold) + + processed_count = 0 + + for comment in comments: + # 1. 检查是否有你的 🚀 反应 + reactions = comment.get_reactions() + has_trigger = any(r.content == TRIGGER_EMOJI and r.user.login == ADMIN_HANDLE for r in reactions) + # 2. 检查是否已经标记过 ✅ + has_success = any(r.content == SUCCESS_EMOJI for r in reactions) + + if has_trigger and not has_success: + print(f"发现待处理评论 ID: {comment.id}") + + # AI 格式化内容 + formatted_entry = get_ai_format(comment.body) + + # 准备修改 README.md + content = repo.get_contents("README.md", ref="master") + readme_text = content.decoded_content.decode("utf-8") + + # 插入日期逻辑 + today_str = datetime.datetime.now().strftime("%Y 年 %m 月 %d 号添加") + date_header = f"### {today_str}" + + if date_header not in readme_text: + # 在 "3. 项目列表" 下方插入新日期 + new_readme = readme_text.replace("3. 项目列表\n", f"3. 项目列表\n\n{date_header}\n") + else: + new_readme = readme_text + + # 在日期标题下插入新条目 + insertion_point = new_readme.find(date_header) + len(date_header) + final_readme = new_readme[:insertion_point] + "\n\n" + formatted_entry + new_readme[insertion_point:] + + # 创建新分支并提交 PR + branch_name = f"add-project-{comment.id}" + base = repo.get_branch("master") + repo.create_git_ref(ref=f"refs/heads/{branch_name}", sha=base.commit.sha) + + repo.update_file( + "README.md", + f"docs: add new project from comment {comment.id}", + final_readme, + content.sha, + branch=branch_name + ) + + repo.create_pull( + title=f"新增项目:来自评论 {comment.id}", + body=f"由管理员 {ADMIN_HANDLE} 标记并自动生成。\n原始评论:{comment.html_url}", + head=branch_name, + base="master" + ) + + # 标记为成功,并回复 + comment.create_reaction(SUCCESS_EMOJI) + comment.create_comment("感谢提交,已添加至待审核列表(PR 已创建)。") + + processed_count += 1 + print(f"评论 {comment.id} 处理成功,已创建 PR。") + + if processed_count == 0: + print("没有发现需要处理的新评论。") + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/.github/workflows/process_list.yml b/.github/workflows/process_list.yml new file mode 100644 index 0000000..1988ecc --- /dev/null +++ b/.github/workflows/process_list.yml @@ -0,0 +1,29 @@ +name: 提交项目 +on: + schedule: + - cron: '0 */6 * * *' # 每 6 小时运行一次 + workflow_dispatch: # 支持手动触发 + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v6.0.1 + + - name: Setup Python + uses: actions/setup-python@v6.1.0 + with: + python-version: '3.13' + + - name: Install dependencies + run: | + pip install PyGithub openai + + - name: Run script + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + LLM_API_KEY: ${{ secrets.LLM_API_KEY }} + # 如果你用的不是 OpenAI 原生接口,可以设置这个环境变量,否则默认使用 OpenAI + # LLM_BASE_URL: "https://api.deepseek.com/v1" + run: python .github/scripts/process_item.py \ No newline at end of file From 6d9da8e78af274eb4a81473fcf79de4eb848acf0 Mon Sep 17 00:00:00 2001 From: Cheng Zheng Date: Sat, 20 Dec 2025 12:41:51 +0800 Subject: [PATCH 031/126] github action --- .github/workflows/process_list.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/process_list.yml b/.github/workflows/process_list.yml index 1988ecc..bd3a5a3 100644 --- a/.github/workflows/process_list.yml +++ b/.github/workflows/process_list.yml @@ -1,7 +1,7 @@ name: 提交项目 on: - schedule: - - cron: '0 */6 * * *' # 每 6 小时运行一次 + # schedule: + # - cron: '0 */6 * * *' # 每 6 小时运行一次 workflow_dispatch: # 支持手动触发 jobs: From feaa1e575dd42ef29094705f7145059b3530ee1e Mon Sep 17 00:00:00 2001 From: Cheng Zheng Date: Sat, 20 Dec 2025 13:24:28 +0800 Subject: [PATCH 032/126] =?UTF-8?q?=E8=87=AA=E5=8A=A8=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.example | 3 + .github/README.md | 30 +- .github/scripts/process_item.py | 27 +- .github/workflows/process_list.yml | 2 +- .gitignore | 1 + pyproject.toml | 11 + uv.lock | 550 +++++++++++++++++++++++++++++ 7 files changed, 604 insertions(+), 20 deletions(-) create mode 100644 .env.example create mode 100644 .gitignore create mode 100644 pyproject.toml create mode 100644 uv.lock diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..7a99661 --- /dev/null +++ b/.env.example @@ -0,0 +1,3 @@ +GITHUB_TOKEN="github_pat_*" +LLM_API_KEY="sk-*" +LLM_BASE_URL="https://api.deepseek.com" diff --git a/.github/README.md b/.github/README.md index c16400d..46c608a 100644 --- a/.github/README.md +++ b/.github/README.md @@ -1,15 +1,29 @@ ## `.github/` 的文档 -## 需求(想做到什么?) -我希望将 "用户提交产品"(新增一条 Github Issue 的 Comment) -到 "存入 .md 文件",这个流程进行自动化。减少我的时间投入。 +## 概括 +用户在 https://github.com/1c7/chinese-independent-developer/issues/160 提交评论。 +大部分情况下,格式是不符合规范的(可以理解) +需要用程序自动化处理,减少我的时间投入。 -## 如何本地运行 +## 流程 +1. 我在用户提交的评论点击 🚀 图标(表情) +1. 触发 Github Action 执行(手动触发 或 定时执行(每 6 小时) +1. Github Action 会触发 .github/scripts/process_item.py +2. 查找 "当前日期-3天" 开始(这个时间点往后) 所有标记 🚀 图标 的评论 +3. 处理格式,创建 Pull Request。 +4. 给评论新增一个 🎉 图标(意思是"处理完成") +7. 回复这条评论:感谢提交,已添加。 + +我只需要修改 PR 然后 merge 就行。 + +一句话概括:我点击 🚀 标签,然后 PR 会自动创建,我只需要 merge PR。我大概点击 3 次左右就可以了(如果介绍语有改进空间,我还得改一下文字,然后才 merge) + +## 本地运行(为了开发调试) ```bash -export GITHUB_TOKEN="你的_github_token" -export LLM_API_KEY="你的_ai_key" -export GITHUB_REPOSITORY="你的用户名/你的仓库名" +cp .env.example .env -python .github/scripts/process_item.py +uv sync + +uv run .github/scripts/process_item.py ``` diff --git a/.github/scripts/process_item.py b/.github/scripts/process_item.py index 32a9050..8466ca5 100644 --- a/.github/scripts/process_item.py +++ b/.github/scripts/process_item.py @@ -13,7 +13,7 @@ REPO_NAME = "1c7/chinese-independent-developer" # os.getenv("GITHUB_REPOSITORY") ISSUE_NUMBER = 160 # 你在维护的那个 Issue 编号 ADMIN_HANDLE = "1c7" # 替换为你的 GitHub ID TRIGGER_EMOJI = "rocket" # 🚀 -SUCCESS_EMOJI = "white_check_mark" # ✅ +SUCCESS_EMOJI = "hooray" # 🎉 # ========================================== def get_ai_format(raw_text): @@ -21,10 +21,6 @@ def get_ai_format(raw_text): prompt = f""" 你是一个严格的文案编辑。任务是将用户的项目介绍转换为标准的 Markdown 格式。 -严格规则: -1. 严禁使用“一款、一个、一种、完全免费、高效、简洁、强大、快速、好用”等营销形容词。 -2. 描述部分必须以“用途”或“核心功能”作为动词开头,直接描述它是什么。 -3. 严禁使用加粗格式(即不要使用 ** 包裹文字)。 4. 格式模板: #### 制作者名字 - [Github](链接) * :white_check_mark: [项目名](链接):用途描述 @@ -33,7 +29,7 @@ def get_ai_format(raw_text): {raw_text} """ response = client.chat.completions.create( - model="gpt-4o-mini", # 或者使用 deepseek-chat + model="deepseek-reasoner", # 或者使用 deepseek-chat messages=[{"role": "user", "content": prompt}], temperature=0.3 ) @@ -59,7 +55,7 @@ def main(): # 1. 检查是否有你的 🚀 反应 reactions = comment.get_reactions() has_trigger = any(r.content == TRIGGER_EMOJI and r.user.login == ADMIN_HANDLE for r in reactions) - # 2. 检查是否已经标记过 ✅ + # 2. 检查是否已经标记过成功 🎉 has_success = any(r.content == SUCCESS_EMOJI for r in reactions) if has_trigger and not has_success: @@ -73,7 +69,7 @@ def main(): readme_text = content.decoded_content.decode("utf-8") # 插入日期逻辑 - today_str = datetime.datetime.now().strftime("%Y 年 %m 月 %d 号添加") + today_str = datetime.now().strftime("%Y 年 %m 月 %d 号添加") date_header = f"### {today_str}" if date_header not in readme_text: @@ -89,6 +85,15 @@ def main(): # 创建新分支并提交 PR branch_name = f"add-project-{comment.id}" base = repo.get_branch("master") + + # 检查分支是否已存在,如果存在则删除 + try: + existing_ref = repo.get_git_ref(f"heads/{branch_name}") + existing_ref.delete() + print(f"已删除现有分支: {branch_name}") + except: + pass # 分支不存在,继续 + repo.create_git_ref(ref=f"refs/heads/{branch_name}", sha=base.commit.sha) repo.update_file( @@ -99,16 +104,16 @@ def main(): branch=branch_name ) - repo.create_pull( + pr = repo.create_pull( title=f"新增项目:来自评论 {comment.id}", body=f"由管理员 {ADMIN_HANDLE} 标记并自动生成。\n原始评论:{comment.html_url}", head=branch_name, base="master" ) - # 标记为成功,并回复 + # 用表情标记为成功,并回复 comment.create_reaction(SUCCESS_EMOJI) - comment.create_comment("感谢提交,已添加至待审核列表(PR 已创建)。") + # comment.create_comment(f"感谢提交,已添加!\n\nPR 链接:{pr.html_url}") processed_count += 1 print(f"评论 {comment.id} 处理成功,已创建 PR。") diff --git a/.github/workflows/process_list.yml b/.github/workflows/process_list.yml index bd3a5a3..c885caa 100644 --- a/.github/workflows/process_list.yml +++ b/.github/workflows/process_list.yml @@ -25,5 +25,5 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} LLM_API_KEY: ${{ secrets.LLM_API_KEY }} # 如果你用的不是 OpenAI 原生接口,可以设置这个环境变量,否则默认使用 OpenAI - # LLM_BASE_URL: "https://api.deepseek.com/v1" + LLM_BASE_URL: "https://api.deepseek.com" run: python .github/scripts/process_item.py \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2eea525 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.env \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..2d5805f --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,11 @@ +[project] +name = "chinese-independent-developer" +version = "0.1.0" +description = "Add your description here" +readme = "README.md" +requires-python = ">=3.13" +dependencies = [ + "httpx[socks]>=0.28.1", + "openai>=2.14.0", + "pygithub>=2.8.1", +] diff --git a/uv.lock b/uv.lock new file mode 100644 index 0000000..7db848a --- /dev/null +++ b/uv.lock @@ -0,0 +1,550 @@ +version = 1 +revision = 3 +requires-python = ">=3.13" + +[[package]] +name = "annotated-types" +version = "0.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ee/67/531ea369ba64dcff5ec9c3402f9f51bf748cec26dde048a2f973a4eea7f5/annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89", size = 16081, upload-time = "2024-05-20T21:33:25.928Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53", size = 13643, upload-time = "2024-05-20T21:33:24.1Z" }, +] + +[[package]] +name = "anyio" +version = "4.12.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "idna" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/16/ce/8a777047513153587e5434fd752e89334ac33e379aa3497db860eeb60377/anyio-4.12.0.tar.gz", hash = "sha256:73c693b567b0c55130c104d0b43a9baf3aa6a31fc6110116509f27bf75e21ec0", size = 228266, upload-time = "2025-11-28T23:37:38.911Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7f/9c/36c5c37947ebfb8c7f22e0eb6e4d188ee2d53aa3880f3f2744fb894f0cb1/anyio-4.12.0-py3-none-any.whl", hash = "sha256:dad2376a628f98eeca4881fc56cd06affd18f659b17a747d3ff0307ced94b1bb", size = 113362, upload-time = "2025-11-28T23:36:57.897Z" }, +] + +[[package]] +name = "certifi" +version = "2025.11.12" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a2/8c/58f469717fa48465e4a50c014a0400602d3c437d7c0c468e17ada824da3a/certifi-2025.11.12.tar.gz", hash = "sha256:d8ab5478f2ecd78af242878415affce761ca6bc54a22a27e026d7c25357c3316", size = 160538, upload-time = "2025-11-12T02:54:51.517Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/70/7d/9bc192684cea499815ff478dfcdc13835ddf401365057044fb721ec6bddb/certifi-2025.11.12-py3-none-any.whl", hash = "sha256:97de8790030bbd5c2d96b7ec782fc2f7820ef8dba6db909ccf95449f2d062d4b", size = 159438, upload-time = "2025-11-12T02:54:49.735Z" }, +] + +[[package]] +name = "cffi" +version = "2.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pycparser", marker = "implementation_name != 'PyPy'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/eb/56/b1ba7935a17738ae8453301356628e8147c79dbb825bcbc73dc7401f9846/cffi-2.0.0.tar.gz", hash = "sha256:44d1b5909021139fe36001ae048dbdde8214afa20200eda0f64c068cac5d5529", size = 523588, upload-time = "2025-09-08T23:24:04.541Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4b/8d/a0a47a0c9e413a658623d014e91e74a50cdd2c423f7ccfd44086ef767f90/cffi-2.0.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:00bdf7acc5f795150faa6957054fbbca2439db2f775ce831222b66f192f03beb", size = 185230, upload-time = "2025-09-08T23:23:00.879Z" }, + { url = "https://files.pythonhosted.org/packages/4a/d2/a6c0296814556c68ee32009d9c2ad4f85f2707cdecfd7727951ec228005d/cffi-2.0.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:45d5e886156860dc35862657e1494b9bae8dfa63bf56796f2fb56e1679fc0bca", size = 181043, upload-time = "2025-09-08T23:23:02.231Z" }, + { url = "https://files.pythonhosted.org/packages/b0/1e/d22cc63332bd59b06481ceaac49d6c507598642e2230f201649058a7e704/cffi-2.0.0-cp313-cp313-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:07b271772c100085dd28b74fa0cd81c8fb1a3ba18b21e03d7c27f3436a10606b", size = 212446, upload-time = "2025-09-08T23:23:03.472Z" }, + { url = "https://files.pythonhosted.org/packages/a9/f5/a2c23eb03b61a0b8747f211eb716446c826ad66818ddc7810cc2cc19b3f2/cffi-2.0.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d48a880098c96020b02d5a1f7d9251308510ce8858940e6fa99ece33f610838b", size = 220101, upload-time = "2025-09-08T23:23:04.792Z" }, + { url = "https://files.pythonhosted.org/packages/f2/7f/e6647792fc5850d634695bc0e6ab4111ae88e89981d35ac269956605feba/cffi-2.0.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:f93fd8e5c8c0a4aa1f424d6173f14a892044054871c771f8566e4008eaa359d2", size = 207948, upload-time = "2025-09-08T23:23:06.127Z" }, + { url = "https://files.pythonhosted.org/packages/cb/1e/a5a1bd6f1fb30f22573f76533de12a00bf274abcdc55c8edab639078abb6/cffi-2.0.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:dd4f05f54a52fb558f1ba9f528228066954fee3ebe629fc1660d874d040ae5a3", size = 206422, upload-time = "2025-09-08T23:23:07.753Z" }, + { url = "https://files.pythonhosted.org/packages/98/df/0a1755e750013a2081e863e7cd37e0cdd02664372c754e5560099eb7aa44/cffi-2.0.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c8d3b5532fc71b7a77c09192b4a5a200ea992702734a2e9279a37f2478236f26", size = 219499, upload-time = "2025-09-08T23:23:09.648Z" }, + { url = "https://files.pythonhosted.org/packages/50/e1/a969e687fcf9ea58e6e2a928ad5e2dd88cc12f6f0ab477e9971f2309b57c/cffi-2.0.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:d9b29c1f0ae438d5ee9acb31cadee00a58c46cc9c0b2f9038c6b0b3470877a8c", size = 222928, upload-time = "2025-09-08T23:23:10.928Z" }, + { url = "https://files.pythonhosted.org/packages/36/54/0362578dd2c9e557a28ac77698ed67323ed5b9775ca9d3fe73fe191bb5d8/cffi-2.0.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6d50360be4546678fc1b79ffe7a66265e28667840010348dd69a314145807a1b", size = 221302, upload-time = "2025-09-08T23:23:12.42Z" }, + { url = "https://files.pythonhosted.org/packages/eb/6d/bf9bda840d5f1dfdbf0feca87fbdb64a918a69bca42cfa0ba7b137c48cb8/cffi-2.0.0-cp313-cp313-win32.whl", hash = "sha256:74a03b9698e198d47562765773b4a8309919089150a0bb17d829ad7b44b60d27", size = 172909, upload-time = "2025-09-08T23:23:14.32Z" }, + { url = "https://files.pythonhosted.org/packages/37/18/6519e1ee6f5a1e579e04b9ddb6f1676c17368a7aba48299c3759bbc3c8b3/cffi-2.0.0-cp313-cp313-win_amd64.whl", hash = "sha256:19f705ada2530c1167abacb171925dd886168931e0a7b78f5bffcae5c6b5be75", size = 183402, upload-time = "2025-09-08T23:23:15.535Z" }, + { url = "https://files.pythonhosted.org/packages/cb/0e/02ceeec9a7d6ee63bb596121c2c8e9b3a9e150936f4fbef6ca1943e6137c/cffi-2.0.0-cp313-cp313-win_arm64.whl", hash = "sha256:256f80b80ca3853f90c21b23ee78cd008713787b1b1e93eae9f3d6a7134abd91", size = 177780, upload-time = "2025-09-08T23:23:16.761Z" }, + { url = "https://files.pythonhosted.org/packages/92/c4/3ce07396253a83250ee98564f8d7e9789fab8e58858f35d07a9a2c78de9f/cffi-2.0.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:fc33c5141b55ed366cfaad382df24fe7dcbc686de5be719b207bb248e3053dc5", size = 185320, upload-time = "2025-09-08T23:23:18.087Z" }, + { url = "https://files.pythonhosted.org/packages/59/dd/27e9fa567a23931c838c6b02d0764611c62290062a6d4e8ff7863daf9730/cffi-2.0.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:c654de545946e0db659b3400168c9ad31b5d29593291482c43e3564effbcee13", size = 181487, upload-time = "2025-09-08T23:23:19.622Z" }, + { url = "https://files.pythonhosted.org/packages/d6/43/0e822876f87ea8a4ef95442c3d766a06a51fc5298823f884ef87aaad168c/cffi-2.0.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:24b6f81f1983e6df8db3adc38562c83f7d4a0c36162885ec7f7b77c7dcbec97b", size = 220049, upload-time = "2025-09-08T23:23:20.853Z" }, + { url = "https://files.pythonhosted.org/packages/b4/89/76799151d9c2d2d1ead63c2429da9ea9d7aac304603de0c6e8764e6e8e70/cffi-2.0.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:12873ca6cb9b0f0d3a0da705d6086fe911591737a59f28b7936bdfed27c0d47c", size = 207793, upload-time = "2025-09-08T23:23:22.08Z" }, + { url = "https://files.pythonhosted.org/packages/bb/dd/3465b14bb9e24ee24cb88c9e3730f6de63111fffe513492bf8c808a3547e/cffi-2.0.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:d9b97165e8aed9272a6bb17c01e3cc5871a594a446ebedc996e2397a1c1ea8ef", size = 206300, upload-time = "2025-09-08T23:23:23.314Z" }, + { url = "https://files.pythonhosted.org/packages/47/d9/d83e293854571c877a92da46fdec39158f8d7e68da75bf73581225d28e90/cffi-2.0.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:afb8db5439b81cf9c9d0c80404b60c3cc9c3add93e114dcae767f1477cb53775", size = 219244, upload-time = "2025-09-08T23:23:24.541Z" }, + { url = "https://files.pythonhosted.org/packages/2b/0f/1f177e3683aead2bb00f7679a16451d302c436b5cbf2505f0ea8146ef59e/cffi-2.0.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:737fe7d37e1a1bffe70bd5754ea763a62a066dc5913ca57e957824b72a85e205", size = 222828, upload-time = "2025-09-08T23:23:26.143Z" }, + { url = "https://files.pythonhosted.org/packages/c6/0f/cafacebd4b040e3119dcb32fed8bdef8dfe94da653155f9d0b9dc660166e/cffi-2.0.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:38100abb9d1b1435bc4cc340bb4489635dc2f0da7456590877030c9b3d40b0c1", size = 220926, upload-time = "2025-09-08T23:23:27.873Z" }, + { url = "https://files.pythonhosted.org/packages/3e/aa/df335faa45b395396fcbc03de2dfcab242cd61a9900e914fe682a59170b1/cffi-2.0.0-cp314-cp314-win32.whl", hash = "sha256:087067fa8953339c723661eda6b54bc98c5625757ea62e95eb4898ad5e776e9f", size = 175328, upload-time = "2025-09-08T23:23:44.61Z" }, + { url = "https://files.pythonhosted.org/packages/bb/92/882c2d30831744296ce713f0feb4c1cd30f346ef747b530b5318715cc367/cffi-2.0.0-cp314-cp314-win_amd64.whl", hash = "sha256:203a48d1fb583fc7d78a4c6655692963b860a417c0528492a6bc21f1aaefab25", size = 185650, upload-time = "2025-09-08T23:23:45.848Z" }, + { url = "https://files.pythonhosted.org/packages/9f/2c/98ece204b9d35a7366b5b2c6539c350313ca13932143e79dc133ba757104/cffi-2.0.0-cp314-cp314-win_arm64.whl", hash = "sha256:dbd5c7a25a7cb98f5ca55d258b103a2054f859a46ae11aaf23134f9cc0d356ad", size = 180687, upload-time = "2025-09-08T23:23:47.105Z" }, + { url = "https://files.pythonhosted.org/packages/3e/61/c768e4d548bfa607abcda77423448df8c471f25dbe64fb2ef6d555eae006/cffi-2.0.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:9a67fc9e8eb39039280526379fb3a70023d77caec1852002b4da7e8b270c4dd9", size = 188773, upload-time = "2025-09-08T23:23:29.347Z" }, + { url = "https://files.pythonhosted.org/packages/2c/ea/5f76bce7cf6fcd0ab1a1058b5af899bfbef198bea4d5686da88471ea0336/cffi-2.0.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:7a66c7204d8869299919db4d5069a82f1561581af12b11b3c9f48c584eb8743d", size = 185013, upload-time = "2025-09-08T23:23:30.63Z" }, + { url = "https://files.pythonhosted.org/packages/be/b4/c56878d0d1755cf9caa54ba71e5d049479c52f9e4afc230f06822162ab2f/cffi-2.0.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:7cc09976e8b56f8cebd752f7113ad07752461f48a58cbba644139015ac24954c", size = 221593, upload-time = "2025-09-08T23:23:31.91Z" }, + { url = "https://files.pythonhosted.org/packages/e0/0d/eb704606dfe8033e7128df5e90fee946bbcb64a04fcdaa97321309004000/cffi-2.0.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:92b68146a71df78564e4ef48af17551a5ddd142e5190cdf2c5624d0c3ff5b2e8", size = 209354, upload-time = "2025-09-08T23:23:33.214Z" }, + { url = "https://files.pythonhosted.org/packages/d8/19/3c435d727b368ca475fb8742ab97c9cb13a0de600ce86f62eab7fa3eea60/cffi-2.0.0-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:b1e74d11748e7e98e2f426ab176d4ed720a64412b6a15054378afdb71e0f37dc", size = 208480, upload-time = "2025-09-08T23:23:34.495Z" }, + { url = "https://files.pythonhosted.org/packages/d0/44/681604464ed9541673e486521497406fadcc15b5217c3e326b061696899a/cffi-2.0.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:28a3a209b96630bca57cce802da70c266eb08c6e97e5afd61a75611ee6c64592", size = 221584, upload-time = "2025-09-08T23:23:36.096Z" }, + { url = "https://files.pythonhosted.org/packages/25/8e/342a504ff018a2825d395d44d63a767dd8ebc927ebda557fecdaca3ac33a/cffi-2.0.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:7553fb2090d71822f02c629afe6042c299edf91ba1bf94951165613553984512", size = 224443, upload-time = "2025-09-08T23:23:37.328Z" }, + { url = "https://files.pythonhosted.org/packages/e1/5e/b666bacbbc60fbf415ba9988324a132c9a7a0448a9a8f125074671c0f2c3/cffi-2.0.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:6c6c373cfc5c83a975506110d17457138c8c63016b563cc9ed6e056a82f13ce4", size = 223437, upload-time = "2025-09-08T23:23:38.945Z" }, + { url = "https://files.pythonhosted.org/packages/a0/1d/ec1a60bd1a10daa292d3cd6bb0b359a81607154fb8165f3ec95fe003b85c/cffi-2.0.0-cp314-cp314t-win32.whl", hash = "sha256:1fc9ea04857caf665289b7a75923f2c6ed559b8298a1b8c49e59f7dd95c8481e", size = 180487, upload-time = "2025-09-08T23:23:40.423Z" }, + { url = "https://files.pythonhosted.org/packages/bf/41/4c1168c74fac325c0c8156f04b6749c8b6a8f405bbf91413ba088359f60d/cffi-2.0.0-cp314-cp314t-win_amd64.whl", hash = "sha256:d68b6cef7827e8641e8ef16f4494edda8b36104d79773a334beaa1e3521430f6", size = 191726, upload-time = "2025-09-08T23:23:41.742Z" }, + { url = "https://files.pythonhosted.org/packages/ae/3a/dbeec9d1ee0844c679f6bb5d6ad4e9f198b1224f4e7a32825f47f6192b0c/cffi-2.0.0-cp314-cp314t-win_arm64.whl", hash = "sha256:0a1527a803f0a659de1af2e1fd700213caba79377e27e4693648c2923da066f9", size = 184195, upload-time = "2025-09-08T23:23:43.004Z" }, +] + +[[package]] +name = "charset-normalizer" +version = "3.4.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/13/69/33ddede1939fdd074bce5434295f38fae7136463422fe4fd3e0e89b98062/charset_normalizer-3.4.4.tar.gz", hash = "sha256:94537985111c35f28720e43603b8e7b43a6ecfb2ce1d3058bbe955b73404e21a", size = 129418, upload-time = "2025-10-14T04:42:32.879Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/97/45/4b3a1239bbacd321068ea6e7ac28875b03ab8bc0aa0966452db17cd36714/charset_normalizer-3.4.4-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:e1f185f86a6f3403aa2420e815904c67b2f9ebc443f045edd0de921108345794", size = 208091, upload-time = "2025-10-14T04:41:13.346Z" }, + { url = "https://files.pythonhosted.org/packages/7d/62/73a6d7450829655a35bb88a88fca7d736f9882a27eacdca2c6d505b57e2e/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6b39f987ae8ccdf0d2642338faf2abb1862340facc796048b604ef14919e55ed", size = 147936, upload-time = "2025-10-14T04:41:14.461Z" }, + { url = "https://files.pythonhosted.org/packages/89/c5/adb8c8b3d6625bef6d88b251bbb0d95f8205831b987631ab0c8bb5d937c2/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3162d5d8ce1bb98dd51af660f2121c55d0fa541b46dff7bb9b9f86ea1d87de72", size = 144180, upload-time = "2025-10-14T04:41:15.588Z" }, + { url = "https://files.pythonhosted.org/packages/91/ed/9706e4070682d1cc219050b6048bfd293ccf67b3d4f5a4f39207453d4b99/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:81d5eb2a312700f4ecaa977a8235b634ce853200e828fbadf3a9c50bab278328", size = 161346, upload-time = "2025-10-14T04:41:16.738Z" }, + { url = "https://files.pythonhosted.org/packages/d5/0d/031f0d95e4972901a2f6f09ef055751805ff541511dc1252ba3ca1f80cf5/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5bd2293095d766545ec1a8f612559f6b40abc0eb18bb2f5d1171872d34036ede", size = 158874, upload-time = "2025-10-14T04:41:17.923Z" }, + { url = "https://files.pythonhosted.org/packages/f5/83/6ab5883f57c9c801ce5e5677242328aa45592be8a00644310a008d04f922/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a8a8b89589086a25749f471e6a900d3f662d1d3b6e2e59dcecf787b1cc3a1894", size = 153076, upload-time = "2025-10-14T04:41:19.106Z" }, + { url = "https://files.pythonhosted.org/packages/75/1e/5ff781ddf5260e387d6419959ee89ef13878229732732ee73cdae01800f2/charset_normalizer-3.4.4-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:bc7637e2f80d8530ee4a78e878bce464f70087ce73cf7c1caf142416923b98f1", size = 150601, upload-time = "2025-10-14T04:41:20.245Z" }, + { url = "https://files.pythonhosted.org/packages/d7/57/71be810965493d3510a6ca79b90c19e48696fb1ff964da319334b12677f0/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f8bf04158c6b607d747e93949aa60618b61312fe647a6369f88ce2ff16043490", size = 150376, upload-time = "2025-10-14T04:41:21.398Z" }, + { url = "https://files.pythonhosted.org/packages/e5/d5/c3d057a78c181d007014feb7e9f2e65905a6c4ef182c0ddf0de2924edd65/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:554af85e960429cf30784dd47447d5125aaa3b99a6f0683589dbd27e2f45da44", size = 144825, upload-time = "2025-10-14T04:41:22.583Z" }, + { url = "https://files.pythonhosted.org/packages/e6/8c/d0406294828d4976f275ffbe66f00266c4b3136b7506941d87c00cab5272/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:74018750915ee7ad843a774364e13a3db91682f26142baddf775342c3f5b1133", size = 162583, upload-time = "2025-10-14T04:41:23.754Z" }, + { url = "https://files.pythonhosted.org/packages/d7/24/e2aa1f18c8f15c4c0e932d9287b8609dd30ad56dbe41d926bd846e22fb8d/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:c0463276121fdee9c49b98908b3a89c39be45d86d1dbaa22957e38f6321d4ce3", size = 150366, upload-time = "2025-10-14T04:41:25.27Z" }, + { url = "https://files.pythonhosted.org/packages/e4/5b/1e6160c7739aad1e2df054300cc618b06bf784a7a164b0f238360721ab86/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:362d61fd13843997c1c446760ef36f240cf81d3ebf74ac62652aebaf7838561e", size = 160300, upload-time = "2025-10-14T04:41:26.725Z" }, + { url = "https://files.pythonhosted.org/packages/7a/10/f882167cd207fbdd743e55534d5d9620e095089d176d55cb22d5322f2afd/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9a26f18905b8dd5d685d6d07b0cdf98a79f3c7a918906af7cc143ea2e164c8bc", size = 154465, upload-time = "2025-10-14T04:41:28.322Z" }, + { url = "https://files.pythonhosted.org/packages/89/66/c7a9e1b7429be72123441bfdbaf2bc13faab3f90b933f664db506dea5915/charset_normalizer-3.4.4-cp313-cp313-win32.whl", hash = "sha256:9b35f4c90079ff2e2edc5b26c0c77925e5d2d255c42c74fdb70fb49b172726ac", size = 99404, upload-time = "2025-10-14T04:41:29.95Z" }, + { url = "https://files.pythonhosted.org/packages/c4/26/b9924fa27db384bdcd97ab83b4f0a8058d96ad9626ead570674d5e737d90/charset_normalizer-3.4.4-cp313-cp313-win_amd64.whl", hash = "sha256:b435cba5f4f750aa6c0a0d92c541fb79f69a387c91e61f1795227e4ed9cece14", size = 107092, upload-time = "2025-10-14T04:41:31.188Z" }, + { url = "https://files.pythonhosted.org/packages/af/8f/3ed4bfa0c0c72a7ca17f0380cd9e4dd842b09f664e780c13cff1dcf2ef1b/charset_normalizer-3.4.4-cp313-cp313-win_arm64.whl", hash = "sha256:542d2cee80be6f80247095cc36c418f7bddd14f4a6de45af91dfad36d817bba2", size = 100408, upload-time = "2025-10-14T04:41:32.624Z" }, + { url = "https://files.pythonhosted.org/packages/2a/35/7051599bd493e62411d6ede36fd5af83a38f37c4767b92884df7301db25d/charset_normalizer-3.4.4-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:da3326d9e65ef63a817ecbcc0df6e94463713b754fe293eaa03da99befb9a5bd", size = 207746, upload-time = "2025-10-14T04:41:33.773Z" }, + { url = "https://files.pythonhosted.org/packages/10/9a/97c8d48ef10d6cd4fcead2415523221624bf58bcf68a802721a6bc807c8f/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8af65f14dc14a79b924524b1e7fffe304517b2bff5a58bf64f30b98bbc5079eb", size = 147889, upload-time = "2025-10-14T04:41:34.897Z" }, + { url = "https://files.pythonhosted.org/packages/10/bf/979224a919a1b606c82bd2c5fa49b5c6d5727aa47b4312bb27b1734f53cd/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:74664978bb272435107de04e36db5a9735e78232b85b77d45cfb38f758efd33e", size = 143641, upload-time = "2025-10-14T04:41:36.116Z" }, + { url = "https://files.pythonhosted.org/packages/ba/33/0ad65587441fc730dc7bd90e9716b30b4702dc7b617e6ba4997dc8651495/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:752944c7ffbfdd10c074dc58ec2d5a8a4cd9493b314d367c14d24c17684ddd14", size = 160779, upload-time = "2025-10-14T04:41:37.229Z" }, + { url = "https://files.pythonhosted.org/packages/67/ed/331d6b249259ee71ddea93f6f2f0a56cfebd46938bde6fcc6f7b9a3d0e09/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d1f13550535ad8cff21b8d757a3257963e951d96e20ec82ab44bc64aeb62a191", size = 159035, upload-time = "2025-10-14T04:41:38.368Z" }, + { url = "https://files.pythonhosted.org/packages/67/ff/f6b948ca32e4f2a4576aa129d8bed61f2e0543bf9f5f2b7fc3758ed005c9/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ecaae4149d99b1c9e7b88bb03e3221956f68fd6d50be2ef061b2381b61d20838", size = 152542, upload-time = "2025-10-14T04:41:39.862Z" }, + { url = "https://files.pythonhosted.org/packages/16/85/276033dcbcc369eb176594de22728541a925b2632f9716428c851b149e83/charset_normalizer-3.4.4-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:cb6254dc36b47a990e59e1068afacdcd02958bdcce30bb50cc1700a8b9d624a6", size = 149524, upload-time = "2025-10-14T04:41:41.319Z" }, + { url = "https://files.pythonhosted.org/packages/9e/f2/6a2a1f722b6aba37050e626530a46a68f74e63683947a8acff92569f979a/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:c8ae8a0f02f57a6e61203a31428fa1d677cbe50c93622b4149d5c0f319c1d19e", size = 150395, upload-time = "2025-10-14T04:41:42.539Z" }, + { url = "https://files.pythonhosted.org/packages/60/bb/2186cb2f2bbaea6338cad15ce23a67f9b0672929744381e28b0592676824/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:47cc91b2f4dd2833fddaedd2893006b0106129d4b94fdb6af1f4ce5a9965577c", size = 143680, upload-time = "2025-10-14T04:41:43.661Z" }, + { url = "https://files.pythonhosted.org/packages/7d/a5/bf6f13b772fbb2a90360eb620d52ed8f796f3c5caee8398c3b2eb7b1c60d/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:82004af6c302b5d3ab2cfc4cc5f29db16123b1a8417f2e25f9066f91d4411090", size = 162045, upload-time = "2025-10-14T04:41:44.821Z" }, + { url = "https://files.pythonhosted.org/packages/df/c5/d1be898bf0dc3ef9030c3825e5d3b83f2c528d207d246cbabe245966808d/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:2b7d8f6c26245217bd2ad053761201e9f9680f8ce52f0fcd8d0755aeae5b2152", size = 149687, upload-time = "2025-10-14T04:41:46.442Z" }, + { url = "https://files.pythonhosted.org/packages/a5/42/90c1f7b9341eef50c8a1cb3f098ac43b0508413f33affd762855f67a410e/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:799a7a5e4fb2d5898c60b640fd4981d6a25f1c11790935a44ce38c54e985f828", size = 160014, upload-time = "2025-10-14T04:41:47.631Z" }, + { url = "https://files.pythonhosted.org/packages/76/be/4d3ee471e8145d12795ab655ece37baed0929462a86e72372fd25859047c/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:99ae2cffebb06e6c22bdc25801d7b30f503cc87dbd283479e7b606f70aff57ec", size = 154044, upload-time = "2025-10-14T04:41:48.81Z" }, + { url = "https://files.pythonhosted.org/packages/b0/6f/8f7af07237c34a1defe7defc565a9bc1807762f672c0fde711a4b22bf9c0/charset_normalizer-3.4.4-cp314-cp314-win32.whl", hash = "sha256:f9d332f8c2a2fcbffe1378594431458ddbef721c1769d78e2cbc06280d8155f9", size = 99940, upload-time = "2025-10-14T04:41:49.946Z" }, + { url = "https://files.pythonhosted.org/packages/4b/51/8ade005e5ca5b0d80fb4aff72a3775b325bdc3d27408c8113811a7cbe640/charset_normalizer-3.4.4-cp314-cp314-win_amd64.whl", hash = "sha256:8a6562c3700cce886c5be75ade4a5db4214fda19fede41d9792d100288d8f94c", size = 107104, upload-time = "2025-10-14T04:41:51.051Z" }, + { url = "https://files.pythonhosted.org/packages/da/5f/6b8f83a55bb8278772c5ae54a577f3099025f9ade59d0136ac24a0df4bde/charset_normalizer-3.4.4-cp314-cp314-win_arm64.whl", hash = "sha256:de00632ca48df9daf77a2c65a484531649261ec9f25489917f09e455cb09ddb2", size = 100743, upload-time = "2025-10-14T04:41:52.122Z" }, + { url = "https://files.pythonhosted.org/packages/0a/4c/925909008ed5a988ccbb72dcc897407e5d6d3bd72410d69e051fc0c14647/charset_normalizer-3.4.4-py3-none-any.whl", hash = "sha256:7a32c560861a02ff789ad905a2fe94e3f840803362c84fecf1851cb4cf3dc37f", size = 53402, upload-time = "2025-10-14T04:42:31.76Z" }, +] + +[[package]] +name = "chinese-independent-developer" +version = "0.1.0" +source = { virtual = "." } +dependencies = [ + { name = "httpx", extra = ["socks"] }, + { name = "openai" }, + { name = "pygithub" }, +] + +[package.metadata] +requires-dist = [ + { name = "httpx", extras = ["socks"], specifier = ">=0.28.1" }, + { name = "openai", specifier = ">=2.14.0" }, + { name = "pygithub", specifier = ">=2.8.1" }, +] + +[[package]] +name = "colorama" +version = "0.4.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697, upload-time = "2022-10-25T02:36:22.414Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload-time = "2022-10-25T02:36:20.889Z" }, +] + +[[package]] +name = "cryptography" +version = "46.0.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cffi", marker = "platform_python_implementation != 'PyPy'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/9f/33/c00162f49c0e2fe8064a62cb92b93e50c74a72bc370ab92f86112b33ff62/cryptography-46.0.3.tar.gz", hash = "sha256:a8b17438104fed022ce745b362294d9ce35b4c2e45c1d958ad4a4b019285f4a1", size = 749258, upload-time = "2025-10-15T23:18:31.74Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1d/42/9c391dd801d6cf0d561b5890549d4b27bafcc53b39c31a817e69d87c625b/cryptography-46.0.3-cp311-abi3-macosx_10_9_universal2.whl", hash = "sha256:109d4ddfadf17e8e7779c39f9b18111a09efb969a301a31e987416a0191ed93a", size = 7225004, upload-time = "2025-10-15T23:16:52.239Z" }, + { url = "https://files.pythonhosted.org/packages/1c/67/38769ca6b65f07461eb200e85fc1639b438bdc667be02cf7f2cd6a64601c/cryptography-46.0.3-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:09859af8466b69bc3c27bdf4f5d84a665e0f7ab5088412e9e2ec49758eca5cbc", size = 4296667, upload-time = "2025-10-15T23:16:54.369Z" }, + { url = "https://files.pythonhosted.org/packages/5c/49/498c86566a1d80e978b42f0d702795f69887005548c041636df6ae1ca64c/cryptography-46.0.3-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:01ca9ff2885f3acc98c29f1860552e37f6d7c7d013d7334ff2a9de43a449315d", size = 4450807, upload-time = "2025-10-15T23:16:56.414Z" }, + { url = "https://files.pythonhosted.org/packages/4b/0a/863a3604112174c8624a2ac3c038662d9e59970c7f926acdcfaed8d61142/cryptography-46.0.3-cp311-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:6eae65d4c3d33da080cff9c4ab1f711b15c1d9760809dad6ea763f3812d254cb", size = 4299615, upload-time = "2025-10-15T23:16:58.442Z" }, + { url = "https://files.pythonhosted.org/packages/64/02/b73a533f6b64a69f3cd3872acb6ebc12aef924d8d103133bb3ea750dc703/cryptography-46.0.3-cp311-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:e5bf0ed4490068a2e72ac03d786693adeb909981cc596425d09032d372bcc849", size = 4016800, upload-time = "2025-10-15T23:17:00.378Z" }, + { url = "https://files.pythonhosted.org/packages/25/d5/16e41afbfa450cde85a3b7ec599bebefaef16b5c6ba4ec49a3532336ed72/cryptography-46.0.3-cp311-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:5ecfccd2329e37e9b7112a888e76d9feca2347f12f37918facbb893d7bb88ee8", size = 4984707, upload-time = "2025-10-15T23:17:01.98Z" }, + { url = "https://files.pythonhosted.org/packages/c9/56/e7e69b427c3878352c2fb9b450bd0e19ed552753491d39d7d0a2f5226d41/cryptography-46.0.3-cp311-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:a2c0cd47381a3229c403062f764160d57d4d175e022c1df84e168c6251a22eec", size = 4482541, upload-time = "2025-10-15T23:17:04.078Z" }, + { url = "https://files.pythonhosted.org/packages/78/f6/50736d40d97e8483172f1bb6e698895b92a223dba513b0ca6f06b2365339/cryptography-46.0.3-cp311-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:549e234ff32571b1f4076ac269fcce7a808d3bf98b76c8dd560e42dbc66d7d91", size = 4299464, upload-time = "2025-10-15T23:17:05.483Z" }, + { url = "https://files.pythonhosted.org/packages/00/de/d8e26b1a855f19d9994a19c702fa2e93b0456beccbcfe437eda00e0701f2/cryptography-46.0.3-cp311-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:c0a7bb1a68a5d3471880e264621346c48665b3bf1c3759d682fc0864c540bd9e", size = 4950838, upload-time = "2025-10-15T23:17:07.425Z" }, + { url = "https://files.pythonhosted.org/packages/8f/29/798fc4ec461a1c9e9f735f2fc58741b0daae30688f41b2497dcbc9ed1355/cryptography-46.0.3-cp311-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:10b01676fc208c3e6feeb25a8b83d81767e8059e1fe86e1dc62d10a3018fa926", size = 4481596, upload-time = "2025-10-15T23:17:09.343Z" }, + { url = "https://files.pythonhosted.org/packages/15/8d/03cd48b20a573adfff7652b76271078e3045b9f49387920e7f1f631d125e/cryptography-46.0.3-cp311-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:0abf1ffd6e57c67e92af68330d05760b7b7efb243aab8377e583284dbab72c71", size = 4426782, upload-time = "2025-10-15T23:17:11.22Z" }, + { url = "https://files.pythonhosted.org/packages/fa/b1/ebacbfe53317d55cf33165bda24c86523497a6881f339f9aae5c2e13e57b/cryptography-46.0.3-cp311-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:a04bee9ab6a4da801eb9b51f1b708a1b5b5c9eb48c03f74198464c66f0d344ac", size = 4698381, upload-time = "2025-10-15T23:17:12.829Z" }, + { url = "https://files.pythonhosted.org/packages/96/92/8a6a9525893325fc057a01f654d7efc2c64b9de90413adcf605a85744ff4/cryptography-46.0.3-cp311-abi3-win32.whl", hash = "sha256:f260d0d41e9b4da1ed1e0f1ce571f97fe370b152ab18778e9e8f67d6af432018", size = 3055988, upload-time = "2025-10-15T23:17:14.65Z" }, + { url = "https://files.pythonhosted.org/packages/7e/bf/80fbf45253ea585a1e492a6a17efcb93467701fa79e71550a430c5e60df0/cryptography-46.0.3-cp311-abi3-win_amd64.whl", hash = "sha256:a9a3008438615669153eb86b26b61e09993921ebdd75385ddd748702c5adfddb", size = 3514451, upload-time = "2025-10-15T23:17:16.142Z" }, + { url = "https://files.pythonhosted.org/packages/2e/af/9b302da4c87b0beb9db4e756386a7c6c5b8003cd0e742277888d352ae91d/cryptography-46.0.3-cp311-abi3-win_arm64.whl", hash = "sha256:5d7f93296ee28f68447397bf5198428c9aeeab45705a55d53a6343455dcb2c3c", size = 2928007, upload-time = "2025-10-15T23:17:18.04Z" }, + { url = "https://files.pythonhosted.org/packages/f5/e2/a510aa736755bffa9d2f75029c229111a1d02f8ecd5de03078f4c18d91a3/cryptography-46.0.3-cp314-cp314t-macosx_10_9_universal2.whl", hash = "sha256:00a5e7e87938e5ff9ff5447ab086a5706a957137e6e433841e9d24f38a065217", size = 7158012, upload-time = "2025-10-15T23:17:19.982Z" }, + { url = "https://files.pythonhosted.org/packages/73/dc/9aa866fbdbb95b02e7f9d086f1fccfeebf8953509b87e3f28fff927ff8a0/cryptography-46.0.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:c8daeb2d2174beb4575b77482320303f3d39b8e81153da4f0fb08eb5fe86a6c5", size = 4288728, upload-time = "2025-10-15T23:17:21.527Z" }, + { url = "https://files.pythonhosted.org/packages/c5/fd/bc1daf8230eaa075184cbbf5f8cd00ba9db4fd32d63fb83da4671b72ed8a/cryptography-46.0.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:39b6755623145ad5eff1dab323f4eae2a32a77a7abef2c5089a04a3d04366715", size = 4435078, upload-time = "2025-10-15T23:17:23.042Z" }, + { url = "https://files.pythonhosted.org/packages/82/98/d3bd5407ce4c60017f8ff9e63ffee4200ab3e23fe05b765cab805a7db008/cryptography-46.0.3-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:db391fa7c66df6762ee3f00c95a89e6d428f4d60e7abc8328f4fe155b5ac6e54", size = 4293460, upload-time = "2025-10-15T23:17:24.885Z" }, + { url = "https://files.pythonhosted.org/packages/26/e9/e23e7900983c2b8af7a08098db406cf989d7f09caea7897e347598d4cd5b/cryptography-46.0.3-cp314-cp314t-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:78a97cf6a8839a48c49271cdcbd5cf37ca2c1d6b7fdd86cc864f302b5e9bf459", size = 3995237, upload-time = "2025-10-15T23:17:26.449Z" }, + { url = "https://files.pythonhosted.org/packages/91/15/af68c509d4a138cfe299d0d7ddb14afba15233223ebd933b4bbdbc7155d3/cryptography-46.0.3-cp314-cp314t-manylinux_2_28_ppc64le.whl", hash = "sha256:dfb781ff7eaa91a6f7fd41776ec37c5853c795d3b358d4896fdbb5df168af422", size = 4967344, upload-time = "2025-10-15T23:17:28.06Z" }, + { url = "https://files.pythonhosted.org/packages/ca/e3/8643d077c53868b681af077edf6b3cb58288b5423610f21c62aadcbe99f4/cryptography-46.0.3-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:6f61efb26e76c45c4a227835ddeae96d83624fb0d29eb5df5b96e14ed1a0afb7", size = 4466564, upload-time = "2025-10-15T23:17:29.665Z" }, + { url = "https://files.pythonhosted.org/packages/0e/43/c1e8726fa59c236ff477ff2b5dc071e54b21e5a1e51aa2cee1676f1c986f/cryptography-46.0.3-cp314-cp314t-manylinux_2_34_aarch64.whl", hash = "sha256:23b1a8f26e43f47ceb6d6a43115f33a5a37d57df4ea0ca295b780ae8546e8044", size = 4292415, upload-time = "2025-10-15T23:17:31.686Z" }, + { url = "https://files.pythonhosted.org/packages/42/f9/2f8fefdb1aee8a8e3256a0568cffc4e6d517b256a2fe97a029b3f1b9fe7e/cryptography-46.0.3-cp314-cp314t-manylinux_2_34_ppc64le.whl", hash = "sha256:b419ae593c86b87014b9be7396b385491ad7f320bde96826d0dd174459e54665", size = 4931457, upload-time = "2025-10-15T23:17:33.478Z" }, + { url = "https://files.pythonhosted.org/packages/79/30/9b54127a9a778ccd6d27c3da7563e9f2d341826075ceab89ae3b41bf5be2/cryptography-46.0.3-cp314-cp314t-manylinux_2_34_x86_64.whl", hash = "sha256:50fc3343ac490c6b08c0cf0d704e881d0d660be923fd3076db3e932007e726e3", size = 4466074, upload-time = "2025-10-15T23:17:35.158Z" }, + { url = "https://files.pythonhosted.org/packages/ac/68/b4f4a10928e26c941b1b6a179143af9f4d27d88fe84a6a3c53592d2e76bf/cryptography-46.0.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:22d7e97932f511d6b0b04f2bfd818d73dcd5928db509460aaf48384778eb6d20", size = 4420569, upload-time = "2025-10-15T23:17:37.188Z" }, + { url = "https://files.pythonhosted.org/packages/a3/49/3746dab4c0d1979888f125226357d3262a6dd40e114ac29e3d2abdf1ec55/cryptography-46.0.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:d55f3dffadd674514ad19451161118fd010988540cee43d8bc20675e775925de", size = 4681941, upload-time = "2025-10-15T23:17:39.236Z" }, + { url = "https://files.pythonhosted.org/packages/fd/30/27654c1dbaf7e4a3531fa1fc77986d04aefa4d6d78259a62c9dc13d7ad36/cryptography-46.0.3-cp314-cp314t-win32.whl", hash = "sha256:8a6e050cb6164d3f830453754094c086ff2d0b2f3a897a1d9820f6139a1f0914", size = 3022339, upload-time = "2025-10-15T23:17:40.888Z" }, + { url = "https://files.pythonhosted.org/packages/f6/30/640f34ccd4d2a1bc88367b54b926b781b5a018d65f404d409aba76a84b1c/cryptography-46.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:760f83faa07f8b64e9c33fc963d790a2edb24efb479e3520c14a45741cd9b2db", size = 3494315, upload-time = "2025-10-15T23:17:42.769Z" }, + { url = "https://files.pythonhosted.org/packages/ba/8b/88cc7e3bd0a8e7b861f26981f7b820e1f46aa9d26cc482d0feba0ecb4919/cryptography-46.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:516ea134e703e9fe26bcd1277a4b59ad30586ea90c365a87781d7887a646fe21", size = 2919331, upload-time = "2025-10-15T23:17:44.468Z" }, + { url = "https://files.pythonhosted.org/packages/fd/23/45fe7f376a7df8daf6da3556603b36f53475a99ce4faacb6ba2cf3d82021/cryptography-46.0.3-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:cb3d760a6117f621261d662bccc8ef5bc32ca673e037c83fbe565324f5c46936", size = 7218248, upload-time = "2025-10-15T23:17:46.294Z" }, + { url = "https://files.pythonhosted.org/packages/27/32/b68d27471372737054cbd34c84981f9edbc24fe67ca225d389799614e27f/cryptography-46.0.3-cp38-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:4b7387121ac7d15e550f5cb4a43aef2559ed759c35df7336c402bb8275ac9683", size = 4294089, upload-time = "2025-10-15T23:17:48.269Z" }, + { url = "https://files.pythonhosted.org/packages/26/42/fa8389d4478368743e24e61eea78846a0006caffaf72ea24a15159215a14/cryptography-46.0.3-cp38-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:15ab9b093e8f09daab0f2159bb7e47532596075139dd74365da52ecc9cb46c5d", size = 4440029, upload-time = "2025-10-15T23:17:49.837Z" }, + { url = "https://files.pythonhosted.org/packages/5f/eb/f483db0ec5ac040824f269e93dd2bd8a21ecd1027e77ad7bdf6914f2fd80/cryptography-46.0.3-cp38-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:46acf53b40ea38f9c6c229599a4a13f0d46a6c3fa9ef19fc1a124d62e338dfa0", size = 4297222, upload-time = "2025-10-15T23:17:51.357Z" }, + { url = "https://files.pythonhosted.org/packages/fd/cf/da9502c4e1912cb1da3807ea3618a6829bee8207456fbbeebc361ec38ba3/cryptography-46.0.3-cp38-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:10ca84c4668d066a9878890047f03546f3ae0a6b8b39b697457b7757aaf18dbc", size = 4012280, upload-time = "2025-10-15T23:17:52.964Z" }, + { url = "https://files.pythonhosted.org/packages/6b/8f/9adb86b93330e0df8b3dcf03eae67c33ba89958fc2e03862ef1ac2b42465/cryptography-46.0.3-cp38-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:36e627112085bb3b81b19fed209c05ce2a52ee8b15d161b7c643a7d5a88491f3", size = 4978958, upload-time = "2025-10-15T23:17:54.965Z" }, + { url = "https://files.pythonhosted.org/packages/d1/a0/5fa77988289c34bdb9f913f5606ecc9ada1adb5ae870bd0d1054a7021cc4/cryptography-46.0.3-cp38-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:1000713389b75c449a6e979ffc7dcc8ac90b437048766cef052d4d30b8220971", size = 4473714, upload-time = "2025-10-15T23:17:56.754Z" }, + { url = "https://files.pythonhosted.org/packages/14/e5/fc82d72a58d41c393697aa18c9abe5ae1214ff6f2a5c18ac470f92777895/cryptography-46.0.3-cp38-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:b02cf04496f6576afffef5ddd04a0cb7d49cf6be16a9059d793a30b035f6b6ac", size = 4296970, upload-time = "2025-10-15T23:17:58.588Z" }, + { url = "https://files.pythonhosted.org/packages/78/06/5663ed35438d0b09056973994f1aec467492b33bd31da36e468b01ec1097/cryptography-46.0.3-cp38-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:71e842ec9bc7abf543b47cf86b9a743baa95f4677d22baa4c7d5c69e49e9bc04", size = 4940236, upload-time = "2025-10-15T23:18:00.897Z" }, + { url = "https://files.pythonhosted.org/packages/fc/59/873633f3f2dcd8a053b8dd1d38f783043b5fce589c0f6988bf55ef57e43e/cryptography-46.0.3-cp38-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:402b58fc32614f00980b66d6e56a5b4118e6cb362ae8f3fda141ba4689bd4506", size = 4472642, upload-time = "2025-10-15T23:18:02.749Z" }, + { url = "https://files.pythonhosted.org/packages/3d/39/8e71f3930e40f6877737d6f69248cf74d4e34b886a3967d32f919cc50d3b/cryptography-46.0.3-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:ef639cb3372f69ec44915fafcd6698b6cc78fbe0c2ea41be867f6ed612811963", size = 4423126, upload-time = "2025-10-15T23:18:04.85Z" }, + { url = "https://files.pythonhosted.org/packages/cd/c7/f65027c2810e14c3e7268353b1681932b87e5a48e65505d8cc17c99e36ae/cryptography-46.0.3-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:3b51b8ca4f1c6453d8829e1eb7299499ca7f313900dd4d89a24b8b87c0a780d4", size = 4686573, upload-time = "2025-10-15T23:18:06.908Z" }, + { url = "https://files.pythonhosted.org/packages/0a/6e/1c8331ddf91ca4730ab3086a0f1be19c65510a33b5a441cb334e7a2d2560/cryptography-46.0.3-cp38-abi3-win32.whl", hash = "sha256:6276eb85ef938dc035d59b87c8a7dc559a232f954962520137529d77b18ff1df", size = 3036695, upload-time = "2025-10-15T23:18:08.672Z" }, + { url = "https://files.pythonhosted.org/packages/90/45/b0d691df20633eff80955a0fc7695ff9051ffce8b69741444bd9ed7bd0db/cryptography-46.0.3-cp38-abi3-win_amd64.whl", hash = "sha256:416260257577718c05135c55958b674000baef9a1c7d9e8f306ec60d71db850f", size = 3501720, upload-time = "2025-10-15T23:18:10.632Z" }, + { url = "https://files.pythonhosted.org/packages/e8/cb/2da4cc83f5edb9c3257d09e1e7ab7b23f049c7962cae8d842bbef0a9cec9/cryptography-46.0.3-cp38-abi3-win_arm64.whl", hash = "sha256:d89c3468de4cdc4f08a57e214384d0471911a3830fcdaf7a8cc587e42a866372", size = 2918740, upload-time = "2025-10-15T23:18:12.277Z" }, +] + +[[package]] +name = "distro" +version = "1.9.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/fc/f8/98eea607f65de6527f8a2e8885fc8015d3e6f5775df186e443e0964a11c3/distro-1.9.0.tar.gz", hash = "sha256:2fa77c6fd8940f116ee1d6b94a2f90b13b5ea8d019b98bc8bafdcabcdd9bdbed", size = 60722, upload-time = "2023-12-24T09:54:32.31Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/12/b3/231ffd4ab1fc9d679809f356cebee130ac7daa00d6d6f3206dd4fd137e9e/distro-1.9.0-py3-none-any.whl", hash = "sha256:7bffd925d65168f85027d8da9af6bddab658135b840670a223589bc0c8ef02b2", size = 20277, upload-time = "2023-12-24T09:54:30.421Z" }, +] + +[[package]] +name = "h11" +version = "0.16.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/01/ee/02a2c011bdab74c6fb3c75474d40b3052059d95df7e73351460c8588d963/h11-0.16.0.tar.gz", hash = "sha256:4e35b956cf45792e4caa5885e69fba00bdbc6ffafbfa020300e549b208ee5ff1", size = 101250, upload-time = "2025-04-24T03:35:25.427Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl", hash = "sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86", size = 37515, upload-time = "2025-04-24T03:35:24.344Z" }, +] + +[[package]] +name = "httpcore" +version = "1.0.9" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "h11" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/06/94/82699a10bca87a5556c9c59b5963f2d039dbd239f25bc2a63907a05a14cb/httpcore-1.0.9.tar.gz", hash = "sha256:6e34463af53fd2ab5d807f399a9b45ea31c3dfa2276f15a2c3f00afff6e176e8", size = 85484, upload-time = "2025-04-24T22:06:22.219Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7e/f5/f66802a942d491edb555dd61e3a9961140fd64c90bce1eafd741609d334d/httpcore-1.0.9-py3-none-any.whl", hash = "sha256:2d400746a40668fc9dec9810239072b40b4484b640a8c38fd654a024c7a1bf55", size = 78784, upload-time = "2025-04-24T22:06:20.566Z" }, +] + +[[package]] +name = "httpx" +version = "0.28.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, + { name = "certifi" }, + { name = "httpcore" }, + { name = "idna" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b1/df/48c586a5fe32a0f01324ee087459e112ebb7224f646c0b5023f5e79e9956/httpx-0.28.1.tar.gz", hash = "sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc", size = 141406, upload-time = "2024-12-06T15:37:23.222Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad", size = 73517, upload-time = "2024-12-06T15:37:21.509Z" }, +] + +[package.optional-dependencies] +socks = [ + { name = "socksio" }, +] + +[[package]] +name = "idna" +version = "3.11" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/6f/6d/0703ccc57f3a7233505399edb88de3cbd678da106337b9fcde432b65ed60/idna-3.11.tar.gz", hash = "sha256:795dafcc9c04ed0c1fb032c2aa73654d8e8c5023a7df64a53f39190ada629902", size = 194582, upload-time = "2025-10-12T14:55:20.501Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0e/61/66938bbb5fc52dbdf84594873d5b51fb1f7c7794e9c0f5bd885f30bc507b/idna-3.11-py3-none-any.whl", hash = "sha256:771a87f49d9defaf64091e6e6fe9c18d4833f140bd19464795bc32d966ca37ea", size = 71008, upload-time = "2025-10-12T14:55:18.883Z" }, +] + +[[package]] +name = "jiter" +version = "0.12.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/45/9d/e0660989c1370e25848bb4c52d061c71837239738ad937e83edca174c273/jiter-0.12.0.tar.gz", hash = "sha256:64dfcd7d5c168b38d3f9f8bba7fc639edb3418abcc74f22fdbe6b8938293f30b", size = 168294, upload-time = "2025-11-09T20:49:23.302Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3d/a6/97209693b177716e22576ee1161674d1d58029eb178e01866a0422b69224/jiter-0.12.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:6cc49d5130a14b732e0612bc76ae8db3b49898732223ef8b7599aa8d9810683e", size = 313658, upload-time = "2025-11-09T20:47:44.424Z" }, + { url = "https://files.pythonhosted.org/packages/06/4d/125c5c1537c7d8ee73ad3d530a442d6c619714b95027143f1b61c0b4dfe0/jiter-0.12.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:37f27a32ce36364d2fa4f7fdc507279db604d27d239ea2e044c8f148410defe1", size = 318605, upload-time = "2025-11-09T20:47:45.973Z" }, + { url = "https://files.pythonhosted.org/packages/99/bf/a840b89847885064c41a5f52de6e312e91fa84a520848ee56c97e4fa0205/jiter-0.12.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bbc0944aa3d4b4773e348cda635252824a78f4ba44328e042ef1ff3f6080d1cf", size = 349803, upload-time = "2025-11-09T20:47:47.535Z" }, + { url = "https://files.pythonhosted.org/packages/8a/88/e63441c28e0db50e305ae23e19c1d8fae012d78ed55365da392c1f34b09c/jiter-0.12.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:da25c62d4ee1ffbacb97fac6dfe4dcd6759ebdc9015991e92a6eae5816287f44", size = 365120, upload-time = "2025-11-09T20:47:49.284Z" }, + { url = "https://files.pythonhosted.org/packages/0a/7c/49b02714af4343970eb8aca63396bc1c82fa01197dbb1e9b0d274b550d4e/jiter-0.12.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:048485c654b838140b007390b8182ba9774621103bd4d77c9c3f6f117474ba45", size = 479918, upload-time = "2025-11-09T20:47:50.807Z" }, + { url = "https://files.pythonhosted.org/packages/69/ba/0a809817fdd5a1db80490b9150645f3aae16afad166960bcd562be194f3b/jiter-0.12.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:635e737fbb7315bef0037c19b88b799143d2d7d3507e61a76751025226b3ac87", size = 379008, upload-time = "2025-11-09T20:47:52.211Z" }, + { url = "https://files.pythonhosted.org/packages/5f/c3/c9fc0232e736c8877d9e6d83d6eeb0ba4e90c6c073835cc2e8f73fdeef51/jiter-0.12.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4e017c417b1ebda911bd13b1e40612704b1f5420e30695112efdbed8a4b389ed", size = 361785, upload-time = "2025-11-09T20:47:53.512Z" }, + { url = "https://files.pythonhosted.org/packages/96/61/61f69b7e442e97ca6cd53086ddc1cf59fb830549bc72c0a293713a60c525/jiter-0.12.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:89b0bfb8b2bf2351fba36bb211ef8bfceba73ef58e7f0c68fb67b5a2795ca2f9", size = 386108, upload-time = "2025-11-09T20:47:54.893Z" }, + { url = "https://files.pythonhosted.org/packages/e9/2e/76bb3332f28550c8f1eba3bf6e5efe211efda0ddbbaf24976bc7078d42a5/jiter-0.12.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:f5aa5427a629a824a543672778c9ce0c5e556550d1569bb6ea28a85015287626", size = 519937, upload-time = "2025-11-09T20:47:56.253Z" }, + { url = "https://files.pythonhosted.org/packages/84/d6/fa96efa87dc8bff2094fb947f51f66368fa56d8d4fc9e77b25d7fbb23375/jiter-0.12.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ed53b3d6acbcb0fd0b90f20c7cb3b24c357fe82a3518934d4edfa8c6898e498c", size = 510853, upload-time = "2025-11-09T20:47:58.32Z" }, + { url = "https://files.pythonhosted.org/packages/8a/28/93f67fdb4d5904a708119a6ab58a8f1ec226ff10a94a282e0215402a8462/jiter-0.12.0-cp313-cp313-win32.whl", hash = "sha256:4747de73d6b8c78f2e253a2787930f4fffc68da7fa319739f57437f95963c4de", size = 204699, upload-time = "2025-11-09T20:47:59.686Z" }, + { url = "https://files.pythonhosted.org/packages/c4/1f/30b0eb087045a0abe2a5c9c0c0c8da110875a1d3be83afd4a9a4e548be3c/jiter-0.12.0-cp313-cp313-win_amd64.whl", hash = "sha256:e25012eb0c456fcc13354255d0338cd5397cce26c77b2832b3c4e2e255ea5d9a", size = 204258, upload-time = "2025-11-09T20:48:01.01Z" }, + { url = "https://files.pythonhosted.org/packages/2c/f4/2b4daf99b96bce6fc47971890b14b2a36aef88d7beb9f057fafa032c6141/jiter-0.12.0-cp313-cp313-win_arm64.whl", hash = "sha256:c97b92c54fe6110138c872add030a1f99aea2401ddcdaa21edf74705a646dd60", size = 185503, upload-time = "2025-11-09T20:48:02.35Z" }, + { url = "https://files.pythonhosted.org/packages/39/ca/67bb15a7061d6fe20b9b2a2fd783e296a1e0f93468252c093481a2f00efa/jiter-0.12.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:53839b35a38f56b8be26a7851a48b89bc47e5d88e900929df10ed93b95fea3d6", size = 317965, upload-time = "2025-11-09T20:48:03.783Z" }, + { url = "https://files.pythonhosted.org/packages/18/af/1788031cd22e29c3b14bc6ca80b16a39a0b10e611367ffd480c06a259831/jiter-0.12.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:94f669548e55c91ab47fef8bddd9c954dab1938644e715ea49d7e117015110a4", size = 345831, upload-time = "2025-11-09T20:48:05.55Z" }, + { url = "https://files.pythonhosted.org/packages/05/17/710bf8472d1dff0d3caf4ced6031060091c1320f84ee7d5dcbed1f352417/jiter-0.12.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:351d54f2b09a41600ffea43d081522d792e81dcfb915f6d2d242744c1cc48beb", size = 361272, upload-time = "2025-11-09T20:48:06.951Z" }, + { url = "https://files.pythonhosted.org/packages/fb/f1/1dcc4618b59761fef92d10bcbb0b038b5160be653b003651566a185f1a5c/jiter-0.12.0-cp313-cp313t-win_amd64.whl", hash = "sha256:2a5e90604620f94bf62264e7c2c038704d38217b7465b863896c6d7c902b06c7", size = 204604, upload-time = "2025-11-09T20:48:08.328Z" }, + { url = "https://files.pythonhosted.org/packages/d9/32/63cb1d9f1c5c6632a783c0052cde9ef7ba82688f7065e2f0d5f10a7e3edb/jiter-0.12.0-cp313-cp313t-win_arm64.whl", hash = "sha256:88ef757017e78d2860f96250f9393b7b577b06a956ad102c29c8237554380db3", size = 185628, upload-time = "2025-11-09T20:48:09.572Z" }, + { url = "https://files.pythonhosted.org/packages/a8/99/45c9f0dbe4a1416b2b9a8a6d1236459540f43d7fb8883cff769a8db0612d/jiter-0.12.0-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:c46d927acd09c67a9fb1416df45c5a04c27e83aae969267e98fba35b74e99525", size = 312478, upload-time = "2025-11-09T20:48:10.898Z" }, + { url = "https://files.pythonhosted.org/packages/4c/a7/54ae75613ba9e0f55fcb0bc5d1f807823b5167cc944e9333ff322e9f07dd/jiter-0.12.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:774ff60b27a84a85b27b88cd5583899c59940bcc126caca97eb2a9df6aa00c49", size = 318706, upload-time = "2025-11-09T20:48:12.266Z" }, + { url = "https://files.pythonhosted.org/packages/59/31/2aa241ad2c10774baf6c37f8b8e1f39c07db358f1329f4eb40eba179c2a2/jiter-0.12.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c5433fab222fb072237df3f637d01b81f040a07dcac1cb4a5c75c7aa9ed0bef1", size = 351894, upload-time = "2025-11-09T20:48:13.673Z" }, + { url = "https://files.pythonhosted.org/packages/54/4f/0f2759522719133a9042781b18cc94e335b6d290f5e2d3e6899d6af933e3/jiter-0.12.0-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f8c593c6e71c07866ec6bfb790e202a833eeec885022296aff6b9e0b92d6a70e", size = 365714, upload-time = "2025-11-09T20:48:15.083Z" }, + { url = "https://files.pythonhosted.org/packages/dc/6f/806b895f476582c62a2f52c453151edd8a0fde5411b0497baaa41018e878/jiter-0.12.0-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:90d32894d4c6877a87ae00c6b915b609406819dce8bc0d4e962e4de2784e567e", size = 478989, upload-time = "2025-11-09T20:48:16.706Z" }, + { url = "https://files.pythonhosted.org/packages/86/6c/012d894dc6e1033acd8db2b8346add33e413ec1c7c002598915278a37f79/jiter-0.12.0-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:798e46eed9eb10c3adbbacbd3bdb5ecd4cf7064e453d00dbef08802dae6937ff", size = 378615, upload-time = "2025-11-09T20:48:18.614Z" }, + { url = "https://files.pythonhosted.org/packages/87/30/d718d599f6700163e28e2c71c0bbaf6dace692e7df2592fd793ac9276717/jiter-0.12.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b3f1368f0a6719ea80013a4eb90ba72e75d7ea67cfc7846db2ca504f3df0169a", size = 364745, upload-time = "2025-11-09T20:48:20.117Z" }, + { url = "https://files.pythonhosted.org/packages/8f/85/315b45ce4b6ddc7d7fceca24068543b02bdc8782942f4ee49d652e2cc89f/jiter-0.12.0-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:65f04a9d0b4406f7e51279710b27484af411896246200e461d80d3ba0caa901a", size = 386502, upload-time = "2025-11-09T20:48:21.543Z" }, + { url = "https://files.pythonhosted.org/packages/74/0b/ce0434fb40c5b24b368fe81b17074d2840748b4952256bab451b72290a49/jiter-0.12.0-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:fd990541982a24281d12b67a335e44f117e4c6cbad3c3b75c7dea68bf4ce3a67", size = 519845, upload-time = "2025-11-09T20:48:22.964Z" }, + { url = "https://files.pythonhosted.org/packages/e8/a3/7a7a4488ba052767846b9c916d208b3ed114e3eb670ee984e4c565b9cf0d/jiter-0.12.0-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:b111b0e9152fa7df870ecaebb0bd30240d9f7fff1f2003bcb4ed0f519941820b", size = 510701, upload-time = "2025-11-09T20:48:24.483Z" }, + { url = "https://files.pythonhosted.org/packages/c3/16/052ffbf9d0467b70af24e30f91e0579e13ded0c17bb4a8eb2aed3cb60131/jiter-0.12.0-cp314-cp314-win32.whl", hash = "sha256:a78befb9cc0a45b5a5a0d537b06f8544c2ebb60d19d02c41ff15da28a9e22d42", size = 205029, upload-time = "2025-11-09T20:48:25.749Z" }, + { url = "https://files.pythonhosted.org/packages/e4/18/3cf1f3f0ccc789f76b9a754bdb7a6977e5d1d671ee97a9e14f7eb728d80e/jiter-0.12.0-cp314-cp314-win_amd64.whl", hash = "sha256:e1fe01c082f6aafbe5c8faf0ff074f38dfb911d53f07ec333ca03f8f6226debf", size = 204960, upload-time = "2025-11-09T20:48:27.415Z" }, + { url = "https://files.pythonhosted.org/packages/02/68/736821e52ecfdeeb0f024b8ab01b5a229f6b9293bbdb444c27efade50b0f/jiter-0.12.0-cp314-cp314-win_arm64.whl", hash = "sha256:d72f3b5a432a4c546ea4bedc84cce0c3404874f1d1676260b9c7f048a9855451", size = 185529, upload-time = "2025-11-09T20:48:29.125Z" }, + { url = "https://files.pythonhosted.org/packages/30/61/12ed8ee7a643cce29ac97c2281f9ce3956eb76b037e88d290f4ed0d41480/jiter-0.12.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:e6ded41aeba3603f9728ed2b6196e4df875348ab97b28fc8afff115ed42ba7a7", size = 318974, upload-time = "2025-11-09T20:48:30.87Z" }, + { url = "https://files.pythonhosted.org/packages/2d/c6/f3041ede6d0ed5e0e79ff0de4c8f14f401bbf196f2ef3971cdbe5fd08d1d/jiter-0.12.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a947920902420a6ada6ad51892082521978e9dd44a802663b001436e4b771684", size = 345932, upload-time = "2025-11-09T20:48:32.658Z" }, + { url = "https://files.pythonhosted.org/packages/d5/5d/4d94835889edd01ad0e2dbfc05f7bdfaed46292e7b504a6ac7839aa00edb/jiter-0.12.0-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:add5e227e0554d3a52cf390a7635edaffdf4f8fce4fdbcef3cc2055bb396a30c", size = 367243, upload-time = "2025-11-09T20:48:34.093Z" }, + { url = "https://files.pythonhosted.org/packages/fd/76/0051b0ac2816253a99d27baf3dda198663aff882fa6ea7deeb94046da24e/jiter-0.12.0-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3f9b1cda8fcb736250d7e8711d4580ebf004a46771432be0ae4796944b5dfa5d", size = 479315, upload-time = "2025-11-09T20:48:35.507Z" }, + { url = "https://files.pythonhosted.org/packages/70/ae/83f793acd68e5cb24e483f44f482a1a15601848b9b6f199dacb970098f77/jiter-0.12.0-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:deeb12a2223fe0135c7ff1356a143d57f95bbf1f4a66584f1fc74df21d86b993", size = 380714, upload-time = "2025-11-09T20:48:40.014Z" }, + { url = "https://files.pythonhosted.org/packages/b1/5e/4808a88338ad2c228b1126b93fcd8ba145e919e886fe910d578230dabe3b/jiter-0.12.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c596cc0f4cb574877550ce4ecd51f8037469146addd676d7c1a30ebe6391923f", size = 365168, upload-time = "2025-11-09T20:48:41.462Z" }, + { url = "https://files.pythonhosted.org/packages/0c/d4/04619a9e8095b42aef436b5aeb4c0282b4ff1b27d1db1508df9f5dc82750/jiter-0.12.0-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5ab4c823b216a4aeab3fdbf579c5843165756bd9ad87cc6b1c65919c4715f783", size = 387893, upload-time = "2025-11-09T20:48:42.921Z" }, + { url = "https://files.pythonhosted.org/packages/17/ea/d3c7e62e4546fdc39197fa4a4315a563a89b95b6d54c0d25373842a59cbe/jiter-0.12.0-cp314-cp314t-musllinux_1_1_aarch64.whl", hash = "sha256:e427eee51149edf962203ff8db75a7514ab89be5cb623fb9cea1f20b54f1107b", size = 520828, upload-time = "2025-11-09T20:48:44.278Z" }, + { url = "https://files.pythonhosted.org/packages/cc/0b/c6d3562a03fd767e31cb119d9041ea7958c3c80cb3d753eafb19b3b18349/jiter-0.12.0-cp314-cp314t-musllinux_1_1_x86_64.whl", hash = "sha256:edb868841f84c111255ba5e80339d386d937ec1fdce419518ce1bd9370fac5b6", size = 511009, upload-time = "2025-11-09T20:48:45.726Z" }, + { url = "https://files.pythonhosted.org/packages/aa/51/2cb4468b3448a8385ebcd15059d325c9ce67df4e2758d133ab9442b19834/jiter-0.12.0-cp314-cp314t-win32.whl", hash = "sha256:8bbcfe2791dfdb7c5e48baf646d37a6a3dcb5a97a032017741dea9f817dca183", size = 205110, upload-time = "2025-11-09T20:48:47.033Z" }, + { url = "https://files.pythonhosted.org/packages/b2/c5/ae5ec83dec9c2d1af805fd5fe8f74ebded9c8670c5210ec7820ce0dbeb1e/jiter-0.12.0-cp314-cp314t-win_amd64.whl", hash = "sha256:2fa940963bf02e1d8226027ef461e36af472dea85d36054ff835aeed944dd873", size = 205223, upload-time = "2025-11-09T20:48:49.076Z" }, + { url = "https://files.pythonhosted.org/packages/97/9a/3c5391907277f0e55195550cf3fa8e293ae9ee0c00fb402fec1e38c0c82f/jiter-0.12.0-cp314-cp314t-win_arm64.whl", hash = "sha256:506c9708dd29b27288f9f8f1140c3cb0e3d8ddb045956d7757b1fa0e0f39a473", size = 185564, upload-time = "2025-11-09T20:48:50.376Z" }, +] + +[[package]] +name = "openai" +version = "2.14.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, + { name = "distro" }, + { name = "httpx" }, + { name = "jiter" }, + { name = "pydantic" }, + { name = "sniffio" }, + { name = "tqdm" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/d8/b1/12fe1c196bea326261718eb037307c1c1fe1dedc2d2d4de777df822e6238/openai-2.14.0.tar.gz", hash = "sha256:419357bedde9402d23bf8f2ee372fca1985a73348debba94bddff06f19459952", size = 626938, upload-time = "2025-12-19T03:28:45.742Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/27/4b/7c1a00c2c3fbd004253937f7520f692a9650767aa73894d7a34f0d65d3f4/openai-2.14.0-py3-none-any.whl", hash = "sha256:7ea40aca4ffc4c4a776e77679021b47eec1160e341f42ae086ba949c9dcc9183", size = 1067558, upload-time = "2025-12-19T03:28:43.727Z" }, +] + +[[package]] +name = "pycparser" +version = "2.23" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/fe/cf/d2d3b9f5699fb1e4615c8e32ff220203e43b248e1dfcc6736ad9057731ca/pycparser-2.23.tar.gz", hash = "sha256:78816d4f24add8f10a06d6f05b4d424ad9e96cfebf68a4ddc99c65c0720d00c2", size = 173734, upload-time = "2025-09-09T13:23:47.91Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a0/e3/59cd50310fc9b59512193629e1984c1f95e5c8ae6e5d8c69532ccc65a7fe/pycparser-2.23-py3-none-any.whl", hash = "sha256:e5c6e8d3fbad53479cab09ac03729e0a9faf2bee3db8208a550daf5af81a5934", size = 118140, upload-time = "2025-09-09T13:23:46.651Z" }, +] + +[[package]] +name = "pydantic" +version = "2.12.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "annotated-types" }, + { name = "pydantic-core" }, + { name = "typing-extensions" }, + { name = "typing-inspection" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/69/44/36f1a6e523abc58ae5f928898e4aca2e0ea509b5aa6f6f392a5d882be928/pydantic-2.12.5.tar.gz", hash = "sha256:4d351024c75c0f085a9febbb665ce8c0c6ec5d30e903bdb6394b7ede26aebb49", size = 821591, upload-time = "2025-11-26T15:11:46.471Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5a/87/b70ad306ebb6f9b585f114d0ac2137d792b48be34d732d60e597c2f8465a/pydantic-2.12.5-py3-none-any.whl", hash = "sha256:e561593fccf61e8a20fc46dfc2dfe075b8be7d0188df33f221ad1f0139180f9d", size = 463580, upload-time = "2025-11-26T15:11:44.605Z" }, +] + +[[package]] +name = "pydantic-core" +version = "2.41.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/71/70/23b021c950c2addd24ec408e9ab05d59b035b39d97cdc1130e1bce647bb6/pydantic_core-2.41.5.tar.gz", hash = "sha256:08daa51ea16ad373ffd5e7606252cc32f07bc72b28284b6bc9c6df804816476e", size = 460952, upload-time = "2025-11-04T13:43:49.098Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/87/06/8806241ff1f70d9939f9af039c6c35f2360cf16e93c2ca76f184e76b1564/pydantic_core-2.41.5-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:941103c9be18ac8daf7b7adca8228f8ed6bb7a1849020f643b3a14d15b1924d9", size = 2120403, upload-time = "2025-11-04T13:40:25.248Z" }, + { url = "https://files.pythonhosted.org/packages/94/02/abfa0e0bda67faa65fef1c84971c7e45928e108fe24333c81f3bfe35d5f5/pydantic_core-2.41.5-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:112e305c3314f40c93998e567879e887a3160bb8689ef3d2c04b6cc62c33ac34", size = 1896206, upload-time = "2025-11-04T13:40:27.099Z" }, + { url = "https://files.pythonhosted.org/packages/15/df/a4c740c0943e93e6500f9eb23f4ca7ec9bf71b19e608ae5b579678c8d02f/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0cbaad15cb0c90aa221d43c00e77bb33c93e8d36e0bf74760cd00e732d10a6a0", size = 1919307, upload-time = "2025-11-04T13:40:29.806Z" }, + { url = "https://files.pythonhosted.org/packages/9a/e3/6324802931ae1d123528988e0e86587c2072ac2e5394b4bc2bc34b61ff6e/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:03ca43e12fab6023fc79d28ca6b39b05f794ad08ec2feccc59a339b02f2b3d33", size = 2063258, upload-time = "2025-11-04T13:40:33.544Z" }, + { url = "https://files.pythonhosted.org/packages/c9/d4/2230d7151d4957dd79c3044ea26346c148c98fbf0ee6ebd41056f2d62ab5/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dc799088c08fa04e43144b164feb0c13f9a0bc40503f8df3e9fde58a3c0c101e", size = 2214917, upload-time = "2025-11-04T13:40:35.479Z" }, + { url = "https://files.pythonhosted.org/packages/e6/9f/eaac5df17a3672fef0081b6c1bb0b82b33ee89aa5cec0d7b05f52fd4a1fa/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:97aeba56665b4c3235a0e52b2c2f5ae9cd071b8a8310ad27bddb3f7fb30e9aa2", size = 2332186, upload-time = "2025-11-04T13:40:37.436Z" }, + { url = "https://files.pythonhosted.org/packages/cf/4e/35a80cae583a37cf15604b44240e45c05e04e86f9cfd766623149297e971/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:406bf18d345822d6c21366031003612b9c77b3e29ffdb0f612367352aab7d586", size = 2073164, upload-time = "2025-11-04T13:40:40.289Z" }, + { url = "https://files.pythonhosted.org/packages/bf/e3/f6e262673c6140dd3305d144d032f7bd5f7497d3871c1428521f19f9efa2/pydantic_core-2.41.5-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b93590ae81f7010dbe380cdeab6f515902ebcbefe0b9327cc4804d74e93ae69d", size = 2179146, upload-time = "2025-11-04T13:40:42.809Z" }, + { url = "https://files.pythonhosted.org/packages/75/c7/20bd7fc05f0c6ea2056a4565c6f36f8968c0924f19b7d97bbfea55780e73/pydantic_core-2.41.5-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:01a3d0ab748ee531f4ea6c3e48ad9dac84ddba4b0d82291f87248f2f9de8d740", size = 2137788, upload-time = "2025-11-04T13:40:44.752Z" }, + { url = "https://files.pythonhosted.org/packages/3a/8d/34318ef985c45196e004bc46c6eab2eda437e744c124ef0dbe1ff2c9d06b/pydantic_core-2.41.5-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:6561e94ba9dacc9c61bce40e2d6bdc3bfaa0259d3ff36ace3b1e6901936d2e3e", size = 2340133, upload-time = "2025-11-04T13:40:46.66Z" }, + { url = "https://files.pythonhosted.org/packages/9c/59/013626bf8c78a5a5d9350d12e7697d3d4de951a75565496abd40ccd46bee/pydantic_core-2.41.5-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:915c3d10f81bec3a74fbd4faebe8391013ba61e5a1a8d48c4455b923bdda7858", size = 2324852, upload-time = "2025-11-04T13:40:48.575Z" }, + { url = "https://files.pythonhosted.org/packages/1a/d9/c248c103856f807ef70c18a4f986693a46a8ffe1602e5d361485da502d20/pydantic_core-2.41.5-cp313-cp313-win32.whl", hash = "sha256:650ae77860b45cfa6e2cdafc42618ceafab3a2d9a3811fcfbd3bbf8ac3c40d36", size = 1994679, upload-time = "2025-11-04T13:40:50.619Z" }, + { url = "https://files.pythonhosted.org/packages/9e/8b/341991b158ddab181cff136acd2552c9f35bd30380422a639c0671e99a91/pydantic_core-2.41.5-cp313-cp313-win_amd64.whl", hash = "sha256:79ec52ec461e99e13791ec6508c722742ad745571f234ea6255bed38c6480f11", size = 2019766, upload-time = "2025-11-04T13:40:52.631Z" }, + { url = "https://files.pythonhosted.org/packages/73/7d/f2f9db34af103bea3e09735bb40b021788a5e834c81eedb541991badf8f5/pydantic_core-2.41.5-cp313-cp313-win_arm64.whl", hash = "sha256:3f84d5c1b4ab906093bdc1ff10484838aca54ef08de4afa9de0f5f14d69639cd", size = 1981005, upload-time = "2025-11-04T13:40:54.734Z" }, + { url = "https://files.pythonhosted.org/packages/ea/28/46b7c5c9635ae96ea0fbb779e271a38129df2550f763937659ee6c5dbc65/pydantic_core-2.41.5-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:3f37a19d7ebcdd20b96485056ba9e8b304e27d9904d233d7b1015db320e51f0a", size = 2119622, upload-time = "2025-11-04T13:40:56.68Z" }, + { url = "https://files.pythonhosted.org/packages/74/1a/145646e5687e8d9a1e8d09acb278c8535ebe9e972e1f162ed338a622f193/pydantic_core-2.41.5-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:1d1d9764366c73f996edd17abb6d9d7649a7eb690006ab6adbda117717099b14", size = 1891725, upload-time = "2025-11-04T13:40:58.807Z" }, + { url = "https://files.pythonhosted.org/packages/23/04/e89c29e267b8060b40dca97bfc64a19b2a3cf99018167ea1677d96368273/pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:25e1c2af0fce638d5f1988b686f3b3ea8cd7de5f244ca147c777769e798a9cd1", size = 1915040, upload-time = "2025-11-04T13:41:00.853Z" }, + { url = "https://files.pythonhosted.org/packages/84/a3/15a82ac7bd97992a82257f777b3583d3e84bdb06ba6858f745daa2ec8a85/pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:506d766a8727beef16b7adaeb8ee6217c64fc813646b424d0804d67c16eddb66", size = 2063691, upload-time = "2025-11-04T13:41:03.504Z" }, + { url = "https://files.pythonhosted.org/packages/74/9b/0046701313c6ef08c0c1cf0e028c67c770a4e1275ca73131563c5f2a310a/pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4819fa52133c9aa3c387b3328f25c1facc356491e6135b459f1de698ff64d869", size = 2213897, upload-time = "2025-11-04T13:41:05.804Z" }, + { url = "https://files.pythonhosted.org/packages/8a/cd/6bac76ecd1b27e75a95ca3a9a559c643b3afcd2dd62086d4b7a32a18b169/pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2b761d210c9ea91feda40d25b4efe82a1707da2ef62901466a42492c028553a2", size = 2333302, upload-time = "2025-11-04T13:41:07.809Z" }, + { url = "https://files.pythonhosted.org/packages/4c/d2/ef2074dc020dd6e109611a8be4449b98cd25e1b9b8a303c2f0fca2f2bcf7/pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:22f0fb8c1c583a3b6f24df2470833b40207e907b90c928cc8d3594b76f874375", size = 2064877, upload-time = "2025-11-04T13:41:09.827Z" }, + { url = "https://files.pythonhosted.org/packages/18/66/e9db17a9a763d72f03de903883c057b2592c09509ccfe468187f2a2eef29/pydantic_core-2.41.5-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2782c870e99878c634505236d81e5443092fba820f0373997ff75f90f68cd553", size = 2180680, upload-time = "2025-11-04T13:41:12.379Z" }, + { url = "https://files.pythonhosted.org/packages/d3/9e/3ce66cebb929f3ced22be85d4c2399b8e85b622db77dad36b73c5387f8f8/pydantic_core-2.41.5-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:0177272f88ab8312479336e1d777f6b124537d47f2123f89cb37e0accea97f90", size = 2138960, upload-time = "2025-11-04T13:41:14.627Z" }, + { url = "https://files.pythonhosted.org/packages/a6/62/205a998f4327d2079326b01abee48e502ea739d174f0a89295c481a2272e/pydantic_core-2.41.5-cp314-cp314-musllinux_1_1_armv7l.whl", hash = "sha256:63510af5e38f8955b8ee5687740d6ebf7c2a0886d15a6d65c32814613681bc07", size = 2339102, upload-time = "2025-11-04T13:41:16.868Z" }, + { url = "https://files.pythonhosted.org/packages/3c/0d/f05e79471e889d74d3d88f5bd20d0ed189ad94c2423d81ff8d0000aab4ff/pydantic_core-2.41.5-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:e56ba91f47764cc14f1daacd723e3e82d1a89d783f0f5afe9c364b8bb491ccdb", size = 2326039, upload-time = "2025-11-04T13:41:18.934Z" }, + { url = "https://files.pythonhosted.org/packages/ec/e1/e08a6208bb100da7e0c4b288eed624a703f4d129bde2da475721a80cab32/pydantic_core-2.41.5-cp314-cp314-win32.whl", hash = "sha256:aec5cf2fd867b4ff45b9959f8b20ea3993fc93e63c7363fe6851424c8a7e7c23", size = 1995126, upload-time = "2025-11-04T13:41:21.418Z" }, + { url = "https://files.pythonhosted.org/packages/48/5d/56ba7b24e9557f99c9237e29f5c09913c81eeb2f3217e40e922353668092/pydantic_core-2.41.5-cp314-cp314-win_amd64.whl", hash = "sha256:8e7c86f27c585ef37c35e56a96363ab8de4e549a95512445b85c96d3e2f7c1bf", size = 2015489, upload-time = "2025-11-04T13:41:24.076Z" }, + { url = "https://files.pythonhosted.org/packages/4e/bb/f7a190991ec9e3e0ba22e4993d8755bbc4a32925c0b5b42775c03e8148f9/pydantic_core-2.41.5-cp314-cp314-win_arm64.whl", hash = "sha256:e672ba74fbc2dc8eea59fb6d4aed6845e6905fc2a8afe93175d94a83ba2a01a0", size = 1977288, upload-time = "2025-11-04T13:41:26.33Z" }, + { url = "https://files.pythonhosted.org/packages/92/ed/77542d0c51538e32e15afe7899d79efce4b81eee631d99850edc2f5e9349/pydantic_core-2.41.5-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:8566def80554c3faa0e65ac30ab0932b9e3a5cd7f8323764303d468e5c37595a", size = 2120255, upload-time = "2025-11-04T13:41:28.569Z" }, + { url = "https://files.pythonhosted.org/packages/bb/3d/6913dde84d5be21e284439676168b28d8bbba5600d838b9dca99de0fad71/pydantic_core-2.41.5-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:b80aa5095cd3109962a298ce14110ae16b8c1aece8b72f9dafe81cf597ad80b3", size = 1863760, upload-time = "2025-11-04T13:41:31.055Z" }, + { url = "https://files.pythonhosted.org/packages/5a/f0/e5e6b99d4191da102f2b0eb9687aaa7f5bea5d9964071a84effc3e40f997/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3006c3dd9ba34b0c094c544c6006cc79e87d8612999f1a5d43b769b89181f23c", size = 1878092, upload-time = "2025-11-04T13:41:33.21Z" }, + { url = "https://files.pythonhosted.org/packages/71/48/36fb760642d568925953bcc8116455513d6e34c4beaa37544118c36aba6d/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:72f6c8b11857a856bcfa48c86f5368439f74453563f951e473514579d44aa612", size = 2053385, upload-time = "2025-11-04T13:41:35.508Z" }, + { url = "https://files.pythonhosted.org/packages/20/25/92dc684dd8eb75a234bc1c764b4210cf2646479d54b47bf46061657292a8/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5cb1b2f9742240e4bb26b652a5aeb840aa4b417c7748b6f8387927bc6e45e40d", size = 2218832, upload-time = "2025-11-04T13:41:37.732Z" }, + { url = "https://files.pythonhosted.org/packages/e2/09/f53e0b05023d3e30357d82eb35835d0f6340ca344720a4599cd663dca599/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bd3d54f38609ff308209bd43acea66061494157703364ae40c951f83ba99a1a9", size = 2327585, upload-time = "2025-11-04T13:41:40Z" }, + { url = "https://files.pythonhosted.org/packages/aa/4e/2ae1aa85d6af35a39b236b1b1641de73f5a6ac4d5a7509f77b814885760c/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2ff4321e56e879ee8d2a879501c8e469414d948f4aba74a2d4593184eb326660", size = 2041078, upload-time = "2025-11-04T13:41:42.323Z" }, + { url = "https://files.pythonhosted.org/packages/cd/13/2e215f17f0ef326fc72afe94776edb77525142c693767fc347ed6288728d/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d0d2568a8c11bf8225044aa94409e21da0cb09dcdafe9ecd10250b2baad531a9", size = 2173914, upload-time = "2025-11-04T13:41:45.221Z" }, + { url = "https://files.pythonhosted.org/packages/02/7a/f999a6dcbcd0e5660bc348a3991c8915ce6599f4f2c6ac22f01d7a10816c/pydantic_core-2.41.5-cp314-cp314t-musllinux_1_1_aarch64.whl", hash = "sha256:a39455728aabd58ceabb03c90e12f71fd30fa69615760a075b9fec596456ccc3", size = 2129560, upload-time = "2025-11-04T13:41:47.474Z" }, + { url = "https://files.pythonhosted.org/packages/3a/b1/6c990ac65e3b4c079a4fb9f5b05f5b013afa0f4ed6780a3dd236d2cbdc64/pydantic_core-2.41.5-cp314-cp314t-musllinux_1_1_armv7l.whl", hash = "sha256:239edca560d05757817c13dc17c50766136d21f7cd0fac50295499ae24f90fdf", size = 2329244, upload-time = "2025-11-04T13:41:49.992Z" }, + { url = "https://files.pythonhosted.org/packages/d9/02/3c562f3a51afd4d88fff8dffb1771b30cfdfd79befd9883ee094f5b6c0d8/pydantic_core-2.41.5-cp314-cp314t-musllinux_1_1_x86_64.whl", hash = "sha256:2a5e06546e19f24c6a96a129142a75cee553cc018ffee48a460059b1185f4470", size = 2331955, upload-time = "2025-11-04T13:41:54.079Z" }, + { url = "https://files.pythonhosted.org/packages/5c/96/5fb7d8c3c17bc8c62fdb031c47d77a1af698f1d7a406b0f79aaa1338f9ad/pydantic_core-2.41.5-cp314-cp314t-win32.whl", hash = "sha256:b4ececa40ac28afa90871c2cc2b9ffd2ff0bf749380fbdf57d165fd23da353aa", size = 1988906, upload-time = "2025-11-04T13:41:56.606Z" }, + { url = "https://files.pythonhosted.org/packages/22/ed/182129d83032702912c2e2d8bbe33c036f342cc735737064668585dac28f/pydantic_core-2.41.5-cp314-cp314t-win_amd64.whl", hash = "sha256:80aa89cad80b32a912a65332f64a4450ed00966111b6615ca6816153d3585a8c", size = 1981607, upload-time = "2025-11-04T13:41:58.889Z" }, + { url = "https://files.pythonhosted.org/packages/9f/ed/068e41660b832bb0b1aa5b58011dea2a3fe0ba7861ff38c4d4904c1c1a99/pydantic_core-2.41.5-cp314-cp314t-win_arm64.whl", hash = "sha256:35b44f37a3199f771c3eaa53051bc8a70cd7b54f333531c59e29fd4db5d15008", size = 1974769, upload-time = "2025-11-04T13:42:01.186Z" }, +] + +[[package]] +name = "pygithub" +version = "2.8.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pyjwt", extra = ["crypto"] }, + { name = "pynacl" }, + { name = "requests" }, + { name = "typing-extensions" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c1/74/e560bdeffea72ecb26cff27f0fad548bbff5ecc51d6a155311ea7f9e4c4c/pygithub-2.8.1.tar.gz", hash = "sha256:341b7c78521cb07324ff670afd1baa2bf5c286f8d9fd302c1798ba594a5400c9", size = 2246994, upload-time = "2025-09-02T17:41:54.674Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/07/ba/7049ce39f653f6140aac4beb53a5aaf08b4407b6a3019aae394c1c5244ff/pygithub-2.8.1-py3-none-any.whl", hash = "sha256:23a0a5bca93baef082e03411bf0ce27204c32be8bfa7abc92fe4a3e132936df0", size = 432709, upload-time = "2025-09-02T17:41:52.947Z" }, +] + +[[package]] +name = "pyjwt" +version = "2.10.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e7/46/bd74733ff231675599650d3e47f361794b22ef3e3770998dda30d3b63726/pyjwt-2.10.1.tar.gz", hash = "sha256:3cc5772eb20009233caf06e9d8a0577824723b44e6648ee0a2aedb6cf9381953", size = 87785, upload-time = "2024-11-28T03:43:29.933Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/61/ad/689f02752eeec26aed679477e80e632ef1b682313be70793d798c1d5fc8f/PyJWT-2.10.1-py3-none-any.whl", hash = "sha256:dcdd193e30abefd5debf142f9adfcdd2b58004e644f25406ffaebd50bd98dacb", size = 22997, upload-time = "2024-11-28T03:43:27.893Z" }, +] + +[package.optional-dependencies] +crypto = [ + { name = "cryptography" }, +] + +[[package]] +name = "pynacl" +version = "1.6.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cffi", marker = "platform_python_implementation != 'PyPy'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b2/46/aeca065d227e2265125aea590c9c47fbf5786128c9400ee0eb7c88931f06/pynacl-1.6.1.tar.gz", hash = "sha256:8d361dac0309f2b6ad33b349a56cd163c98430d409fa503b10b70b3ad66eaa1d", size = 3506616, upload-time = "2025-11-10T16:02:13.195Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/75/d6/4b2dca33ed512de8f54e5c6074aa06eaeb225bfbcd9b16f33a414389d6bd/pynacl-1.6.1-cp314-cp314t-macosx_10_10_universal2.whl", hash = "sha256:7d7c09749450c385301a3c20dca967a525152ae4608c0a096fe8464bfc3df93d", size = 389109, upload-time = "2025-11-10T16:01:28.79Z" }, + { url = "https://files.pythonhosted.org/packages/3c/30/e8dbb8ff4fa2559bbbb2187ba0d0d7faf728d17cb8396ecf4a898b22d3da/pynacl-1.6.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:fc734c1696ffd49b40f7c1779c89ba908157c57345cf626be2e0719488a076d3", size = 808254, upload-time = "2025-11-10T16:01:37.839Z" }, + { url = "https://files.pythonhosted.org/packages/44/f9/f5449c652f31da00249638dbab065ad4969c635119094b79b17c3a4da2ab/pynacl-1.6.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3cd787ec1f5c155dc8ecf39b1333cfef41415dc96d392f1ce288b4fe970df489", size = 1407365, upload-time = "2025-11-10T16:01:40.454Z" }, + { url = "https://files.pythonhosted.org/packages/eb/2f/9aa5605f473b712065c0a193ebf4ad4725d7a245533f0cd7e5dcdbc78f35/pynacl-1.6.1-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6b35d93ab2df03ecb3aa506be0d3c73609a51449ae0855c2e89c7ed44abde40b", size = 843842, upload-time = "2025-11-10T16:01:30.524Z" }, + { url = "https://files.pythonhosted.org/packages/32/8d/748f0f6956e207453da8f5f21a70885fbbb2e060d5c9d78e0a4a06781451/pynacl-1.6.1-cp314-cp314t-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:dece79aecbb8f4640a1adbb81e4aa3bfb0e98e99834884a80eb3f33c7c30e708", size = 1445559, upload-time = "2025-11-10T16:01:33.663Z" }, + { url = "https://files.pythonhosted.org/packages/78/d0/2387f0dcb0e9816f38373999e48db4728ed724d31accdd4e737473319d35/pynacl-1.6.1-cp314-cp314t-manylinux_2_34_aarch64.whl", hash = "sha256:c2228054f04bf32d558fb89bb99f163a8197d5a9bf4efa13069a7fa8d4b93fc3", size = 825791, upload-time = "2025-11-10T16:01:34.823Z" }, + { url = "https://files.pythonhosted.org/packages/18/3d/ef6fb7eb072aaf15f280bc66f26ab97e7fc9efa50fb1927683013ef47473/pynacl-1.6.1-cp314-cp314t-manylinux_2_34_x86_64.whl", hash = "sha256:2b12f1b97346f177affcdfdc78875ff42637cb40dcf79484a97dae3448083a78", size = 1410843, upload-time = "2025-11-10T16:01:36.401Z" }, + { url = "https://files.pythonhosted.org/packages/e3/fb/23824a017526850ee7d8a1cc4cd1e3e5082800522c10832edbbca8619537/pynacl-1.6.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:e735c3a1bdfde3834503baf1a6d74d4a143920281cb724ba29fb84c9f49b9c48", size = 801140, upload-time = "2025-11-10T16:01:42.013Z" }, + { url = "https://files.pythonhosted.org/packages/5d/d1/ebc6b182cb98603a35635b727d62f094bc201bf610f97a3bb6357fe688d2/pynacl-1.6.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:3384a454adf5d716a9fadcb5eb2e3e72cd49302d1374a60edc531c9957a9b014", size = 1371966, upload-time = "2025-11-10T16:01:43.297Z" }, + { url = "https://files.pythonhosted.org/packages/64/f4/c9d7b6f02924b1f31db546c7bd2a83a2421c6b4a8e6a2e53425c9f2802e0/pynacl-1.6.1-cp314-cp314t-win32.whl", hash = "sha256:d8615ee34d01c8e0ab3f302dcdd7b32e2bcf698ba5f4809e7cc407c8cdea7717", size = 230482, upload-time = "2025-11-10T16:01:47.688Z" }, + { url = "https://files.pythonhosted.org/packages/c4/2c/942477957fba22da7bf99131850e5ebdff66623418ab48964e78a7a8293e/pynacl-1.6.1-cp314-cp314t-win_amd64.whl", hash = "sha256:5f5b35c1a266f8a9ad22525049280a600b19edd1f785bccd01ae838437dcf935", size = 243232, upload-time = "2025-11-10T16:01:45.208Z" }, + { url = "https://files.pythonhosted.org/packages/7a/0c/bdbc0d04a53b96a765ab03aa2cf9a76ad8653d70bf1665459b9a0dedaa1c/pynacl-1.6.1-cp314-cp314t-win_arm64.whl", hash = "sha256:d984c91fe3494793b2a1fb1e91429539c6c28e9ec8209d26d25041ec599ccf63", size = 187907, upload-time = "2025-11-10T16:01:46.328Z" }, + { url = "https://files.pythonhosted.org/packages/49/41/3cfb3b4f3519f6ff62bf71bf1722547644bcfb1b05b8fdbdc300249ba113/pynacl-1.6.1-cp38-abi3-macosx_10_10_universal2.whl", hash = "sha256:a6f9fd6d6639b1e81115c7f8ff16b8dedba1e8098d2756275d63d208b0e32021", size = 387591, upload-time = "2025-11-10T16:01:49.1Z" }, + { url = "https://files.pythonhosted.org/packages/18/21/b8a6563637799f617a3960f659513eccb3fcc655d5fc2be6e9dc6416826f/pynacl-1.6.1-cp38-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:e49a3f3d0da9f79c1bec2aa013261ab9fa651c7da045d376bd306cf7c1792993", size = 798866, upload-time = "2025-11-10T16:01:55.688Z" }, + { url = "https://files.pythonhosted.org/packages/e8/6c/dc38033bc3ea461e05ae8f15a81e0e67ab9a01861d352ae971c99de23e7c/pynacl-1.6.1-cp38-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:7713f8977b5d25f54a811ec9efa2738ac592e846dd6e8a4d3f7578346a841078", size = 1398001, upload-time = "2025-11-10T16:01:57.101Z" }, + { url = "https://files.pythonhosted.org/packages/9f/05/3ec0796a9917100a62c5073b20c4bce7bf0fea49e99b7906d1699cc7b61b/pynacl-1.6.1-cp38-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5a3becafc1ee2e5ea7f9abc642f56b82dcf5be69b961e782a96ea52b55d8a9fc", size = 834024, upload-time = "2025-11-10T16:01:50.228Z" }, + { url = "https://files.pythonhosted.org/packages/f0/b7/ae9982be0f344f58d9c64a1c25d1f0125c79201634efe3c87305ac7cb3e3/pynacl-1.6.1-cp38-abi3-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4ce50d19f1566c391fedc8dc2f2f5be265ae214112ebe55315e41d1f36a7f0a9", size = 1436766, upload-time = "2025-11-10T16:01:51.886Z" }, + { url = "https://files.pythonhosted.org/packages/b4/51/b2ccbf89cf3025a02e044dd68a365cad593ebf70f532299f2c047d2b7714/pynacl-1.6.1-cp38-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:543f869140f67d42b9b8d47f922552d7a967e6c116aad028c9bfc5f3f3b3a7b7", size = 817275, upload-time = "2025-11-10T16:01:53.351Z" }, + { url = "https://files.pythonhosted.org/packages/a8/6c/dd9ee8214edf63ac563b08a9b30f98d116942b621d39a751ac3256694536/pynacl-1.6.1-cp38-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:a2bb472458c7ca959aeeff8401b8efef329b0fc44a89d3775cffe8fad3398ad8", size = 1401891, upload-time = "2025-11-10T16:01:54.587Z" }, + { url = "https://files.pythonhosted.org/packages/0f/c1/97d3e1c83772d78ee1db3053fd674bc6c524afbace2bfe8d419fd55d7ed1/pynacl-1.6.1-cp38-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:3206fa98737fdc66d59b8782cecc3d37d30aeec4593d1c8c145825a345bba0f0", size = 772291, upload-time = "2025-11-10T16:01:58.111Z" }, + { url = "https://files.pythonhosted.org/packages/4d/ca/691ff2fe12f3bb3e43e8e8df4b806f6384593d427f635104d337b8e00291/pynacl-1.6.1-cp38-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:53543b4f3d8acb344f75fd4d49f75e6572fce139f4bfb4815a9282296ff9f4c0", size = 1370839, upload-time = "2025-11-10T16:01:59.252Z" }, + { url = "https://files.pythonhosted.org/packages/30/27/06fe5389d30391fce006442246062cc35773c84fbcad0209fbbf5e173734/pynacl-1.6.1-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:319de653ef84c4f04e045eb250e6101d23132372b0a61a7acf91bac0fda8e58c", size = 791371, upload-time = "2025-11-10T16:02:01.075Z" }, + { url = "https://files.pythonhosted.org/packages/2c/7a/e2bde8c9d39074a5aa046c7d7953401608d1f16f71e237f4bef3fb9d7e49/pynacl-1.6.1-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:262a8de6bba4aee8a66f5edf62c214b06647461c9b6b641f8cd0cb1e3b3196fe", size = 1363031, upload-time = "2025-11-10T16:02:02.656Z" }, + { url = "https://files.pythonhosted.org/packages/dd/b6/63fd77264dae1087770a1bb414bc604470f58fbc21d83822fc9c76248076/pynacl-1.6.1-cp38-abi3-win32.whl", hash = "sha256:9fd1a4eb03caf8a2fe27b515a998d26923adb9ddb68db78e35ca2875a3830dde", size = 226585, upload-time = "2025-11-10T16:02:07.116Z" }, + { url = "https://files.pythonhosted.org/packages/12/c8/b419180f3fdb72ab4d45e1d88580761c267c7ca6eda9a20dcbcba254efe6/pynacl-1.6.1-cp38-abi3-win_amd64.whl", hash = "sha256:a569a4069a7855f963940040f35e87d8bc084cb2d6347428d5ad20550a0a1a21", size = 238923, upload-time = "2025-11-10T16:02:04.401Z" }, + { url = "https://files.pythonhosted.org/packages/35/76/c34426d532e4dce7ff36e4d92cb20f4cbbd94b619964b93d24e8f5b5510f/pynacl-1.6.1-cp38-abi3-win_arm64.whl", hash = "sha256:5953e8b8cfadb10889a6e7bd0f53041a745d1b3d30111386a1bb37af171e6daf", size = 183970, upload-time = "2025-11-10T16:02:05.786Z" }, +] + +[[package]] +name = "requests" +version = "2.32.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "charset-normalizer" }, + { name = "idna" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c9/74/b3ff8e6c8446842c3f5c837e9c3dfcfe2018ea6ecef224c710c85ef728f4/requests-2.32.5.tar.gz", hash = "sha256:dbba0bac56e100853db0ea71b82b4dfd5fe2bf6d3754a8893c3af500cec7d7cf", size = 134517, upload-time = "2025-08-18T20:46:02.573Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1e/db/4254e3eabe8020b458f1a747140d32277ec7a271daf1d235b70dc0b4e6e3/requests-2.32.5-py3-none-any.whl", hash = "sha256:2462f94637a34fd532264295e186976db0f5d453d1cdd31473c85a6a161affb6", size = 64738, upload-time = "2025-08-18T20:46:00.542Z" }, +] + +[[package]] +name = "sniffio" +version = "1.3.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a2/87/a6771e1546d97e7e041b6ae58d80074f81b7d5121207425c964ddf5cfdbd/sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc", size = 20372, upload-time = "2024-02-25T23:20:04.057Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2", size = 10235, upload-time = "2024-02-25T23:20:01.196Z" }, +] + +[[package]] +name = "socksio" +version = "1.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f8/5c/48a7d9495be3d1c651198fd99dbb6ce190e2274d0f28b9051307bdec6b85/socksio-1.0.0.tar.gz", hash = "sha256:f88beb3da5b5c38b9890469de67d0cb0f9d494b78b106ca1845f96c10b91c4ac", size = 19055, upload-time = "2020-04-17T15:50:34.664Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/37/c3/6eeb6034408dac0fa653d126c9204ade96b819c936e136c5e8a6897eee9c/socksio-1.0.0-py3-none-any.whl", hash = "sha256:95dc1f15f9b34e8d7b16f06d74b8ccf48f609af32ab33c608d08761c5dcbb1f3", size = 12763, upload-time = "2020-04-17T15:50:31.878Z" }, +] + +[[package]] +name = "tqdm" +version = "4.67.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a8/4b/29b4ef32e036bb34e4ab51796dd745cdba7ed47ad142a9f4a1eb8e0c744d/tqdm-4.67.1.tar.gz", hash = "sha256:f8aef9c52c08c13a65f30ea34f4e5aac3fd1a34959879d7e59e63027286627f2", size = 169737, upload-time = "2024-11-24T20:12:22.481Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d0/30/dc54f88dd4a2b5dc8a0279bdd7270e735851848b762aeb1c1184ed1f6b14/tqdm-4.67.1-py3-none-any.whl", hash = "sha256:26445eca388f82e72884e0d580d5464cd801a3ea01e63e5601bdff9ba6a48de2", size = 78540, upload-time = "2024-11-24T20:12:19.698Z" }, +] + +[[package]] +name = "typing-extensions" +version = "4.15.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/72/94/1a15dd82efb362ac84269196e94cf00f187f7ed21c242792a923cdb1c61f/typing_extensions-4.15.0.tar.gz", hash = "sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466", size = 109391, upload-time = "2025-08-25T13:49:26.313Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl", hash = "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548", size = 44614, upload-time = "2025-08-25T13:49:24.86Z" }, +] + +[[package]] +name = "typing-inspection" +version = "0.4.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/55/e3/70399cb7dd41c10ac53367ae42139cf4b1ca5f36bb3dc6c9d33acdb43655/typing_inspection-0.4.2.tar.gz", hash = "sha256:ba561c48a67c5958007083d386c3295464928b01faa735ab8547c5692e87f464", size = 75949, upload-time = "2025-10-01T02:14:41.687Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/dc/9b/47798a6c91d8bdb567fe2698fe81e0c6b7cb7ef4d13da4114b41d239f65d/typing_inspection-0.4.2-py3-none-any.whl", hash = "sha256:4ed1cacbdc298c220f1bd249ed5287caa16f34d44ef4e9c3d0cbad5b521545e7", size = 14611, upload-time = "2025-10-01T02:14:40.154Z" }, +] + +[[package]] +name = "urllib3" +version = "2.6.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/1e/24/a2a2ed9addd907787d7aa0355ba36a6cadf1768b934c652ea78acbd59dcd/urllib3-2.6.2.tar.gz", hash = "sha256:016f9c98bb7e98085cb2b4b17b87d2c702975664e4f060c6532e64d1c1a5e797", size = 432930, upload-time = "2025-12-11T15:56:40.252Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6d/b9/4095b668ea3678bf6a0af005527f39de12fb026516fb3df17495a733b7f8/urllib3-2.6.2-py3-none-any.whl", hash = "sha256:ec21cddfe7724fc7cb4ba4bea7aa8e2ef36f607a4bab81aa6ce42a13dc3f03dd", size = 131182, upload-time = "2025-12-11T15:56:38.584Z" }, +] From b6efb4ed0a7eb235c363370053804b05c643151f Mon Sep 17 00:00:00 2001 From: Cheng Zheng Date: Sat, 20 Dec 2025 13:32:46 +0800 Subject: [PATCH 033/126] =?UTF-8?q?=E8=87=AA=E5=8A=A8=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/scripts/process_item.py | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/.github/scripts/process_item.py b/.github/scripts/process_item.py index 8466ca5..a684c9e 100644 --- a/.github/scripts/process_item.py +++ b/.github/scripts/process_item.py @@ -1,4 +1,5 @@ import os +import re import datetime from github import Github # https://github.com/PyGithub/PyGithub from openai import OpenAI @@ -16,6 +17,24 @@ TRIGGER_EMOJI = "rocket" # 🚀 SUCCESS_EMOJI = "hooray" # 🎉 # ========================================== +def remove_quote_blocks(text: str) -> str: + """移除 GitHub 引用回复块(以 > 开头的行)""" + lines = text.split('\n') + cleaned_lines = [] + + for line in lines: + # 检查去除前导空格后是否以 > 开头 + if not line.lstrip().startswith('>'): + cleaned_lines.append(line) + + # 重新拼接,并清理多余空行 + result = '\n'.join(cleaned_lines) + + # 移除连续多个空行,保留单个空行 + result = re.sub(r'\n{3,}', '\n\n', result) + + return result.strip() + def get_ai_format(raw_text): client = OpenAI(api_key=API_KEY, base_url=BASE_URL) prompt = f""" @@ -60,9 +79,10 @@ def main(): if has_trigger and not has_success: print(f"发现待处理评论 ID: {comment.id}") - - # AI 格式化内容 - formatted_entry = get_ai_format(comment.body) + + # 清理引用块,然后 AI 格式化内容 + cleaned_body = remove_quote_blocks(comment.body) + formatted_entry = get_ai_format(cleaned_body) # 准备修改 README.md content = repo.get_contents("README.md", ref="master") @@ -106,7 +126,7 @@ def main(): pr = repo.create_pull( title=f"新增项目:来自评论 {comment.id}", - body=f"由管理员 {ADMIN_HANDLE} 标记并自动生成。\n原始评论:{comment.html_url}", + body=f"{comment.body}\n\n---\n原始评论:`{comment.html_url}`", head=branch_name, base="master" ) From f28596345d90ef499e2aceca440e8ee29abaf1b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28ZhengCheng=29?= Date: Sat, 20 Dec 2025 13:36:02 +0800 Subject: [PATCH 034/126] docs: add project from hwlvipone --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index 323049a..29ba00a 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,11 @@ ## 3. 项目列表 +### 2025 年 12 月 20 号添加 + +#### hwlvipone - [Github](https://github.com/hwlvipone) +* [ZestyGen](https://zestygen.com/):用途是基于nano banana pro的图片视频聚合网站。 + ### 2025 年 12 月 18 号添加 #### jonbrown66 - [Github](https://github.com/jonbrown66/bananacanvas-ai) * :white_check_mark: [BananaCanvas AI](https://bananacanvas-ai.vercel.app/): 前沿的创意工作区,结合了基于对话的 AI 交互和无限画布,用于多模态内容创作。 From d7b7dbf1f8b0e0a1cff6fcede4a2e6f1649419cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28ZhengCheng=29?= Date: Sat, 20 Dec 2025 13:37:13 +0800 Subject: [PATCH 035/126] Update README.md --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index 29ba00a..acb01af 100644 --- a/README.md +++ b/README.md @@ -21,9 +21,8 @@ ## 3. 项目列表 ### 2025 年 12 月 20 号添加 - #### hwlvipone - [Github](https://github.com/hwlvipone) -* [ZestyGen](https://zestygen.com/):用途是基于nano banana pro的图片视频聚合网站。 +* :white_check_mark: [ZestyGen](https://zestygen.com/):基于 Nano Banana Pro 的图片视频聚合网站 ### 2025 年 12 月 18 号添加 #### jonbrown66 - [Github](https://github.com/jonbrown66/bananacanvas-ai) From 57e9b3e23891fd80d9abf31efda50889a44adbe2 Mon Sep 17 00:00:00 2001 From: Cheng Zheng Date: Sat, 20 Dec 2025 13:38:18 +0800 Subject: [PATCH 036/126] =?UTF-8?q?=E5=BA=94=E8=AF=A5=20OK=20=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/scripts/process_item.py | 103 ++++++++++++++++---------------- 1 file changed, 53 insertions(+), 50 deletions(-) diff --git a/.github/scripts/process_item.py b/.github/scripts/process_item.py index a684c9e..6ee9291 100644 --- a/.github/scripts/process_item.py +++ b/.github/scripts/process_item.py @@ -1,54 +1,49 @@ import os import re import datetime -from github import Github # https://github.com/PyGithub/PyGithub +from github import Github from openai import OpenAI from datetime import datetime, timedelta, timezone - # ================= 配置区 ================= GITHUB_TOKEN = os.getenv("GITHUB_TOKEN") API_KEY = os.getenv("LLM_API_KEY") BASE_URL = os.getenv("LLM_BASE_URL", "https://api.openai.com/v1") -REPO_NAME = "1c7/chinese-independent-developer" # os.getenv("GITHUB_REPOSITORY") -ISSUE_NUMBER = 160 # 你在维护的那个 Issue 编号 -ADMIN_HANDLE = "1c7" # 替换为你的 GitHub ID +REPO_NAME = "1c7/chinese-independent-developer" +ISSUE_NUMBER = 160 +ADMIN_HANDLE = "1c7" TRIGGER_EMOJI = "rocket" # 🚀 SUCCESS_EMOJI = "hooray" # 🎉 # ========================================== def remove_quote_blocks(text: str) -> str: - """移除 GitHub 引用回复块(以 > 开头的行)""" + """移除 GitHub 引用回复块""" lines = text.split('\n') cleaned_lines = [] - for line in lines: - # 检查去除前导空格后是否以 > 开头 if not line.lstrip().startswith('>'): cleaned_lines.append(line) - - # 重新拼接,并清理多余空行 result = '\n'.join(cleaned_lines) - - # 移除连续多个空行,保留单个空行 result = re.sub(r'\n{3,}', '\n\n', result) - return result.strip() -def get_ai_format(raw_text): +def get_ai_project_line(raw_text): + """只让 AI 提取项目名称、链接和描述行""" client = OpenAI(api_key=API_KEY, base_url=BASE_URL) prompt = f""" -你是一个严格的文案编辑。任务是将用户的项目介绍转换为标准的 Markdown 格式。 - -4. 格式模板: -#### 制作者名字 - [Github](链接) -* :white_check_mark: [项目名](链接):用途描述 +任务:将用户的项目介绍转换为单行 Markdown 格式。 +要求: +1. 严格禁止使用“一款、一个、完全免费、高效、简洁、强大、快速、好用”等营销废话。 +2. 描述必须以“用途”或“功能”作为动词开头。 +3. 严禁使用加粗格式(不要使用 **)。 +4. 仅输出以下格式的一行文字: +* :white_check_mark: [项目名](网址):用途描述 待处理文本: {raw_text} """ response = client.chat.completions.create( - model="deepseek-reasoner", # 或者使用 deepseek-chat + model="deepseek-chat", messages=[{"role": "user", "content": prompt}], temperature=0.3 ) @@ -59,87 +54,95 @@ def main(): repo = g.get_repo(REPO_NAME) issue = repo.get_issue(ISSUE_NUMBER) - # 计算 3 天前的时间(GitHub API 使用的是 UTC 时间) time_threshold = datetime.now(timezone.utc) - timedelta(days=3) - - # 如果你一定要死守 2025-12-15,也可以手动指定: - # time_threshold = datetime(2025, 12, 15, tzinfo=timezone.utc) - - # 重点:在这里加上 since 参数 comments = issue.get_comments(since=time_threshold) processed_count = 0 for comment in comments: - # 1. 检查是否有你的 🚀 反应 reactions = comment.get_reactions() has_trigger = any(r.content == TRIGGER_EMOJI and r.user.login == ADMIN_HANDLE for r in reactions) - # 2. 检查是否已经标记过成功 🎉 has_success = any(r.content == SUCCESS_EMOJI for r in reactions) if has_trigger and not has_success: - print(f"发现待处理评论 ID: {comment.id}") + print(f"处理评论 ID: {comment.id}") - # 清理引用块,然后 AI 格式化内容 cleaned_body = remove_quote_blocks(comment.body) - formatted_entry = get_ai_format(cleaned_body) + + # --- 新逻辑:判断用户是否自带了 Header --- + # 匹配以 #### 开头的行 + header_match = re.search(r'^####\s+.*', cleaned_body, re.MULTILINE) - # 准备修改 README.md + if header_match: + # 1. 提取用户自己写的 Header + header_line = header_match.group(0).strip() + # 2. 从正文中移除这一行,避免干扰 AI + body_for_ai = cleaned_body.replace(header_line, "").strip() + print(f"检测到用户自带 Header: {header_line}") + else: + # 1. 自动生成 Header + author_name = comment.user.login + author_url = comment.user.html_url + header_line = f"#### {author_name} - [Github]({author_url})" + body_for_ai = cleaned_body + print(f"自动生成 Header: {header_line}") + + # 3. AI 仅处理项目详情行 + project_line = get_ai_project_line(body_for_ai) + + # 组合成最终条目 + formatted_entry = f"{header_line}\n{project_line}" + + # 4. 更新 README.md 逻辑 content = repo.get_contents("README.md", ref="master") readme_text = content.decoded_content.decode("utf-8") - # 插入日期逻辑 today_str = datetime.now().strftime("%Y 年 %m 月 %d 号添加") date_header = f"### {today_str}" if date_header not in readme_text: - # 在 "3. 项目列表" 下方插入新日期 new_readme = readme_text.replace("3. 项目列表\n", f"3. 项目列表\n\n{date_header}\n") else: new_readme = readme_text - # 在日期标题下插入新条目 insertion_point = new_readme.find(date_header) + len(date_header) final_readme = new_readme[:insertion_point] + "\n\n" + formatted_entry + new_readme[insertion_point:] - # 创建新分支并提交 PR + # 5. 提交 PR 逻辑 branch_name = f"add-project-{comment.id}" base = repo.get_branch("master") - # 检查分支是否已存在,如果存在则删除 try: - existing_ref = repo.get_git_ref(f"heads/{branch_name}") - existing_ref.delete() - print(f"已删除现有分支: {branch_name}") + repo.get_git_ref(f"heads/{branch_name}").delete() except: - pass # 分支不存在,继续 + pass repo.create_git_ref(ref=f"refs/heads/{branch_name}", sha=base.commit.sha) - repo.update_file( "README.md", - f"docs: add new project from comment {comment.id}", + f"docs: add project from {comment.user.login}", final_readme, content.sha, branch=branch_name ) + # 为了彻底消除 Issue 里的 "mentioned this" 红框, + # 在 https:// 后面插入一个不可见字符 \u200b + safe_url = comment.html_url.replace("https://", "https://\u200b") + pr = repo.create_pull( - title=f"新增项目:来自评论 {comment.id}", - body=f"{comment.body}\n\n---\n原始评论:`{comment.html_url}`", + title=f"新增项目:来自 {comment.user.login} 的评论", + body=f"由管理员标记并自动提取。\n\n原始评论:{safe_url}", head=branch_name, base="master" ) - # 用表情标记为成功,并回复 comment.create_reaction(SUCCESS_EMOJI) - # comment.create_comment(f"感谢提交,已添加!\n\nPR 链接:{pr.html_url}") - + comment.create_comment(f"感谢提交,已添加!\n\nPR 链接:{pr.html_url}") processed_count += 1 - print(f"评论 {comment.id} 处理成功,已创建 PR。") if processed_count == 0: - print("没有发现需要处理的新评论。") + print("未发现新标记的任务。") if __name__ == "__main__": main() \ No newline at end of file From e71a840143c6745dc70e93a77f0253c58fdff35d Mon Sep 17 00:00:00 2001 From: Cheng Zheng Date: Sat, 20 Dec 2025 13:42:03 +0800 Subject: [PATCH 037/126] log --- .github/scripts/process_item.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/scripts/process_item.py b/.github/scripts/process_item.py index 6ee9291..da8166b 100644 --- a/.github/scripts/process_item.py +++ b/.github/scripts/process_item.py @@ -34,7 +34,7 @@ def get_ai_project_line(raw_text): 任务:将用户的项目介绍转换为单行 Markdown 格式。 要求: 1. 严格禁止使用“一款、一个、完全免费、高效、简洁、强大、快速、好用”等营销废话。 -2. 描述必须以“用途”或“功能”作为动词开头。 +2. 描述必须以“用途”或“功能”作为动词开头。 3. 严禁使用加粗格式(不要使用 **)。 4. 仅输出以下格式的一行文字: * :white_check_mark: [项目名](网址):用途描述 @@ -65,7 +65,10 @@ def main(): has_success = any(r.content == SUCCESS_EMOJI for r in reactions) if has_trigger and not has_success: - print(f"处理评论 ID: {comment.id}") + print(f"\n{'='*60}") + print(f"处理评论:\n{comment.body}") + print(f"\n评论链接:{comment.html_url}") + print(f"{'='*60}\n") cleaned_body = remove_quote_blocks(comment.body) From e83689f38cf87faaf2f75bf79953f5330b769dd6 Mon Sep 17 00:00:00 2001 From: Cheng Zheng Date: Sat, 20 Dec 2025 13:51:08 +0800 Subject: [PATCH 038/126] X --- .github/scripts/process_item.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/scripts/process_item.py b/.github/scripts/process_item.py index da8166b..246496a 100644 --- a/.github/scripts/process_item.py +++ b/.github/scripts/process_item.py @@ -135,7 +135,7 @@ def main(): pr = repo.create_pull( title=f"新增项目:来自 {comment.user.login} 的评论", - body=f"由管理员标记并自动提取。\n\n原始评论:{safe_url}", + body=f"原评论内容:{comment.body} \n\n 原始评论:{safe_url} \n\n 此 PR 是自动生成,目的是节省时间。\n (触发方法:Github 用户 1c7 在评论下方点击了'火箭'图标,然后用 Github Action 遍历评论),", head=branch_name, base="master" ) From 442fd51ec0c919a735b449afdabb9faceef4c198 Mon Sep 17 00:00:00 2001 From: Cheng Zheng Date: Sat, 20 Dec 2025 13:57:12 +0800 Subject: [PATCH 039/126] save --- .github/scripts/process_item.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/.github/scripts/process_item.py b/.github/scripts/process_item.py index 246496a..206f08d 100644 --- a/.github/scripts/process_item.py +++ b/.github/scripts/process_item.py @@ -33,10 +33,10 @@ def get_ai_project_line(raw_text): prompt = f""" 任务:将用户的项目介绍转换为单行 Markdown 格式。 要求: -1. 严格禁止使用“一款、一个、完全免费、高效、简洁、强大、快速、好用”等营销废话。 -2. 描述必须以“用途”或“功能”作为动词开头。 -3. 严禁使用加粗格式(不要使用 **)。 -4. 仅输出以下格式的一行文字: +1. 在文字的开头,去掉“一款、一个、完全免费、高效、简洁、强大、快速、好用、安全”等营销废话。 +2. 严禁使用加粗格式(不要使用 **)。 +3. 将产品名称从文字的后面提升到最前面。比如"一个安全高效的 AI 生图网站,基于 nano banana pro",改成 "AI 生图网站,,基于 nano banana pro" +3. 仅输出以下格式的一行文字: * :white_check_mark: [项目名](网址):用途描述 待处理文本: @@ -135,13 +135,17 @@ def main(): pr = repo.create_pull( title=f"新增项目:来自 {comment.user.login} 的评论", - body=f"原评论内容:{comment.body} \n\n 原始评论:{safe_url} \n\n 此 PR 是自动生成,目的是节省时间。\n (触发方法:Github 用户 1c7 在评论下方点击了'火箭'图标,然后用 Github Action 遍历评论),", + body=f"原评论内容:```{comment.body}``` \n\n 原评论链接:{safe_url} \n\n --- \n\n 此 PR 自动生成,触发机制:Github 用户 1c7 在评论下方点击了'火箭'图标。", head=branch_name, base="master" ) comment.create_reaction(SUCCESS_EMOJI) - comment.create_comment(f"感谢提交,已添加!\n\nPR 链接:{pr.html_url}") + + # 构建包含引用的回复评论 + # reply_body = f"@{comment.user.login} 感谢提交,已添加至待审核列表!\n\nPR 链接:{pr.html_url}\n\n---\n*回复 [此评论]({comment.html_url})*" + # issue.create_comment(reply_body) + processed_count += 1 if processed_count == 0: From fc867f0db9a6f6706df70e30a3dc70843b92873d Mon Sep 17 00:00:00 2001 From: Cheng Zheng Date: Sat, 20 Dec 2025 13:57:54 +0800 Subject: [PATCH 040/126] fix --- .github/README.md | 29 ----------------------------- 1 file changed, 29 deletions(-) delete mode 100644 .github/README.md diff --git a/.github/README.md b/.github/README.md deleted file mode 100644 index 46c608a..0000000 --- a/.github/README.md +++ /dev/null @@ -1,29 +0,0 @@ -## `.github/` 的文档 - -## 概括 -用户在 https://github.com/1c7/chinese-independent-developer/issues/160 提交评论。 -大部分情况下,格式是不符合规范的(可以理解) -需要用程序自动化处理,减少我的时间投入。 - -## 流程 -1. 我在用户提交的评论点击 🚀 图标(表情) -1. 触发 Github Action 执行(手动触发 或 定时执行(每 6 小时) -1. Github Action 会触发 .github/scripts/process_item.py -2. 查找 "当前日期-3天" 开始(这个时间点往后) 所有标记 🚀 图标 的评论 -3. 处理格式,创建 Pull Request。 -4. 给评论新增一个 🎉 图标(意思是"处理完成") -7. 回复这条评论:感谢提交,已添加。 - -我只需要修改 PR 然后 merge 就行。 - -一句话概括:我点击 🚀 标签,然后 PR 会自动创建,我只需要 merge PR。我大概点击 3 次左右就可以了(如果介绍语有改进空间,我还得改一下文字,然后才 merge) - -## 本地运行(为了开发调试) -```bash -cp .env.example .env - -uv sync - -uv run .github/scripts/process_item.py -``` - From 28b054672a2fda741199d8db6d0b675efb24b92a Mon Sep 17 00:00:00 2001 From: Cheng Zheng Date: Sat, 20 Dec 2025 14:00:55 +0800 Subject: [PATCH 041/126] fix --- .env.example | 2 +- .github/scripts/process_item.py | 4 ++-- .github/workflows/process_list.yml | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.env.example b/.env.example index 7a99661..cdccb36 100644 --- a/.env.example +++ b/.env.example @@ -1,3 +1,3 @@ -GITHUB_TOKEN="github_pat_*" +PAT_TOKEN="github_pat_*" LLM_API_KEY="sk-*" LLM_BASE_URL="https://api.deepseek.com" diff --git a/.github/scripts/process_item.py b/.github/scripts/process_item.py index 206f08d..bd01f50 100644 --- a/.github/scripts/process_item.py +++ b/.github/scripts/process_item.py @@ -6,7 +6,7 @@ from openai import OpenAI from datetime import datetime, timedelta, timezone # ================= 配置区 ================= -GITHUB_TOKEN = os.getenv("GITHUB_TOKEN") +PAT_TOKEN = os.getenv("PAT_TOKEN") API_KEY = os.getenv("LLM_API_KEY") BASE_URL = os.getenv("LLM_BASE_URL", "https://api.openai.com/v1") REPO_NAME = "1c7/chinese-independent-developer" @@ -50,7 +50,7 @@ def get_ai_project_line(raw_text): return response.choices[0].message.content.strip() def main(): - g = Github(GITHUB_TOKEN) + g = Github(PAT_TOKEN) repo = g.get_repo(REPO_NAME) issue = repo.get_issue(ISSUE_NUMBER) diff --git a/.github/workflows/process_list.yml b/.github/workflows/process_list.yml index c885caa..9e32085 100644 --- a/.github/workflows/process_list.yml +++ b/.github/workflows/process_list.yml @@ -22,7 +22,7 @@ jobs: - name: Run script env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GITHUB_TOKEN: ${{ secrets.PAT_TOKEN }} LLM_API_KEY: ${{ secrets.LLM_API_KEY }} # 如果你用的不是 OpenAI 原生接口,可以设置这个环境变量,否则默认使用 OpenAI LLM_BASE_URL: "https://api.deepseek.com" From 120c0bc4fa93d3dc346d4c548e114f62a65febf2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28ZhengCheng=29?= Date: Sat, 20 Dec 2025 14:08:06 +0800 Subject: [PATCH 042/126] docs: add project from jankarong --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index acb01af..eaf3632 100644 --- a/README.md +++ b/README.md @@ -21,6 +21,9 @@ ## 3. 项目列表 ### 2025 年 12 月 20 号添加 + +#### jankarong - [Github](https://github.com/jankarong) +* :white_check_mark: [AI YouTube 缩略图生成器](https://aithumbnailcreator.com/):生成缩略图,可免费下载,支持纯色或渐变背景 #### hwlvipone - [Github](https://github.com/hwlvipone) * :white_check_mark: [ZestyGen](https://zestygen.com/):基于 Nano Banana Pro 的图片视频聚合网站 From 53ef61c07ec3faee5a72d5ba92ae4cfd49c75a17 Mon Sep 17 00:00:00 2001 From: Cheng Zheng Date: Sat, 20 Dec 2025 14:17:32 +0800 Subject: [PATCH 043/126] x --- .github/MAINTAINER.md | 28 ++++++ .github/scripts/process_item.py | 136 +++++++++++++++++------------ .github/workflows/process_list.yml | 4 +- 3 files changed, 111 insertions(+), 57 deletions(-) create mode 100644 .github/MAINTAINER.md diff --git a/.github/MAINTAINER.md b/.github/MAINTAINER.md new file mode 100644 index 0000000..3488a7b --- /dev/null +++ b/.github/MAINTAINER.md @@ -0,0 +1,28 @@ +## 介绍 `.github/` 文件夹的用途 + +## 概括 +用户在 https://github.com/1c7/chinese-independent-developer/issues/160 提交评论。 +大部分情况下,格式是不符合规范的(可以理解) +需要用程序自动化处理,减少我的时间投入。 + +## 流程 +1. 我(1c7)在用户提交的评论点击 🚀 图标(表情) +1. 触发 Github Action 执行(手动触发 或 定时执行(每 6 小时) +1. Github Action 会触发 .github/scripts/process_item.py +2. 查找 "当前日期-3天" 开始(这个时间点往后) 所有标记 🚀 图标 的评论 +3. 处理格式,创建 Pull Request。 +4. 给评论新增一个 🎉 图标(意思是"处理完成") +7. 回复这条评论:感谢提交,已添加。 + +我只需要修改 PR 然后 merge 就行。 + +一句话概括:我点击 🚀 标签,然后 PR 会自动创建,我只需要 merge PR。我大概点击 3 次左右就可以了(如果介绍语有改进空间,我还得改一下文字,然后才 merge) + +## 本地运行(为了开发调试) +```bash +cp .env.example .env + +uv sync + +uv run .github/scripts/process_item.py +``` diff --git a/.github/scripts/process_item.py b/.github/scripts/process_item.py index bd01f50..93740dd 100644 --- a/.github/scripts/process_item.py +++ b/.github/scripts/process_item.py @@ -53,11 +53,13 @@ def main(): g = Github(PAT_TOKEN) repo = g.get_repo(REPO_NAME) issue = repo.get_issue(ISSUE_NUMBER) - + time_threshold = datetime.now(timezone.utc) - timedelta(days=3) comments = issue.get_comments(since=time_threshold) - processed_count = 0 + # ===== 阶段 1:收集待处理评论 ===== + pending_comments = [] + formatted_entries = [] for comment in comments: reactions = comment.get_reactions() @@ -72,84 +74,108 @@ def main(): cleaned_body = remove_quote_blocks(comment.body) - # --- 新逻辑:判断用户是否自带了 Header --- - # 匹配以 #### 开头的行 + # 判断用户是否自带了 Header header_match = re.search(r'^####\s+.*', cleaned_body, re.MULTILINE) - + if header_match: - # 1. 提取用户自己写的 Header header_line = header_match.group(0).strip() - # 2. 从正文中移除这一行,避免干扰 AI body_for_ai = cleaned_body.replace(header_line, "").strip() print(f"检测到用户自带 Header: {header_line}") else: - # 1. 自动生成 Header author_name = comment.user.login author_url = comment.user.html_url header_line = f"#### {author_name} - [Github]({author_url})" body_for_ai = cleaned_body print(f"自动生成 Header: {header_line}") - # 3. AI 仅处理项目详情行 + # AI 处理项目详情行 project_line = get_ai_project_line(body_for_ai) - - # 组合成最终条目 formatted_entry = f"{header_line}\n{project_line}" - - # 4. 更新 README.md 逻辑 - content = repo.get_contents("README.md", ref="master") - readme_text = content.decoded_content.decode("utf-8") - today_str = datetime.now().strftime("%Y 年 %m 月 %d 号添加") - date_header = f"### {today_str}" - - if date_header not in readme_text: - new_readme = readme_text.replace("3. 项目列表\n", f"3. 项目列表\n\n{date_header}\n") - else: - new_readme = readme_text + pending_comments.append(comment) + formatted_entries.append(formatted_entry) - insertion_point = new_readme.find(date_header) + len(date_header) - final_readme = new_readme[:insertion_point] + "\n\n" + formatted_entry + new_readme[insertion_point:] + # ===== 阶段 2:批量提交 ===== + if not pending_comments: + print("无待处理评论") + return - # 5. 提交 PR 逻辑 - branch_name = f"add-project-{comment.id}" - base = repo.get_branch("master") + print(f"\n共收集 {len(pending_comments)} 个待处理评论") - try: - repo.get_git_ref(f"heads/{branch_name}").delete() - except: - pass + # 更新 README + content = repo.get_contents("README.md", ref="master") + readme_text = content.decoded_content.decode("utf-8") - repo.create_git_ref(ref=f"refs/heads/{branch_name}", sha=base.commit.sha) - repo.update_file( - "README.md", - f"docs: add project from {comment.user.login}", - final_readme, - content.sha, - branch=branch_name - ) + today_str = datetime.now().strftime("%Y 年 %m 月 %d 号添加") + date_header = f"### {today_str}" - # 为了彻底消除 Issue 里的 "mentioned this" 红框, - # 在 https:// 后面插入一个不可见字符 \u200b - safe_url = comment.html_url.replace("https://", "https://\u200b") + if date_header not in readme_text: + new_readme = readme_text.replace("3. 项目列表\n", f"3. 项目列表\n\n{date_header}\n") + else: + new_readme = readme_text - pr = repo.create_pull( - title=f"新增项目:来自 {comment.user.login} 的评论", - body=f"原评论内容:```{comment.body}``` \n\n 原评论链接:{safe_url} \n\n --- \n\n 此 PR 自动生成,触发机制:Github 用户 1c7 在评论下方点击了'火箭'图标。", - head=branch_name, - base="master" - ) + # 插入所有条目(用两个换行分隔) + insertion_point = new_readme.find(date_header) + len(date_header) + all_entries = "\n\n".join(formatted_entries) + final_readme = new_readme[:insertion_point] + "\n\n" + all_entries + new_readme[insertion_point:] - comment.create_reaction(SUCCESS_EMOJI) + # 创建分支 + branch_name = f"batch-add-projects-{datetime.now().strftime('%Y%m%d-%H%M%S')}" + base = repo.get_branch("master") - # 构建包含引用的回复评论 - # reply_body = f"@{comment.user.login} 感谢提交,已添加至待审核列表!\n\nPR 链接:{pr.html_url}\n\n---\n*回复 [此评论]({comment.html_url})*" - # issue.create_comment(reply_body) + try: + repo.get_git_ref(f"heads/{branch_name}").delete() + except: + pass - processed_count += 1 + repo.create_git_ref(ref=f"refs/heads/{branch_name}", sha=base.commit.sha) + repo.update_file( + "README.md", + f"docs: batch add {len(pending_comments)} projects", + final_readme, + content.sha, + branch=branch_name + ) - if processed_count == 0: - print("未发现新标记的任务。") + # 构建 PR body + comment_links = "\n".join([ + f"- [{c.user.login}]({c.html_url})" + for c in pending_comments + ]) + + formatted_list = "\n\n".join([ + f"### {i+1}. {formatted_entries[i]}" + for i in range(len(formatted_entries)) + ]) + + pr_body = f"""批量添加 {len(pending_comments)} 个项目 + +## 原始评论链接 +{comment_links} + +## 格式化结果 +{formatted_list} + +--- +自动生成,触发机制:用户 {ADMIN_HANDLE} 点击 🚀 +""" + + pr = repo.create_pull( + title=f"新增项目:批量添加 {len(pending_comments)} 个项目", + body=pr_body, + head=branch_name, + base="master" + ) + + print(f"\n✅ PR 创建成功:{pr.html_url}") + + # 标记所有评论 + for comment in pending_comments: + comment.create_reaction(SUCCESS_EMOJI) + reply_body = f"@{comment.user.login} 感谢提交,已添加至待审核列表!\n\nPR 链接:{pr.html_url}" + issue.create_comment(reply_body) + + print(f"\n✅ 已标记所有 {len(pending_comments)} 个评论") if __name__ == "__main__": main() \ No newline at end of file diff --git a/.github/workflows/process_list.yml b/.github/workflows/process_list.yml index 9e32085..a23082d 100644 --- a/.github/workflows/process_list.yml +++ b/.github/workflows/process_list.yml @@ -1,7 +1,7 @@ name: 提交项目 on: - # schedule: - # - cron: '0 */6 * * *' # 每 6 小时运行一次 + schedule: + - cron: '0 16 * * *' # 每天 UTC 16:00 运行(北京时间 00:00) workflow_dispatch: # 支持手动触发 jobs: From 70d6df0ba7150f4def5eca7bc7a0e07e90f95232 Mon Sep 17 00:00:00 2001 From: Cheng Zheng Date: Sat, 20 Dec 2025 14:22:25 +0800 Subject: [PATCH 044/126] fix --- .github/scripts/process_item.py | 15 +++++++++++++-- .github/workflows/process_list.yml | 2 +- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/.github/scripts/process_item.py b/.github/scripts/process_item.py index 93740dd..152c596 100644 --- a/.github/scripts/process_item.py +++ b/.github/scripts/process_item.py @@ -9,11 +9,22 @@ from datetime import datetime, timedelta, timezone PAT_TOKEN = os.getenv("PAT_TOKEN") API_KEY = os.getenv("LLM_API_KEY") BASE_URL = os.getenv("LLM_BASE_URL", "https://api.openai.com/v1") -REPO_NAME = "1c7/chinese-independent-developer" +REPO_NAME = "1c7/chinese-independent-developer" ISSUE_NUMBER = 160 -ADMIN_HANDLE = "1c7" +ADMIN_HANDLE = "1c7" TRIGGER_EMOJI = "rocket" # 🚀 SUCCESS_EMOJI = "hooray" # 🎉 + +# 启动前检查必需的环境变量 +if not PAT_TOKEN: + raise ValueError("❌ 缺少环境变量 PAT_TOKEN!请设置 GitHub Personal Access Token。") +if not API_KEY: + raise ValueError("❌ 缺少环境变量 LLM_API_KEY!请设置 LLM API Key。") + +print(f"✅ 环境变量检查通过") +print(f" - PAT_TOKEN: {'*' * 10}{PAT_TOKEN[-4:]}") +print(f" - API_KEY: {'*' * 10}{API_KEY[-4:]}") +print(f" - BASE_URL: {BASE_URL}") # ========================================== def remove_quote_blocks(text: str) -> str: diff --git a/.github/workflows/process_list.yml b/.github/workflows/process_list.yml index a23082d..93145b8 100644 --- a/.github/workflows/process_list.yml +++ b/.github/workflows/process_list.yml @@ -22,7 +22,7 @@ jobs: - name: Run script env: - GITHUB_TOKEN: ${{ secrets.PAT_TOKEN }} + PAT_TOKEN: ${{ secrets.PAT_TOKEN }} LLM_API_KEY: ${{ secrets.LLM_API_KEY }} # 如果你用的不是 OpenAI 原生接口,可以设置这个环境变量,否则默认使用 OpenAI LLM_BASE_URL: "https://api.deepseek.com" From a7604c664815bcf3bed84b6f7432596be135e4e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28ZhengCheng=29?= Date: Sat, 20 Dec 2025 14:23:16 +0800 Subject: [PATCH 045/126] docs: batch add 3 projects --- README.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/README.md b/README.md index eaf3632..5130899 100644 --- a/README.md +++ b/README.md @@ -22,6 +22,15 @@ ### 2025 年 12 月 20 号添加 +#### yoga666yoga888-lgtm - [Github](https://github.com/yoga666yoga888-lgtm) +* :white_check_mark: [Sora21](https://www.sora21.com/):基于sora2模型的高性价比视频生成网站 + +#### hwlvipone - [Github](https://github.com/hwlvipone) +* :white_check_mark: [palm reading online](https://palm-reading.app/):在线AI 看手相网站 + +#### allen2peace - [Github](https://github.com/allen2peace) +* :white_check_mark: [FluentDictation](http://fluentdictation.com/):使用任意 YouTube 视频练习英语听写、英语跟读能力 + #### jankarong - [Github](https://github.com/jankarong) * :white_check_mark: [AI YouTube 缩略图生成器](https://aithumbnailcreator.com/):生成缩略图,可免费下载,支持纯色或渐变背景 #### hwlvipone - [Github](https://github.com/hwlvipone) From f12b822a554eaaa022dc47ad18a7cd9e922bef00 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28ZhengCheng=29?= Date: Sat, 20 Dec 2025 14:25:00 +0800 Subject: [PATCH 046/126] Update README.md --- README.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 5130899..3c36d54 100644 --- a/README.md +++ b/README.md @@ -23,16 +23,17 @@ ### 2025 年 12 月 20 号添加 #### yoga666yoga888-lgtm - [Github](https://github.com/yoga666yoga888-lgtm) -* :white_check_mark: [Sora21](https://www.sora21.com/):基于sora2模型的高性价比视频生成网站 +* :white_check_mark: [Sora21](https://www.sora21.com/):视频生成网站,基于 Sora2 模型,高性价比 #### hwlvipone - [Github](https://github.com/hwlvipone) -* :white_check_mark: [palm reading online](https://palm-reading.app/):在线AI 看手相网站 +* :white_check_mark: [palm reading online](https://palm-reading.app/):AI 看手相网站 #### allen2peace - [Github](https://github.com/allen2peace) * :white_check_mark: [FluentDictation](http://fluentdictation.com/):使用任意 YouTube 视频练习英语听写、英语跟读能力 #### jankarong - [Github](https://github.com/jankarong) -* :white_check_mark: [AI YouTube 缩略图生成器](https://aithumbnailcreator.com/):生成缩略图,可免费下载,支持纯色或渐变背景 +* :white_check_mark: [AI YouTube 缩略图生成器](https://aithumbnailcreator.com/):生成 Youtube 缩略图,可免费下载,支持纯色或渐变背景 + #### hwlvipone - [Github](https://github.com/hwlvipone) * :white_check_mark: [ZestyGen](https://zestygen.com/):基于 Nano Banana Pro 的图片视频聚合网站 From 28ae2734d0ee167773df71f947559f401aff8b1b Mon Sep 17 00:00:00 2001 From: Cheng Zheng Date: Sat, 20 Dec 2025 14:26:04 +0800 Subject: [PATCH 047/126] =?UTF-8?q?1=E6=9D=A1=E8=AF=84=E8=AE=BA=E5=A4=9F?= =?UTF-8?q?=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/scripts/process_item.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/.github/scripts/process_item.py b/.github/scripts/process_item.py index 152c596..d8838b6 100644 --- a/.github/scripts/process_item.py +++ b/.github/scripts/process_item.py @@ -180,11 +180,14 @@ def main(): print(f"\n✅ PR 创建成功:{pr.html_url}") - # 标记所有评论 + # 标记所有评论(添加 🎉 表情) for comment in pending_comments: comment.create_reaction(SUCCESS_EMOJI) - reply_body = f"@{comment.user.login} 感谢提交,已添加至待审核列表!\n\nPR 链接:{pr.html_url}" - issue.create_comment(reply_body) + + # 创建一条评论提及所有用户 + user_mentions = " ".join([f"@{c.user.login}" for c in pending_comments]) + reply_body = f"{user_mentions} 感谢提交,已添加!\n\n PR 链接:{pr.html_url}" + issue.create_comment(reply_body) print(f"\n✅ 已标记所有 {len(pending_comments)} 个评论") From 875fa8c111aa1e11f9397b6e78576d8221415220 Mon Sep 17 00:00:00 2001 From: Cheng Zheng Date: Sat, 20 Dec 2025 14:29:59 +0800 Subject: [PATCH 048/126] fix --- .github/scripts/process_item.py | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/.github/scripts/process_item.py b/.github/scripts/process_item.py index d8838b6..03fe5bc 100644 --- a/.github/scripts/process_item.py +++ b/.github/scripts/process_item.py @@ -39,16 +39,18 @@ def remove_quote_blocks(text: str) -> str: return result.strip() def get_ai_project_line(raw_text): - """只让 AI 提取项目名称、链接和描述行""" + """让 AI 提取项目名称、链接和描述(支持多个产品)""" client = OpenAI(api_key=API_KEY, base_url=BASE_URL) prompt = f""" -任务:将用户的项目介绍转换为单行 Markdown 格式。 +任务:将用户的项目介绍转换为 Markdown 格式。 + 要求: -1. 在文字的开头,去掉“一款、一个、完全免费、高效、简洁、强大、快速、好用、安全”等营销废话。 -2. 严禁使用加粗格式(不要使用 **)。 -3. 将产品名称从文字的后面提升到最前面。比如"一个安全高效的 AI 生图网站,基于 nano banana pro",改成 "AI 生图网站,,基于 nano banana pro" -3. 仅输出以下格式的一行文字: -* :white_check_mark: [项目名](网址):用途描述 +1. 识别文本中的所有产品/项目(可能有多个) +2. 每个项目占一行 +3. 在文字的开头,去掉"一款、一个、完全免费、高效、简洁、强大、快速、好用、安全"等营销废话 +4. 严禁使用加粗格式(不要使用 **) +5. 将产品名称从文字的后面提升到最前面 +6. 每行格式:* :white_check_mark: [项目名](网址):用途描述 待处理文本: {raw_text} From f83699c0755fe1a1b2b045549de364634c39fecb Mon Sep 17 00:00:00 2001 From: Cheng Zheng Date: Sat, 20 Dec 2025 14:32:53 +0800 Subject: [PATCH 049/126] doc --- .github/scripts/process_item.py | 42 ++++++++++++++++++--------------- 1 file changed, 23 insertions(+), 19 deletions(-) diff --git a/.github/scripts/process_item.py b/.github/scripts/process_item.py index 03fe5bc..a32336c 100644 --- a/.github/scripts/process_item.py +++ b/.github/scripts/process_item.py @@ -6,27 +6,28 @@ from openai import OpenAI from datetime import datetime, timedelta, timezone # ================= 配置区 ================= -PAT_TOKEN = os.getenv("PAT_TOKEN") -API_KEY = os.getenv("LLM_API_KEY") -BASE_URL = os.getenv("LLM_BASE_URL", "https://api.openai.com/v1") -REPO_NAME = "1c7/chinese-independent-developer" -ISSUE_NUMBER = 160 -ADMIN_HANDLE = "1c7" -TRIGGER_EMOJI = "rocket" # 🚀 -SUCCESS_EMOJI = "hooray" # 🎉 - -# 启动前检查必需的环境变量 -if not PAT_TOKEN: - raise ValueError("❌ 缺少环境变量 PAT_TOKEN!请设置 GitHub Personal Access Token。") -if not API_KEY: - raise ValueError("❌ 缺少环境变量 LLM_API_KEY!请设置 LLM API Key。") - -print(f"✅ 环境变量检查通过") -print(f" - PAT_TOKEN: {'*' * 10}{PAT_TOKEN[-4:]}") -print(f" - API_KEY: {'*' * 10}{API_KEY[-4:]}") -print(f" - BASE_URL: {BASE_URL}") +PAT_TOKEN = os.getenv("PAT_TOKEN") # GitHub Personal Access Token +API_KEY = os.getenv("LLM_API_KEY") # LLM API 密钥(如 DeepSeek、OpenAI) +BASE_URL = os.getenv("LLM_BASE_URL", "https://api.openai.com/v1") # LLM API 基础 URL +REPO_NAME = "1c7/chinese-independent-developer" # GitHub 仓库名称 +ISSUE_NUMBER = 160 # 用于收集项目提交的 Issue 编号 +ADMIN_HANDLE = "1c7" # 管理员 GitHub 用户名 +TRIGGER_EMOJI = "rocket" # 触发处理的表情符号 🚀 +SUCCESS_EMOJI = "hooray" # 处理成功的表情符号 🎉 # ========================================== +def check_environment(): + """检查必需的环境变量是否存在""" + if not PAT_TOKEN: + raise ValueError("❌ 缺少环境变量 PAT_TOKEN!请设置 GitHub Personal Access Token。") + if not API_KEY: + raise ValueError("❌ 缺少环境变量 LLM_API_KEY!请设置 LLM API Key。") + + print(f"✅ 环境变量检查通过") + print(f" - PAT_TOKEN: {'*' * 10}{PAT_TOKEN[-4:]}") + print(f" - API_KEY: {'*' * 10}{API_KEY[-4:]}") + print(f" - BASE_URL: {BASE_URL}\n") + def remove_quote_blocks(text: str) -> str: """移除 GitHub 引用回复块""" lines = text.split('\n') @@ -63,6 +64,9 @@ def get_ai_project_line(raw_text): return response.choices[0].message.content.strip() def main(): + # 检查环境变量 + check_environment() + g = Github(PAT_TOKEN) repo = g.get_repo(REPO_NAME) issue = repo.get_issue(ISSUE_NUMBER) From 2e133401c811af7b9fe1396a5289a08245bd4762 Mon Sep 17 00:00:00 2001 From: Cheng Zheng Date: Sat, 20 Dec 2025 14:33:50 +0800 Subject: [PATCH 050/126] prompt --- .github/scripts/process_item.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/.github/scripts/process_item.py b/.github/scripts/process_item.py index a32336c..9518f9f 100644 --- a/.github/scripts/process_item.py +++ b/.github/scripts/process_item.py @@ -53,6 +53,22 @@ def get_ai_project_line(raw_text): 5. 将产品名称从文字的后面提升到最前面 6. 每行格式:* :white_check_mark: [项目名](网址):用途描述 +示例 1: +输入:https://example.com:一款基于 AI 的高效视频生成网站 +输出:* :white_check_mark: [example.com](https://example.com):AI 视频生成网站 + +示例 2: +输入:[MyApp](https://myapp.com) 完全免费的强大工具,帮助用户管理任务 +输出:* :white_check_mark: [MyApp](https://myapp.com):任务管理工具 + +示例 3(多个项目): +输入: +[ProductA](https://a.com):AI 绘画工具 +[ProductB](https://b.com):AI 写作助手 +输出: +* :white_check_mark: [ProductA](https://a.com):AI 绘画工具 +* :white_check_mark: [ProductB](https://b.com):AI 写作助手 + 待处理文本: {raw_text} """ From 09b476b0bca4acff52d63fe6527237ccdcc31cc3 Mon Sep 17 00:00:00 2001 From: Cheng Zheng Date: Sat, 20 Dec 2025 14:36:56 +0800 Subject: [PATCH 051/126] doc --- .github/workflows/process_list.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/process_list.yml b/.github/workflows/process_list.yml index 93145b8..d8e548c 100644 --- a/.github/workflows/process_list.yml +++ b/.github/workflows/process_list.yml @@ -1,4 +1,4 @@ -name: 提交项目 +name: 提交项目(每 24 小时运行一次,晚上 00:00) on: schedule: - cron: '0 16 * * *' # 每天 UTC 16:00 运行(北京时间 00:00) From 3480b04a32a1908d9ebbf3e80e704f5ed7a68a4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28ZhengCheng=29?= Date: Sun, 21 Dec 2025 10:31:16 +0800 Subject: [PATCH 052/126] Update README-Game.md --- README-Game.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README-Game.md b/README-Game.md index e2b4e33..afe4868 100644 --- a/README-Game.md +++ b/README-Game.md @@ -2,6 +2,10 @@ 本版面放的都是游戏,起始于2025年1月4号 +### 2025 年 12 月 21 号添加 +#### shuiwuhen - [GitHub](https://github.com/290713469) +* :white_check_mark: [Universal Tower Defense Calculator](https://universaltowerdefensecalculator.com):Roblox 游戏 Universal Tower Defense 工具站 + ### 2025 年 12 月 14 号添加 #### seven(沈阳) * :white_check_mark: [Pips game](https://pipsgame.dev/): 每日逻辑谜题,你通过纯推理放置多米诺骨牌——无需猜测(Pips Game is a daily logic puzzle where you place dominoes using pure deduction — no guessing) From 508bf6c3c84ec4660b772290f834819039d665a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28ZhengCheng=29?= Date: Sun, 21 Dec 2025 10:32:09 +0800 Subject: [PATCH 053/126] docs: batch add 1 projects --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index 3c36d54..21e221e 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,11 @@ ## 3. 项目列表 +### 2025 年 12 月 21 号添加 + +#### azt1112 - [Github](https://github.com/azt1112) +* :white_check_mark: [GPT Image 1.5](https://chatgptimage15.com/):基于GPT Image 1.5的AI图片生成网站 + ### 2025 年 12 月 20 号添加 #### yoga666yoga888-lgtm - [Github](https://github.com/yoga666yoga888-lgtm) From c698c87087b6dd5301ed15cb0f834d1304c222de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28ZhengCheng=29?= Date: Sun, 21 Dec 2025 10:34:08 +0800 Subject: [PATCH 054/126] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 21e221e..619b986 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ ### 2025 年 12 月 21 号添加 #### azt1112 - [Github](https://github.com/azt1112) -* :white_check_mark: [GPT Image 1.5](https://chatgptimage15.com/):基于GPT Image 1.5的AI图片生成网站 +* :white_check_mark: [GPT Image 1.5](https://chatgptimage15.com/):AI 图片生成网站,基于 GPT Image 1.5 ### 2025 年 12 月 20 号添加 From f1f63a4b516926082bfcf920a0ec893f7ae6a7e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28ZhengCheng=29?= Date: Mon, 22 Dec 2025 10:21:33 +0800 Subject: [PATCH 055/126] docs: batch add 1 projects --- README.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/README.md b/README.md index 619b986..477fdd3 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,13 @@ ## 3. 项目列表 +### 2025 年 12 月 22 号添加 + +#### zhugezifang - [Github](https://github.com/zhugezifang) +* :white_check_mark: [颜值评分](https://howattractiveami.app/zh):在线AI颜值测试 +* :white_check_mark: [在线眼型测试](https://eyeshapedetector.app/zh):AI眼型分析 +* :white_check_mark: [面部年龄计算器](https://howolddoyoulook.app/zh):AI面部年龄检测器在线 + ### 2025 年 12 月 21 号添加 #### azt1112 - [Github](https://github.com/azt1112) From 7bfc5a4d232a4e15c71c81b44c6950393bd5e8ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28ZhengCheng=29?= Date: Mon, 22 Dec 2025 10:22:11 +0800 Subject: [PATCH 056/126] Update README.md --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 477fdd3..d0a833a 100644 --- a/README.md +++ b/README.md @@ -23,9 +23,9 @@ ### 2025 年 12 月 22 号添加 #### zhugezifang - [Github](https://github.com/zhugezifang) -* :white_check_mark: [颜值评分](https://howattractiveami.app/zh):在线AI颜值测试 -* :white_check_mark: [在线眼型测试](https://eyeshapedetector.app/zh):AI眼型分析 -* :white_check_mark: [面部年龄计算器](https://howolddoyoulook.app/zh):AI面部年龄检测器在线 +* :white_check_mark: [颜值评分](https://howattractiveami.app/zh):AI 颜值测试 +* :white_check_mark: [在线眼型测试](https://eyeshapedetector.app/zh):AI 眼型分析 +* :white_check_mark: [面部年龄计算器](https://howolddoyoulook.app/zh):AI 面部年龄检测器 ### 2025 年 12 月 21 号添加 From 2b166791df310452d25ab928c4e75749d3df4faa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28ZhengCheng=29?= Date: Tue, 23 Dec 2025 00:06:09 +0800 Subject: [PATCH 057/126] docs: batch add 2 projects --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index d0a833a..f9f8b22 100644 --- a/README.md +++ b/README.md @@ -22,6 +22,12 @@ ### 2025 年 12 月 22 号添加 +#### taingh - [Github](https://github.com/taingh) +* :white_check_mark: [UniMusic AI](https://unimusic.ai):根据描述生成专业完整的音乐 + +#### amierhan - [Github](https://github.com/amierhan) +* :white_check_mark: [nbpro.io](https://nbpro.io/):一站式 AI 图像与视频生成平台,整合了当前领先的图像与视频生成模型,包括 Nano Banana、Nano Banana Pro、sora2 等。平台内置智能提示词优化器,并提供大量真实可参考的生成案例,帮助用户创作高质量内容,生成的图片和视频均不带水印,适用于多种专业与商业场景。 + #### zhugezifang - [Github](https://github.com/zhugezifang) * :white_check_mark: [颜值评分](https://howattractiveami.app/zh):AI 颜值测试 * :white_check_mark: [在线眼型测试](https://eyeshapedetector.app/zh):AI 眼型分析 From 2431927eaedc4fcde162ed001e89adc09eb289ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28ZhengCheng=29?= Date: Tue, 23 Dec 2025 11:40:18 +0800 Subject: [PATCH 058/126] Update README.md --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index f9f8b22..65024b2 100644 --- a/README.md +++ b/README.md @@ -22,11 +22,11 @@ ### 2025 年 12 月 22 号添加 -#### taingh - [Github](https://github.com/taingh) -* :white_check_mark: [UniMusic AI](https://unimusic.ai):根据描述生成专业完整的音乐 +#### Yiann(大连) - [Github](https://github.com/taingh) +* :white_check_mark: [UniMusic AI](https://unimusic.ai):AI 音乐生成 - 根据你的描述一键生成专业完整的音乐 #### amierhan - [Github](https://github.com/amierhan) -* :white_check_mark: [nbpro.io](https://nbpro.io/):一站式 AI 图像与视频生成平台,整合了当前领先的图像与视频生成模型,包括 Nano Banana、Nano Banana Pro、sora2 等。平台内置智能提示词优化器,并提供大量真实可参考的生成案例,帮助用户创作高质量内容,生成的图片和视频均不带水印,适用于多种专业与商业场景。 +* :white_check_mark: [nbpro.io](https://nbpro.io/):一站式 AI 图像与视频生成平台,整合了当前领先的图像与视频生成模型,包括 Nano Banana、Nano Banana Pro、sora2 等。平台内置智能提示词优化器,并提供大量真实可参考的生成案例,帮助用户创作高质量内容,生成的图片和视频均不带水印,适用于多种专业与商业场景 #### zhugezifang - [Github](https://github.com/zhugezifang) * :white_check_mark: [颜值评分](https://howattractiveami.app/zh):AI 颜值测试 From 30b4a27c90240a057b3035d1decfc2f227987244 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28ZhengCheng=29?= Date: Tue, 23 Dec 2025 12:13:33 +0800 Subject: [PATCH 059/126] docs: batch add 2 projects --- README.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/README.md b/README.md index 65024b2..0fe6192 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,15 @@ ## 3. 项目列表 +### 2025 年 12 月 23 号添加 + +#### tancky777 - [Github](https://github.com/tancky777) +* :white_check_mark: [LensGo AI](https://lensgoai.co/):AI 视频 & 图片创作,专注于动漫艺术风格的图片风格迁移或图片、视频制作 +* :white_check_mark: [Gemini Watermark Remover](https://geminiwatermark.net/):在线版 Gemini AI 图片、nano banana、nano banana pro 去水印 + +#### zhangchenchen - [Github](https://github.com/zhangchenchen) +* :white_check_mark: [music0](music0.org):AI 音乐/音乐视频生成平台 + ### 2025 年 12 月 22 号添加 #### Yiann(大连) - [Github](https://github.com/taingh) From 2d273b49f375da9cfdd654d85a9c77db2be431b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28ZhengCheng=29?= Date: Tue, 23 Dec 2025 12:17:23 +0800 Subject: [PATCH 060/126] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 0fe6192..433473f 100644 --- a/README.md +++ b/README.md @@ -24,10 +24,10 @@ #### tancky777 - [Github](https://github.com/tancky777) * :white_check_mark: [LensGo AI](https://lensgoai.co/):AI 视频 & 图片创作,专注于动漫艺术风格的图片风格迁移或图片、视频制作 -* :white_check_mark: [Gemini Watermark Remover](https://geminiwatermark.net/):在线版 Gemini AI 图片、nano banana、nano banana pro 去水印 +* :white_check_mark: [Gemini Watermark Remover](https://geminiwatermark.net/):Gemini AI 图片、nano banana、nano banana pro 去水印 #### zhangchenchen - [Github](https://github.com/zhangchenchen) -* :white_check_mark: [music0](music0.org):AI 音乐/音乐视频生成平台 +* :white_check_mark: [music0](https://music0.org/):AI 音乐/音乐视频生成平台 ### 2025 年 12 月 22 号添加 From f70e563de8ad2121b0cbe9eb1ac4c53c5c7f2271 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28ZhengCheng=29?= Date: Wed, 24 Dec 2025 00:06:15 +0800 Subject: [PATCH 061/126] docs: batch add 2 projects --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index 433473f..8e93dc0 100644 --- a/README.md +++ b/README.md @@ -22,6 +22,12 @@ ### 2025 年 12 月 23 号添加 +#### Albert-Weasker - [Github](https://github.com/Albert-Weasker) +* :white_check_mark: [牛逼star](https://www.niubistar.com):面向开源开发者的 GitHub Star 互助与项目展示平台,通过安全授权让用户互相为项目点 “Star”,帮助开源项目获得真实曝光和更高关注度。 - [更多介绍](https://www.niubistar.com) + +#### Albert-Weasker - [Github](https://github.com/Albert-Weasker) +* :white_check_mark: [Intent-Leads](https://www.intent-leads.com/):基于社交媒体和公开平台行为数据,帮助企业自动发现和整理“高意图潜在客户”线索(即正在主动寻找产品/服务的人)以便联系和转化的获客工具。 + #### tancky777 - [Github](https://github.com/tancky777) * :white_check_mark: [LensGo AI](https://lensgoai.co/):AI 视频 & 图片创作,专注于动漫艺术风格的图片风格迁移或图片、视频制作 * :white_check_mark: [Gemini Watermark Remover](https://geminiwatermark.net/):Gemini AI 图片、nano banana、nano banana pro 去水印 From 6392bdcb949d047021a00a9be8a88b3b88507766 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28ZhengCheng=29?= Date: Wed, 24 Dec 2025 09:46:14 +0800 Subject: [PATCH 062/126] Update README.md --- README.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 8e93dc0..41fdd4f 100644 --- a/README.md +++ b/README.md @@ -23,10 +23,8 @@ ### 2025 年 12 月 23 号添加 #### Albert-Weasker - [Github](https://github.com/Albert-Weasker) -* :white_check_mark: [牛逼star](https://www.niubistar.com):面向开源开发者的 GitHub Star 互助与项目展示平台,通过安全授权让用户互相为项目点 “Star”,帮助开源项目获得真实曝光和更高关注度。 - [更多介绍](https://www.niubistar.com) - -#### Albert-Weasker - [Github](https://github.com/Albert-Weasker) -* :white_check_mark: [Intent-Leads](https://www.intent-leads.com/):基于社交媒体和公开平台行为数据,帮助企业自动发现和整理“高意图潜在客户”线索(即正在主动寻找产品/服务的人)以便联系和转化的获客工具。 +* :white_check_mark: [牛逼star](https://www.niubistar.com):面向开源开发者的 GitHub Star 互助与项目展示平台,让用户互相为项目点 “Star”,帮助开源项目获得真实曝光和更高关注度 +* :white_check_mark: [Intent-Leads](https://www.intent-leads.com/):帮助企业自动发现和整理“高意图潜在客户”线索,基于社交媒体和公开平台行为数据(即正在主动寻找产品/服务的人)以便联系和转化的获客工具 #### tancky777 - [Github](https://github.com/tancky777) * :white_check_mark: [LensGo AI](https://lensgoai.co/):AI 视频 & 图片创作,专注于动漫艺术风格的图片风格迁移或图片、视频制作 From 385dbf3fdd334abffe67b44f51be82da45247284 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28ZhengCheng=29?= Date: Wed, 24 Dec 2025 09:47:53 +0800 Subject: [PATCH 063/126] docs: batch add 2 projects --- README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/README.md b/README.md index 41fdd4f..b0257dc 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,14 @@ ## 3. 项目列表 +### 2025 年 12 月 24 号添加 + +#### nanobanana-co - [Github](https://github.com/nanobanana-co) +* :white_check_mark: [nanobanana.co](https://nanobanana.co/zh):AI 图像与视频生成平台,支持精准区域编辑、照片修复、风格转换、多图融合、角色一致性保持及视频生成。 + +#### Rock(上海) +* :white_check_mark: [Graffiti generator](https://www.graffitigenerators.com/):AI 街头艺术生成器 + ### 2025 年 12 月 23 号添加 #### Albert-Weasker - [Github](https://github.com/Albert-Weasker) From 574ca1902fbf7403a4e282981b9046931dbefde5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28ZhengCheng=29?= Date: Wed, 24 Dec 2025 09:50:42 +0800 Subject: [PATCH 064/126] Update README.md --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index b0257dc..26ccd96 100644 --- a/README.md +++ b/README.md @@ -23,15 +23,15 @@ ### 2025 年 12 月 24 号添加 #### nanobanana-co - [Github](https://github.com/nanobanana-co) -* :white_check_mark: [nanobanana.co](https://nanobanana.co/zh):AI 图像与视频生成平台,支持精准区域编辑、照片修复、风格转换、多图融合、角色一致性保持及视频生成。 +* :white_check_mark: [Nano Banana Pro](https://nanobanana.co/zh):AI 图像与视频生成平台,支持精准区域编辑、照片修复、风格转换、多图融合、角色一致性保持及视频生成 #### Rock(上海) -* :white_check_mark: [Graffiti generator](https://www.graffitigenerators.com/):AI 街头艺术生成器 +* :white_check_mark: [Graffiti generator](https://www.graffitigenerators.com/):AI 街头涂鸦艺术生成器(基于 Nano Banana Pro) ### 2025 年 12 月 23 号添加 #### Albert-Weasker - [Github](https://github.com/Albert-Weasker) -* :white_check_mark: [牛逼star](https://www.niubistar.com):面向开源开发者的 GitHub Star 互助与项目展示平台,让用户互相为项目点 “Star”,帮助开源项目获得真实曝光和更高关注度 +* :white_check_mark: [牛逼 Star](https://www.niubistar.com):面向开源开发者的 GitHub Star 互助与项目展示平台,让用户互相为项目点 “Star”,帮助开源项目获得真实曝光和更高关注度 * :white_check_mark: [Intent-Leads](https://www.intent-leads.com/):帮助企业自动发现和整理“高意图潜在客户”线索,基于社交媒体和公开平台行为数据(即正在主动寻找产品/服务的人)以便联系和转化的获客工具 #### tancky777 - [Github](https://github.com/tancky777) From cbe2571d367aa391c08fde6783f9943f570d2ea6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28ZhengCheng=29?= Date: Fri, 26 Dec 2025 17:47:37 +0800 Subject: [PATCH 065/126] Update README.md --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index 26ccd96..add8a53 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,11 @@ ## 3. 项目列表 +### 2025 年 12 月 26 号添加 + +### picaro - [Github](https://github.com/2002pipi) +* :white_check_mark: [FlowSpeech](https://flowspeech.io):文本转语音,声音接近人类 + ### 2025 年 12 月 24 号添加 #### nanobanana-co - [Github](https://github.com/nanobanana-co) From d4bf5c7534d94a957c4d18f085eb8f6ce2a87ef8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28ZhengCheng=29?= Date: Sat, 27 Dec 2025 00:05:39 +0800 Subject: [PATCH 066/126] docs: batch add 2 projects --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index add8a53..19d85c7 100644 --- a/README.md +++ b/README.md @@ -22,6 +22,12 @@ ### 2025 年 12 月 26 号添加 +#### LeeYuze - [Github](https://github.com/LeeYuze) +* :white_check_mark: [WhatsMyName](https://www.whatsmyname.cc/):OSINT 用户名搜索与可用性检查工具,可实时扫描 700+ 平台,验证账号存在与数字足迹(匿名、不记录搜索历史)。 + +#### 菩提尘埃(厦门) - [Github](https://github.com/waterlines) +* :white_check_mark: [外链管理系统](https://backlink.dreamthere.cn):SEO外链管理系统 + ### picaro - [Github](https://github.com/2002pipi) * :white_check_mark: [FlowSpeech](https://flowspeech.io):文本转语音,声音接近人类 From 6709929f33e6cc59fe1ac59f1f5141322d237b15 Mon Sep 17 00:00:00 2001 From: haosao12345 <644238567@qq.com> Date: Sat, 27 Dec 2025 16:13:24 +0800 Subject: [PATCH 067/126] Add Riddle School to game project list Added a new game entry for Riddle School with a brief description. --- README-Game.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README-Game.md b/README-Game.md index afe4868..850af71 100644 --- a/README-Game.md +++ b/README-Game.md @@ -2,6 +2,9 @@ 本版面放的都是游戏,起始于2025年1月4号 +### 2025 年 12 月 27 号添加 +* :white_check_mark: [Riddle School](https://riddle-school.online/):Riddle School 是一款以校园为背景的解谜冒险游戏,采用简单直观的点击操作方式,适合各类玩家上手。游戏通过一系列环环相扣的谜题,引导玩家不断思考不同道具和场景之间的关系。解谜过程清晰,让人能够专注于推理本身。 + ### 2025 年 12 月 21 号添加 #### shuiwuhen - [GitHub](https://github.com/290713469) * :white_check_mark: [Universal Tower Defense Calculator](https://universaltowerdefensecalculator.com):Roblox 游戏 Universal Tower Defense 工具站 From c770cd781b0519d9d41278242ff6d2f11682bb57 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28ZhengCheng=29?= Date: Sun, 28 Dec 2025 11:06:15 +0800 Subject: [PATCH 068/126] docs: batch add 1 projects --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index 19d85c7..8143a95 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,11 @@ ## 3. 项目列表 +### 2025 年 12 月 28 号添加 + +#### Albert-Weasker - [Github](https://github.com/Albert-Weasker) +* :white_check_mark: [fuckpua](https://www.saynopua.com):用 AI 帮助识别和抵抗情感操控与PUA套路、提供分析和练习工具的心理防护平台 + ### 2025 年 12 月 26 号添加 #### LeeYuze - [Github](https://github.com/LeeYuze) From c598b20ecf7ff55a059c6ec7d039bde849465576 Mon Sep 17 00:00:00 2001 From: ZhanMingquan <296074998@qq.com> Date: Sun, 28 Dec 2025 15:57:43 +0800 Subject: [PATCH 069/126] Update README.md --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 8143a95..9a29d4b 100644 --- a/README.md +++ b/README.md @@ -22,6 +22,9 @@ ### 2025 年 12 月 28 号添加 +#### StarCityBro(长沙) +* :white_check_mark: [FeiHub](https://feihub.top):公开的飞书文档搜索,已收录包括:垂直小店、Gemini、AI产品、Claude Code、CPS、Sora、AI工作流、AI视频、AI短剧、AI漫剧、AI漫画、YouTube、小红书电商、电商选品、AI自媒体、n8n、私域运营、B站好物、外卖推客、RPA等 6000+的知识文档。 + #### Albert-Weasker - [Github](https://github.com/Albert-Weasker) * :white_check_mark: [fuckpua](https://www.saynopua.com):用 AI 帮助识别和抵抗情感操控与PUA套路、提供分析和练习工具的心理防护平台 From 44b1fc02f9c803b2bb3b54bc2bb344db02dd78f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28Cheng=20Zheng=29?= Date: Tue, 30 Dec 2025 00:05:48 +0800 Subject: [PATCH 070/126] docs: batch add 1 projects --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index 9a29d4b..1a7ff8b 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,11 @@ ## 3. 项目列表 +### 2025 年 12 月 29 号添加 + +#### jiyifeng(重庆) - +* :white_check_mark: [Upscale image](https://upscale-image.org/):增强和放大图像 + ### 2025 年 12 月 28 号添加 #### StarCityBro(长沙) From c21bdd7ba48cb4929f29b11bd67fce053f40af07 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28Cheng=20Zheng=29?= Date: Tue, 30 Dec 2025 11:30:58 +0800 Subject: [PATCH 071/126] docs: batch add 2 projects --- README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/README.md b/README.md index 1a7ff8b..9c56c5c 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,14 @@ ## 3. 项目列表 +### 2025 年 12 月 30 号添加 + +#### wangxiaosu - [Github](https://github.com/wangxiaosu) +* :white_check_mark: [Text Behind Image](https://text-behind-image.org/):实现“字在人后”视觉深度,制作高级感海报 + +#### xiaolige 长沙 +* :white_check_mark: [nano-banana中文站](https://www.nano-banana.cn/zh):提供提示词模板,帮助用户快速生成图片 + ### 2025 年 12 月 29 号添加 #### jiyifeng(重庆) - From fd49649568ee63f2209ad7ef42405f7a0dfa290f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28Cheng=20Zheng=29?= Date: Thu, 1 Jan 2026 00:06:20 +0800 Subject: [PATCH 072/126] docs: batch add 1 projects --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index 1a7ff8b..a9b46a6 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,11 @@ ## 3. 项目列表 +### 2025 年 12 月 31 号添加 + +#### lingglee - [Github](https://github.com/lingglee) +* :white_check_mark: [authletter.com](https://www.authletter.com):委托信模板站,提供各种场景委托信模板,支持AI一句话生成委托信、编辑和下载 + ### 2025 年 12 月 29 号添加 #### jiyifeng(重庆) - From 4a3564f76d96c05346ba1ed7a067e05fd8ad674e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28Cheng=20Zheng=29?= Date: Thu, 1 Jan 2026 19:38:38 +0800 Subject: [PATCH 073/126] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index a9b46a6..addaaf2 100644 --- a/README.md +++ b/README.md @@ -22,8 +22,8 @@ ### 2025 年 12 月 31 号添加 -#### lingglee - [Github](https://github.com/lingglee) -* :white_check_mark: [authletter.com](https://www.authletter.com):委托信模板站,提供各种场景委托信模板,支持AI一句话生成委托信、编辑和下载 +#### lingglee(武汉) - [Github](https://github.com/lingglee) +* :white_check_mark: [authletter.com](https://www.authletter.com):委托信模板站,提供各种场景委托信模板,支持 AI 一句话生成委托信、编辑和下载 ### 2025 年 12 月 29 号添加 From 56403b3d4619ab1ec6ff4dde4214b2da26ffe532 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28Cheng=20Zheng=29?= Date: Fri, 2 Jan 2026 00:05:56 +0800 Subject: [PATCH 074/126] docs: batch add 2 projects --- README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/README.md b/README.md index addaaf2..52d30f5 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,14 @@ ## 3. 项目列表 +### 2026 年 01 月 01 号添加 + +#### Flicker(成都) +* :white_check_mark: [VoiceAILabs](https://voiceailabs.com/):专业AI声音克隆平台,创建您的语音克隆角色 + +#### zhouzhili - [Github](https://github.com/zhouzhili) +* :white_check_mark: [QQ相册下载器](https://blog.aitoolwang.com/qq/):三步完成QQ空间、QQ群相册照片批量下载到电脑,原图原视频下载,保留拍摄时间。 + ### 2025 年 12 月 31 号添加 #### lingglee(武汉) - [Github](https://github.com/lingglee) From e73523b47c27327440d06128e80befe2101d4a70 Mon Sep 17 00:00:00 2001 From: Hancel Lin Date: Fri, 2 Jan 2026 14:12:37 +0800 Subject: [PATCH 075/126] =?UTF-8?q?docs:=20=E6=B7=BB=E5=8A=A0=E6=91=B8?= =?UTF-8?q?=E9=B1=BC=E7=AB=9E=E6=8A=80=E5=A4=A7=E5=8E=85=E4=B8=8E=20WJU=20?= =?UTF-8?q?Puzzle?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 5a0ad95..eeeb879 100644 --- a/README.md +++ b/README.md @@ -4248,6 +4248,8 @@ OldPanda [GitHub](https://github.com/OldPanda), [博客](https://old-panda.com/) * :white_check_mark: [红色工具箱](https://apps.apple.com/cn/app/id1473577627):多个创意实用小工具集合,如肌肉启动,截屏记事,指尖轮盘等 #### Hancel.Lin(深圳) - [GitHub](https://github.com/imlinhanchao), [博客](http://hancel.org/) +* :white_check_mark: [摸鱼竞技大厅](https://room.adventext.fun/):休闲游戏竞技大厅,支持多人在线联机游戏,包含多种休闲桌游与棋牌游戏。另外包含完整二次开发接口,可以快速开发出任意多人在线回合制游戏。 - [更多介绍](https://tiaoom.com/) +* :white_check_mark: [WJU Puzzle](https://wju.adventext.fun/):WJU 字母解密游戏,通过 5 种操作规则,解出 WJU 字母序列。 - [更多介绍](https://github.com/imlinhanchao/wju) * :white_check_mark: [Adventext & 千屿引擎](https://adventext.fun/):文字冒险游戏引擎,包含用来创作文字冒险游戏的在线编辑器以及运行游戏的引擎,你可以在这里创作文字冒险游戏,调试运行。然后推送给世界上的任何玩家游玩! - [更多介绍](https://github.com/imlinhanchao/adventext) * :white_check_mark: [Time 时间胶囊](https://time-pack.com/):封存记忆,送给未来。基于小程序实现的时间胶囊,支持胶囊提醒与赠送胶囊。 - [更多介绍](https://github.com/imlinhanchao/time-pack-miniprogram) * :white_check_mark: [Cashflow 钱去哪儿了](https://s.hancel.org/):个人消费交易记录管理分析网站应用,通过同步微信与支付宝对账单,管理个人消费交易数据。 - [更多介绍](https://github.com/imlinhanchao/cashflow) From cf034e8f5896562211c891b4b31c73c5390326cc Mon Sep 17 00:00:00 2001 From: haosao12345 <644238567@qq.com> Date: Fri, 2 Jan 2026 15:17:24 +0800 Subject: [PATCH 076/126] Add PokePath-TD game entry to README Added a new game entry for PokePath-TD with a brief description. --- README-Game.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README-Game.md b/README-Game.md index 850af71..cad70b7 100644 --- a/README-Game.md +++ b/README-Game.md @@ -2,6 +2,9 @@ 本版面放的都是游戏,起始于2025年1月4号 +### 2026 年 1 月 2 号添加 +* :white_check_mark: [PokePath-TD](https://play-pokepath-td.online/):PokePath-TD一款海外爆火的宝可梦塔防游戏,在9 条不同的路线上抵御一波又一波的敌人,失败了也可以累积资源和升级宝可梦成员。 + ### 2025 年 12 月 27 号添加 * :white_check_mark: [Riddle School](https://riddle-school.online/):Riddle School 是一款以校园为背景的解谜冒险游戏,采用简单直观的点击操作方式,适合各类玩家上手。游戏通过一系列环环相扣的谜题,引导玩家不断思考不同道具和场景之间的关系。解谜过程清晰,让人能够专注于推理本身。 From c70cb97494be4c0f5896703f87e8c04d1e50dfc5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28Cheng=20Zheng=29?= Date: Sat, 3 Jan 2026 14:54:34 +0800 Subject: [PATCH 077/126] docs: batch add 4 projects --- README.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/README.md b/README.md index eeeb879..b0b7d62 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,20 @@ ## 3. 项目列表 +### 2026 年 01 月 03 号添加 + +#### Space Time - [Github](https://github.com/SpaceTimee), [博客](https://blog.spacetimee.xyz) +* :white_check_mark: [Sheas Frameg](https://frameg.spacetimee.xyz):开源光流法在线视频插帧工具 - [更多介绍](https://github.com/SpaceTimee/Sheas-Frameg) + +#### WtecHtec(深圳) - [Github](), [博客]() +* :white_check_mark: [WordMoment](https://github.com/WtecHtec/WordMoment):专注于背单词的纯前端 Web 应用 + +#### hackun666 - [Github](https://github.com/hackun666) +* :white_check_mark: [软著Pro](https://ruanzhu.pro):AI 软著生成器,帮助用户生成软件著作权申请文档 + +#### 290713469 - [Github](https://github.com/290713469) +* :white_check_mark: [Anime Fighting Simulator Calculator](https://anime-fighting-simulator.com):Roblox Anime Fighting Simulator游戏工具 + ### 2026 年 01 月 01 号添加 #### Flicker(成都) From 2d4c6f21962803ff51bc3d219daeb96758611d1d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28Cheng=20Zheng=29?= Date: Sat, 3 Jan 2026 14:55:55 +0800 Subject: [PATCH 078/126] Update README-Game.md --- README-Game.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README-Game.md b/README-Game.md index cad70b7..70c25c8 100644 --- a/README-Game.md +++ b/README-Game.md @@ -2,6 +2,10 @@ 本版面放的都是游戏,起始于2025年1月4号 +### 2026 年 1 月 3 号添加 +#### 290713469 - [Github](https://github.com/290713469) +* :white_check_mark: [Anime Fighting Simulator Calculator](https://anime-fighting-simulator.com):Roblox Anime Fighting Simulator游戏工具 + ### 2026 年 1 月 2 号添加 * :white_check_mark: [PokePath-TD](https://play-pokepath-td.online/):PokePath-TD一款海外爆火的宝可梦塔防游戏,在9 条不同的路线上抵御一波又一波的敌人,失败了也可以累积资源和升级宝可梦成员。 From 83706b51804b46a9529d41470f0abaf79d1225b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28Cheng=20Zheng=29?= Date: Sat, 3 Jan 2026 14:56:18 +0800 Subject: [PATCH 079/126] Update README.md --- README.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index b0b7d62..2c80e64 100644 --- a/README.md +++ b/README.md @@ -25,14 +25,12 @@ #### Space Time - [Github](https://github.com/SpaceTimee), [博客](https://blog.spacetimee.xyz) * :white_check_mark: [Sheas Frameg](https://frameg.spacetimee.xyz):开源光流法在线视频插帧工具 - [更多介绍](https://github.com/SpaceTimee/Sheas-Frameg) -#### WtecHtec(深圳) - [Github](), [博客]() +#### WtecHtec(深圳) * :white_check_mark: [WordMoment](https://github.com/WtecHtec/WordMoment):专注于背单词的纯前端 Web 应用 #### hackun666 - [Github](https://github.com/hackun666) -* :white_check_mark: [软著Pro](https://ruanzhu.pro):AI 软著生成器,帮助用户生成软件著作权申请文档 +* :white_check_mark: [软著 Pro](https://ruanzhu.pro):AI 软著生成器,帮助用户生成软件著作权申请文档 -#### 290713469 - [Github](https://github.com/290713469) -* :white_check_mark: [Anime Fighting Simulator Calculator](https://anime-fighting-simulator.com):Roblox Anime Fighting Simulator游戏工具 ### 2026 年 01 月 01 号添加 From 73bc284c2bc31b3e6b2cd99fae25c88aae3db5d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28Cheng=20Zheng=29?= Date: Sat, 3 Jan 2026 14:57:20 +0800 Subject: [PATCH 080/126] Update README.md --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index 2c80e64..bcd47ef 100644 --- a/README.md +++ b/README.md @@ -26,12 +26,11 @@ * :white_check_mark: [Sheas Frameg](https://frameg.spacetimee.xyz):开源光流法在线视频插帧工具 - [更多介绍](https://github.com/SpaceTimee/Sheas-Frameg) #### WtecHtec(深圳) -* :white_check_mark: [WordMoment](https://github.com/WtecHtec/WordMoment):专注于背单词的纯前端 Web 应用 +* :white_check_mark: [WordMoment](https://wordmoment.xujingyichang.top/):专注于背单词的纯前端 Web 应用 - [开源地址](https://github.com/WtecHtec/WordMoment) #### hackun666 - [Github](https://github.com/hackun666) * :white_check_mark: [软著 Pro](https://ruanzhu.pro):AI 软著生成器,帮助用户生成软件著作权申请文档 - ### 2026 年 01 月 01 号添加 #### Flicker(成都) From 92bf35d570e92aca3c6186d349e2f17857c4d848 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28Cheng=20Zheng=29?= Date: Sun, 4 Jan 2026 20:22:48 +0800 Subject: [PATCH 081/126] Update README-Game.md --- README-Game.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README-Game.md b/README-Game.md index 70c25c8..8babbcc 100644 --- a/README-Game.md +++ b/README-Game.md @@ -2,6 +2,12 @@ 本版面放的都是游戏,起始于2025年1月4号 +### 2026 年 1 月 4 号添加 +#### Ivanvolt(武汉) - [博客](https://ivanvolt.com),[Github](https://github.com/ivanvolt-labs) +* :white_check_mark: [Square Face Generator](https://squarefacegenerator.co):生成方脸头像 +* :white_check_mark: [UB Games](https://ubgames.co):免费浏览器游戏 +* :white_check_mark: [Wenda Treatment](https://wendatreatment.com):暗黑音乐之旅 + ### 2026 年 1 月 3 号添加 #### 290713469 - [Github](https://github.com/290713469) * :white_check_mark: [Anime Fighting Simulator Calculator](https://anime-fighting-simulator.com):Roblox Anime Fighting Simulator游戏工具 From 8ca7442508133f0ef1bdceb2d389f26be231c2bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28Cheng=20Zheng=29?= Date: Mon, 5 Jan 2026 00:05:35 +0800 Subject: [PATCH 082/126] docs: batch add 1 projects --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index bcd47ef..27f69fb 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,12 @@ ## 3. 项目列表 +### 2026 年 01 月 04 号添加 + +#### Hipepper - [Github](https://github.com/Hipepper) +* :white_check_mark: [JentleTao](https://github.com/Hipepper/SecTech-Vis):可视化安全对抗技术平台 +* :white_check_mark: [tipfactory.jentletao.top](https://tipfactory.jentletao.top/):可视化安全对抗技术平台 + ### 2026 年 01 月 03 号添加 #### Space Time - [Github](https://github.com/SpaceTimee), [博客](https://blog.spacetimee.xyz) From bdf4cbf7cc34040cabcd1cf6f928b2d04a09b59e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28Cheng=20Zheng=29?= Date: Mon, 5 Jan 2026 12:02:14 +0800 Subject: [PATCH 083/126] Update README.md --- README.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 27f69fb..5d0d46e 100644 --- a/README.md +++ b/README.md @@ -22,9 +22,8 @@ ### 2026 年 01 月 04 号添加 -#### Hipepper - [Github](https://github.com/Hipepper) -* :white_check_mark: [JentleTao](https://github.com/Hipepper/SecTech-Vis):可视化安全对抗技术平台 -* :white_check_mark: [tipfactory.jentletao.top](https://tipfactory.jentletao.top/):可视化安全对抗技术平台 +#### JentleTao - [Github](https://github.com/Hipepper) +* :white_check_mark: [tipfactory.jentletao.top](https://tipfactory.jentletao.top/):可视化安全对抗技术平台 - [开源地址](https://github.com/Hipepper/SecTech-Vis) ### 2026 年 01 月 03 号添加 From 87b5433042d56880d6c31bc9b3d8fbf22f3db404 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28Cheng=20Zheng=29?= Date: Mon, 5 Jan 2026 12:04:09 +0800 Subject: [PATCH 084/126] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5d0d46e..5c13e4f 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ ### 2026 年 01 月 04 号添加 #### JentleTao - [Github](https://github.com/Hipepper) -* :white_check_mark: [tipfactory.jentletao.top](https://tipfactory.jentletao.top/):可视化安全对抗技术平台 - [开源地址](https://github.com/Hipepper/SecTech-Vis) +* :white_check_mark: [SecTech Vis 安全能力可视化](https://tipfactory.jentletao.top/):可视化安全对抗技术平台 - [开源地址](https://github.com/Hipepper/SecTech-Vis) ### 2026 年 01 月 03 号添加 From a6951b69bb60f0b28a94ae0ed15b2aed7dc5b1a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28Cheng=20Zheng=29?= Date: Tue, 6 Jan 2026 00:07:00 +0800 Subject: [PATCH 085/126] docs: batch add 3 projects --- README.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/README.md b/README.md index 5c13e4f..37de391 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,17 @@ ## 3. 项目列表 +### 2026 年 01 月 05 号添加 + +#### Brian Chan - [Github](https://github.com/cwingho) +* :white_check_mark: [Collage87](https://collage87.com/):创建精美网格照片 + +#### WtecHtec(深圳) - [Github](https://github.com/WtecHtec), [博客](github.com/WtecHtec) +* :white_check_mark: [SnapWrite](https://snapwrite.xujingyichang.top/):专注微信公众号的 AI 自动排版工具。一键将文本转化为精美移动端布局,支持实时手机预览与富文本一键复制。 + +#### lizhichao - [Github](https://github.com/lizhichao) +* :white_check_mark: [时间转换为工具](https://gorm.vicsdf.com/time.html):支持批量转换、填写备注、切换时区 + ### 2026 年 01 月 04 号添加 #### JentleTao - [Github](https://github.com/Hipepper) From be40dd94eec46bc986e6355245e00ddbc6e04538 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28Cheng=20Zheng=29?= Date: Wed, 7 Jan 2026 00:06:35 +0800 Subject: [PATCH 086/126] docs: batch add 3 projects --- README.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/README.md b/README.md index 37de391..f8d3c6d 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,17 @@ ## 3. 项目列表 +### 2026 年 01 月 06 号添加 + +#### Mr-ZhangBo - [Github](https://github.com/Mr-ZhangBo) +* :white_check_mark: [Easydown](https://www.easydown.org/en):在线下载 TikTok、YouTube、Twitter 视频 + +#### pillow(重庆市) - +* :white_check_mark: [grok images](https://grokimages.org/):AI 图片平台,将想法变成视觉作品 + +#### 290713469 - [Github](https://github.com/290713469) +* :white_check_mark: [Obsessed Trace Calculator](https://obsessedtrace.com/):Stream游戏Obsessed Trace工具网站 + ### 2026 年 01 月 05 号添加 #### Brian Chan - [Github](https://github.com/cwingho) From 91d8d786bbbfb3a3a3285d7ef8d030af793509c9 Mon Sep 17 00:00:00 2001 From: yzqzy Date: Wed, 7 Jan 2026 07:12:14 +0800 Subject: [PATCH 087/126] docs: add new project entry for TradeSignal --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 37de391..5e1f53d 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,10 @@ ## 3. 项目列表 +### 2026 年 01 月 07 号添加 +#### yzqzy - [Github](https://github.com/yzqzy) +- :white_check_mark: [TradeSignal](https://tradersignal.org/):AI 股票分析 + 专业盘后复盘工具|价值为基、趋势为策 + ### 2026 年 01 月 05 号添加 #### Brian Chan - [Github](https://github.com/cwingho) @@ -1502,10 +1506,6 @@ ##### Sarkory(广州) - :white_check_mark: [Veo 3 AI](https://veo3ai.org):Veo 3 AI 视频生成 -### 2025 年 5 月 24 号添加 -#### yzqzy - [Github](https://github.com/yzqzy) -- :white_check_mark: [TradeSignal](https://github.com/yzqzy/trade-signal-docs):整合多维度市场数据,提供专业的投资分析工具 - ### 2025 年 5 月 22 号添加 #### Sawana Huang * :white_check_mark: [Board Foot Calculator](https://boardfootcalculator.cc/):简便的在线版英尺计算器,用来计算木材的体积和对应的价格,面向木工爱好者,或者要购买木材的买家 From 242cea6da59741d0c557da64f3c4681dbce3247a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28Cheng=20Zheng=29?= Date: Wed, 7 Jan 2026 09:45:14 +0800 Subject: [PATCH 088/126] Update README-Game.md --- README-Game.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README-Game.md b/README-Game.md index 8babbcc..3ef11e6 100644 --- a/README-Game.md +++ b/README-Game.md @@ -2,6 +2,11 @@ 本版面放的都是游戏,起始于2025年1月4号 +### 2026 年 1 月 7 号添加 + +#### 290713469 - [Github](https://github.com/290713469) +* :white_check_mark: [Obsessed Trace Calculator](https://obsessedtrace.com/):Stream 游戏 Obsessed Trace 工具网站 + ### 2026 年 1 月 4 号添加 #### Ivanvolt(武汉) - [博客](https://ivanvolt.com),[Github](https://github.com/ivanvolt-labs) * :white_check_mark: [Square Face Generator](https://squarefacegenerator.co):生成方脸头像 From fe9b1caa15a3911b404766e9ec12550797649146 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28Cheng=20Zheng=29?= Date: Wed, 7 Jan 2026 09:45:28 +0800 Subject: [PATCH 089/126] Update README.md --- README.md | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index f8d3c6d..2c7bf41 100644 --- a/README.md +++ b/README.md @@ -23,14 +23,11 @@ ### 2026 年 01 月 06 号添加 #### Mr-ZhangBo - [Github](https://github.com/Mr-ZhangBo) -* :white_check_mark: [Easydown](https://www.easydown.org/en):在线下载 TikTok、YouTube、Twitter 视频 +* :white_check_mark: [Easydown](https://www.easydown.org/en):下载 TikTok、YouTube、Twitter 视频 -#### pillow(重庆市) - +#### pillow(重庆市) * :white_check_mark: [grok images](https://grokimages.org/):AI 图片平台,将想法变成视觉作品 -#### 290713469 - [Github](https://github.com/290713469) -* :white_check_mark: [Obsessed Trace Calculator](https://obsessedtrace.com/):Stream游戏Obsessed Trace工具网站 - ### 2026 年 01 月 05 号添加 #### Brian Chan - [Github](https://github.com/cwingho) From ca9ff11043265970702bc7fbf646043033f1a065 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28Cheng=20Zheng=29?= Date: Fri, 9 Jan 2026 00:07:24 +0800 Subject: [PATCH 090/126] docs: batch add 3 projects --- README.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/README.md b/README.md index c58f9c2..6887d9f 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,17 @@ ## 3. 项目列表 +### 2026 年 01 月 08 号添加 + +#### BC - [Github](https://github.com/cwingho) +* :white_check_mark: [UV Index Today](https://uvindex.cc/):实时显示所在地紫外线指数的工具 + +#### allen2peace - [Github](https://github.com/allen2peace) +* :white_check_mark: [ChatFlowchart](https://chatflowchart.com/):通过语言描述生成图表,可编辑文案,可导出PDF或图片 + +#### xbaicai0 - [Github](https://github.com/xbaicai0) +* :white_check_mark: [zimageturbo](https://zimageturbo.com/):通过语言描述生成图片 + ### 2026 年 01 月 07 号添加 #### yzqzy - [Github](https://github.com/yzqzy) From 627f6eaad8fc0313693f9876604728d10bcac0e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28Cheng=20Zheng=29?= Date: Sat, 10 Jan 2026 00:06:18 +0800 Subject: [PATCH 091/126] docs: batch add 3 projects --- README.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/README.md b/README.md index 6887d9f..4972baa 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,17 @@ ## 3. 项目列表 +### 2026 年 01 月 09 号添加 + +#### tzzp1224 - [Github](https://github.com/tzzp1224) +* :white_check_mark: [RepoReaper](https://www.realdexter.com/):基于 DeepSeek 的 Github AI 代码审计探员,面向计算机学生和初学者的源码阅读教育工具 + +#### wo-zx - [Github](https://github.com/wo-zx) +* :white_check_mark: [上码 (Upma)](https://upma.cn/):专为国内开发者打造的静态网站托管平台,支持 React / Vue / Next.js 一键部署与 CDN 全球加速。 + +#### 290713469 - [Github](https://github.com/290713469) +* :white_check_mark: [Star Rupture Calculator](https://starrupture-tools.com/):Stream 游戏 Star Rupture 工具网站 + ### 2026 年 01 月 08 号添加 #### BC - [Github](https://github.com/cwingho) From 75edb6d3ed98e8cddae561922ff9812caf544156 Mon Sep 17 00:00:00 2001 From: ykphdzz <67539986+ykphdzz@users.noreply.github.com> Date: Sat, 10 Jan 2026 16:19:31 +0800 Subject: [PATCH 092/126] Add YourRizzAI --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 6887d9f..4fe30f3 100644 --- a/README.md +++ b/README.md @@ -31,6 +31,8 @@ #### xbaicai0 - [Github](https://github.com/xbaicai0) * :white_check_mark: [zimageturbo](https://zimageturbo.com/):通过语言描述生成图片 +#### Jack +* :white_check_mark: [YourRizzAI](https://yourizzai.com):AI 聊天分析工具,一键生成自然的约会对话和回复建议 ### 2026 年 01 月 07 号添加 #### yzqzy - [Github](https://github.com/yzqzy) From 9730357680f085e344c301fba2c6b4d8f53610be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28Cheng=20Zheng=29?= Date: Sat, 10 Jan 2026 20:07:44 +0800 Subject: [PATCH 093/126] Update README-Game.md --- README-Game.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/README-Game.md b/README-Game.md index 3ef11e6..cca8f3c 100644 --- a/README-Game.md +++ b/README-Game.md @@ -2,8 +2,12 @@ 本版面放的都是游戏,起始于2025年1月4号 -### 2026 年 1 月 7 号添加 +### 2026 年 1 月 10 号添加 +#### 290713469 - [Github](https://github.com/290713469) +* :white_check_mark: [Star Rupture Calculator](https://starrupture-tools.com/):Stream 游戏 Star Rupture 工具网站 + +### 2026 年 1 月 7 号添加 #### 290713469 - [Github](https://github.com/290713469) * :white_check_mark: [Obsessed Trace Calculator](https://obsessedtrace.com/):Stream 游戏 Obsessed Trace 工具网站 From 4ddce43e95cc1cb9a8e8314c2c78c88d9d4a0817 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28Cheng=20Zheng=29?= Date: Sat, 10 Jan 2026 20:08:36 +0800 Subject: [PATCH 094/126] Update README.md --- README.md | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 4972baa..c92b427 100644 --- a/README.md +++ b/README.md @@ -23,13 +23,10 @@ ### 2026 年 01 月 09 号添加 #### tzzp1224 - [Github](https://github.com/tzzp1224) -* :white_check_mark: [RepoReaper](https://www.realdexter.com/):基于 DeepSeek 的 Github AI 代码审计探员,面向计算机学生和初学者的源码阅读教育工具 +* :white_check_mark: [RepoReaper](https://www.realdexter.com/):Github AI 代码审计探员(基于 DeepSeek),面向计算机学生和初学者的源码阅读教育工具 #### wo-zx - [Github](https://github.com/wo-zx) -* :white_check_mark: [上码 (Upma)](https://upma.cn/):专为国内开发者打造的静态网站托管平台,支持 React / Vue / Next.js 一键部署与 CDN 全球加速。 - -#### 290713469 - [Github](https://github.com/290713469) -* :white_check_mark: [Star Rupture Calculator](https://starrupture-tools.com/):Stream 游戏 Star Rupture 工具网站 +* :white_check_mark: [上码 (Upma)](https://upma.cn/):静态网站托管平台,专为国内开发者打造,支持 React / Vue / Next.js 一键部署与 CDN 全球加速 ### 2026 年 01 月 08 号添加 @@ -37,7 +34,7 @@ * :white_check_mark: [UV Index Today](https://uvindex.cc/):实时显示所在地紫外线指数的工具 #### allen2peace - [Github](https://github.com/allen2peace) -* :white_check_mark: [ChatFlowchart](https://chatflowchart.com/):通过语言描述生成图表,可编辑文案,可导出PDF或图片 +* :white_check_mark: [ChatFlowchart](https://chatflowchart.com/):通过语言描述生成图表,可编辑文案,可导出 PDF 或图片 #### xbaicai0 - [Github](https://github.com/xbaicai0) * :white_check_mark: [zimageturbo](https://zimageturbo.com/):通过语言描述生成图片 From e81237295c1cc6d448caa9cdd31a0712b6185754 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28Cheng=20Zheng=29?= Date: Mon, 12 Jan 2026 00:05:26 +0800 Subject: [PATCH 095/126] docs: batch add 1 projects --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index 8a71a50..f1b423d 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,11 @@ ## 3. 项目列表 +### 2026 年 01 月 11 号添加 + +#### hydemei - [Github](https://github.com/hydemei) +* :white_check_mark: [toolrain.com](https://toolrain.com/):AI导航站,可免费提交,收录处理快 + ### 2026 年 01 月 09 号添加 #### tzzp1224 - [Github](https://github.com/tzzp1224) From 0b8758dbf16229ce02e059ecd409789083e9a997 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28Cheng=20Zheng=29?= Date: Mon, 12 Jan 2026 11:47:25 +0800 Subject: [PATCH 096/126] Update README.md --- README.md | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index f1b423d..2acc9cd 100644 --- a/README.md +++ b/README.md @@ -20,12 +20,15 @@ ## 3. 项目列表 -### 2026 年 01 月 11 号添加 +### 2026 年 1 月 12 号添加 #### hydemei - [Github](https://github.com/hydemei) * :white_check_mark: [toolrain.com](https://toolrain.com/):AI导航站,可免费提交,收录处理快 -### 2026 年 01 月 09 号添加 +#### businesszh - [Github](https://github.com/businesszh) +* :white_check_mark: [免费 AI 视频生成器 Sora 2](https://aisora2.com/):即刻创建逼真视频 + +### 2026 年 1 月 9 号添加 #### tzzp1224 - [Github](https://github.com/tzzp1224) * :white_check_mark: [RepoReaper](https://www.realdexter.com/):Github AI 代码审计探员(基于 DeepSeek),面向计算机学生和初学者的源码阅读教育工具 @@ -33,7 +36,7 @@ #### wo-zx - [Github](https://github.com/wo-zx) * :white_check_mark: [上码 (Upma)](https://upma.cn/):静态网站托管平台,专为国内开发者打造,支持 React / Vue / Next.js 一键部署与 CDN 全球加速 -### 2026 年 01 月 08 号添加 +### 2026 年 1 月 8 号添加 #### BC - [Github](https://github.com/cwingho) * :white_check_mark: [UV Index Today](https://uvindex.cc/):实时显示所在地紫外线指数的工具 @@ -47,7 +50,7 @@ #### Jack * :white_check_mark: [YourRizzAI](https://yourizzai.com):AI 聊天分析工具,一键生成自然的约会对话和回复建议 -### 2026 年 01 月 07 号添加 +### 2026 年 1 月 7 号添加 #### yzqzy - [Github](https://github.com/yzqzy) * :white_check_mark: [TradeSignal](https://tradersignal.org/):AI 股票分析 + 专业盘后复盘工具|价值为基、趋势为策 From 5708e95303bd27eae4dd9eae48d70f4fa705b052 Mon Sep 17 00:00:00 2001 From: Cheng Zheng Date: Mon, 12 Jan 2026 11:50:52 +0800 Subject: [PATCH 097/126] fix --- .github/scripts/process_item.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/scripts/process_item.py b/.github/scripts/process_item.py index 9518f9f..9b67828 100644 --- a/.github/scripts/process_item.py +++ b/.github/scripts/process_item.py @@ -139,7 +139,7 @@ def main(): content = repo.get_contents("README.md", ref="master") readme_text = content.decoded_content.decode("utf-8") - today_str = datetime.now().strftime("%Y 年 %m 月 %d 号添加") + today_str = datetime.now().strftime("%Y 年 %-m 月 %-d 号添加") date_header = f"### {today_str}" if date_header not in readme_text: From edbf4a1763b880a338dc0b8adafed61b7344900b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28Cheng=20Zheng=29?= Date: Mon, 12 Jan 2026 13:42:52 +0800 Subject: [PATCH 098/126] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 2acc9cd..2c7b888 100644 --- a/README.md +++ b/README.md @@ -21,6 +21,8 @@ ## 3. 项目列表 ### 2026 年 1 月 12 号添加 +#### zongguowu - [Github](https://github.com/zongguowu) +* :white_check_mark: [Seedream 4.0 生成和编辑 Image Studio](https://seedream4.me/):最多上传 10 张图片或从提示开始。混合、增强和动画——所有这些都由 Seedream 4.0 的多模态模型提供支持。 #### hydemei - [Github](https://github.com/hydemei) * :white_check_mark: [toolrain.com](https://toolrain.com/):AI导航站,可免费提交,收录处理快 From 23d67890d546778d54ad2c970c6f8c20fe19d69f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28Cheng=20Zheng=29?= Date: Tue, 13 Jan 2026 00:07:23 +0800 Subject: [PATCH 099/126] docs: batch add 1 projects --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 2c7b888..0d9696c 100644 --- a/README.md +++ b/README.md @@ -21,6 +21,9 @@ ## 3. 项目列表 ### 2026 年 1 月 12 号添加 + +#### BC - [Github](https://github.com/cwingho) +* :white_check_mark: [Subnet Mask Cheatsheet](https://subnetmaskcheatsheet.com/):子网掩码速查表和网络计算工具网站,提供 CIDR 计算器、IP 地址查询、VLSM 计算器等实用工具。 #### zongguowu - [Github](https://github.com/zongguowu) * :white_check_mark: [Seedream 4.0 生成和编辑 Image Studio](https://seedream4.me/):最多上传 10 张图片或从提示开始。混合、增强和动画——所有这些都由 Seedream 4.0 的多模态模型提供支持。 From 5fef1ea51634b089d408dd13108df4c9d8d2bbd9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28Cheng=20Zheng=29?= Date: Wed, 14 Jan 2026 00:08:06 +0800 Subject: [PATCH 100/126] docs: batch add 4 projects --- README.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/README.md b/README.md index 0d9696c..b379f99 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,21 @@ ## 3. 项目列表 +### 2026 年 1 月 13 号添加 + +#### Y80 - [Github](https://github.com/Y80) +* :white_check_mark: [BMM](https://bmm.lccl.cc):你的专属书签管家,含管理员系统、用户系统,支持 AI 自动整理书签、标签,可自行部署。 + +#### Albert-Weasker - [Github](https://github.com/Albert-Weasker) +* :white_check_mark: [Albert-Weasker](https://github.com/Albert-Weasker) +* :white_check_mark: [蒲公英](https://www.pugongying.ink/):反社交、无痕迹的极简表达平台,提供没有账号、没有互动、不留痕迹的平台,能低负担地表达想法,实现“说出来就放下”的需求,而非建立关系或社交联系。 + +#### ChenCong91 - [Github](https://github.com/ChenCong91) +* :white_check_mark: [BabyFilter AI](https://babyfilter.ai):将用户上传的人物照转换为小时候的照片 + +#### nanobanana-co - [Github](https://github.com/nanobanana-co) +* :white_check_mark: [Videoeditai.app](https://videoeditai.app/):人工智能视频编辑平台,可通过文本提示转换视频内容,添加/删除对象,生成新相机角度,应用风格转移,修改照明。 + ### 2026 年 1 月 12 号添加 #### BC - [Github](https://github.com/cwingho) From d05e4d0db8830a644fab79c06d1974e60e6a56c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28Cheng=20Zheng=29?= Date: Wed, 14 Jan 2026 11:55:07 +0800 Subject: [PATCH 101/126] Update README.md --- README.md | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index b379f99..4e7d30f 100644 --- a/README.md +++ b/README.md @@ -23,17 +23,16 @@ ### 2026 年 1 月 13 号添加 #### Y80 - [Github](https://github.com/Y80) -* :white_check_mark: [BMM](https://bmm.lccl.cc):你的专属书签管家,含管理员系统、用户系统,支持 AI 自动整理书签、标签,可自行部署。 +* :white_check_mark: [BMM](https://bmm.lccl.cc):你的专属书签管家,含管理员系统、用户系统,支持 AI 自动整理书签、标签,可自行部署 #### Albert-Weasker - [Github](https://github.com/Albert-Weasker) -* :white_check_mark: [Albert-Weasker](https://github.com/Albert-Weasker) -* :white_check_mark: [蒲公英](https://www.pugongying.ink/):反社交、无痕迹的极简表达平台,提供没有账号、没有互动、不留痕迹的平台,能低负担地表达想法,实现“说出来就放下”的需求,而非建立关系或社交联系。 +* :white_check_mark: [蒲公英](https://www.pugongying.ink/):反社交、无痕迹的极简表达平台,提供没有账号、没有互动、不留痕迹的平台,能低负担地表达想法,实现“说出来就放下”的需求,而非建立关系或社交联系 -#### ChenCong91 - [Github](https://github.com/ChenCong91) +#### Eric(上海) - [Github](https://github.com/ChenCong91) * :white_check_mark: [BabyFilter AI](https://babyfilter.ai):将用户上传的人物照转换为小时候的照片 -#### nanobanana-co - [Github](https://github.com/nanobanana-co) -* :white_check_mark: [Videoeditai.app](https://videoeditai.app/):人工智能视频编辑平台,可通过文本提示转换视频内容,添加/删除对象,生成新相机角度,应用风格转移,修改照明。 +#### 詹姆斯 周 - [Github](https://github.com/nanobanana-co) +* :white_check_mark: [Videoeditai.app](https://videoeditai.app/):人工智能视频编辑平台,可通过文本提示转换视频内容,添加/删除对象,生成新相机角度,应用风格转移,修改照明 ### 2026 年 1 月 12 号添加 From 300c7e98cbcc821d8162a0ba3c24945cc7e59b4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28Cheng=20Zheng=29?= Date: Wed, 14 Jan 2026 11:57:49 +0800 Subject: [PATCH 102/126] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 4e7d30f..d96ecb0 100644 --- a/README.md +++ b/README.md @@ -28,8 +28,10 @@ #### Albert-Weasker - [Github](https://github.com/Albert-Weasker) * :white_check_mark: [蒲公英](https://www.pugongying.ink/):反社交、无痕迹的极简表达平台,提供没有账号、没有互动、不留痕迹的平台,能低负担地表达想法,实现“说出来就放下”的需求,而非建立关系或社交联系 + #### 詹姆斯 周 - [Github](https://github.com/nanobanana-co) * :white_check_mark: [Videoeditai.app](https://videoeditai.app/):人工智能视频编辑平台,可通过文本提示转换视频内容,添加/删除对象,生成新相机角度,应用风格转移,修改照明 From 1f0c2af61264bb15b17de25fef7130746db3e52b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28Cheng=20Zheng=29?= Date: Wed, 14 Jan 2026 12:00:25 +0800 Subject: [PATCH 103/126] Update README-Programmer-Edition.md --- README-Programmer-Edition.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README-Programmer-Edition.md b/README-Programmer-Edition.md index b4ab2a1..b943f3f 100644 --- a/README-Programmer-Edition.md +++ b/README-Programmer-Edition.md @@ -16,6 +16,10 @@ Issue 和 PR 里偶尔有人提交一些不错的东西,但打开一看,不 程序员版开始于 2019 年 4 月 11 号, 主版面开始于 2018 年 3 月 --> +### 2026 年 1 月 14 号添加 +#### 草梅友仁 - [Github](https://github.com/CaoMeiYouRen), [博客](https://momei.app/) + :white_check_mark: [墨梅博客](https://github.com/CaoMeiYouRen/momei):专为技术开发者和跨境内容创作者量身定制的专业、高性能、国际化博客平台 - [更多介绍](https://docs.momei.app/) + ### 2025 年 12 月 2 号添加 #### phishdestroy - [GitHub](https://github.com/phishdestroy) * :white_check_mark: [Destroylist](https://github.com/phishdestroy/destroylist):Auto-updating phishing blacklist for threat intelligence From a31142cce2089ce080930eb4f608cd325ac3e18c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28Cheng=20Zheng=29?= Date: Wed, 14 Jan 2026 12:01:24 +0800 Subject: [PATCH 104/126] Update README-Programmer-Edition.md --- README-Programmer-Edition.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README-Programmer-Edition.md b/README-Programmer-Edition.md index b943f3f..55ccc31 100644 --- a/README-Programmer-Edition.md +++ b/README-Programmer-Edition.md @@ -18,7 +18,7 @@ Issue 和 PR 里偶尔有人提交一些不错的东西,但打开一看,不 ### 2026 年 1 月 14 号添加 #### 草梅友仁 - [Github](https://github.com/CaoMeiYouRen), [博客](https://momei.app/) - :white_check_mark: [墨梅博客](https://github.com/CaoMeiYouRen/momei):专为技术开发者和跨境内容创作者量身定制的专业、高性能、国际化博客平台 - [更多介绍](https://docs.momei.app/) +* :white_check_mark: [墨梅博客](https://github.com/CaoMeiYouRen/momei):博客平台,专为技术开发者和跨境内容创作者量身定制。专业、高性能、国际化 - [更多介绍](https://docs.momei.app/) ### 2025 年 12 月 2 号添加 #### phishdestroy - [GitHub](https://github.com/phishdestroy) From a362687f0081c3461e9db7334427e3b596c6b954 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28Cheng=20Zheng=29?= Date: Thu, 15 Jan 2026 09:42:16 +0800 Subject: [PATCH 105/126] docs: batch add 1 projects --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index d96ecb0..c212776 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,11 @@ ## 3. 项目列表 +### 2026 年 1 月 15 号添加 + +#### jvxiao(Shenzhen) - [Github](https://github.com/jvxiao), [博客](https://jvxiao.cn) +* :white_check_mark: [图片工具箱](https://tools.jvxiao.cn):全平台支持的在线图片处理工具集,涵盖压缩、裁剪、AI 抠图、背景替换、格式转换与水印功能 + ### 2026 年 1 月 13 号添加 #### Y80 - [Github](https://github.com/Y80) From 189df6b63a410a156ce413aa1cbea4327d201cd8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28Cheng=20Zheng=29?= Date: Thu, 15 Jan 2026 12:06:08 +0800 Subject: [PATCH 106/126] docs: batch add 1 projects --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index c212776..e2a1e8f 100644 --- a/README.md +++ b/README.md @@ -22,6 +22,9 @@ ### 2026 年 1 月 15 号添加 +#### ChenCong91 - [Github](https://github.com/ChenCong91) +* :white_check_mark: [BabyFilter AI](https://babyfilter.art):将用户上传的人物照转换为小时候的照片 + #### jvxiao(Shenzhen) - [Github](https://github.com/jvxiao), [博客](https://jvxiao.cn) * :white_check_mark: [图片工具箱](https://tools.jvxiao.cn):全平台支持的在线图片处理工具集,涵盖压缩、裁剪、AI 抠图、背景替换、格式转换与水印功能 From d672241e7008b02718c882034d2a078b1a5da2cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28Cheng=20Zheng=29?= Date: Fri, 16 Jan 2026 00:10:43 +0800 Subject: [PATCH 107/126] docs: batch add 1 projects --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index e2a1e8f..0313aa0 100644 --- a/README.md +++ b/README.md @@ -22,6 +22,9 @@ ### 2026 年 1 月 15 号添加 +#### xingstarx - [Github](https://github.com/xingstarx) +* :white_check_mark: [AI人像移除工具](https://nanobananaeditor.cc/zh/remove-person-from-photo):基于Nano Banana模型,从照片中移除不需要的人像 + #### ChenCong91 - [Github](https://github.com/ChenCong91) * :white_check_mark: [BabyFilter AI](https://babyfilter.art):将用户上传的人物照转换为小时候的照片 From 2e24bd0ff6c19f410b385b5a3c210989245e6b98 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28Cheng=20Zheng=29?= Date: Fri, 16 Jan 2026 15:17:33 +0800 Subject: [PATCH 108/126] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0313aa0..f0f529d 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ ### 2026 年 1 月 15 号添加 #### xingstarx - [Github](https://github.com/xingstarx) -* :white_check_mark: [AI人像移除工具](https://nanobananaeditor.cc/zh/remove-person-from-photo):基于Nano Banana模型,从照片中移除不需要的人像 +* :white_check_mark: [AI人像移除工具](https://nanobananaeditor.cc/zh/remove-person-from-photo):从照片中移除不需要的人像,基于 Nano Banana 模型 #### ChenCong91 - [Github](https://github.com/ChenCong91) * :white_check_mark: [BabyFilter AI](https://babyfilter.art):将用户上传的人物照转换为小时候的照片 From 7dddaea440c0cf1f04583b119befb2dd2949b94e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28Cheng=20Zheng=29?= Date: Fri, 16 Jan 2026 19:14:54 +0800 Subject: [PATCH 109/126] docs: batch add 3 projects --- README.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/README.md b/README.md index f0f529d..6b93b25 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,17 @@ ## 3. 项目列表 +### 2026 年 1 月 16 号添加 + +#### Hugh (杭州) - [Github](), [博客](https://squareface.app/blog) +* :white_check_mark: [Square Face Generator](https://squareface.app):致敬 Flash 时代的在线像素头像生成器,支持将设计的头像导出为 3D 纸模 (Papercraft) PDF 图纸 - [更多介绍](https://squareface.app/generators/square-face-papercraft-generator) + +#### Jack (杭州) - [博客](https://karmictail.com/blog) +* :white_check_mark: [Karmic Tail Calculator](https://karmictail.com):基于命运矩阵体系的在线计算器,解析用户的业力尾巴与阿卡纳能量 - [更多介绍](https://karmictail.com/blog/what-is-my-karmic-tail) + +#### upup熊猫(广州) - [Github](https://github.com/pandaupup) +* :white_check_mark: [Speaking Time Calculator](https://speakingtimecalculator.org):估算文本/演讲稿时长的小工具,无需注册,只需粘贴文本或输入字数,然后设置语速即可 + ### 2026 年 1 月 15 号添加 #### xingstarx - [Github](https://github.com/xingstarx) From 4d446356ac62eda08976a2ea126601a74cf49aea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28Cheng=20Zheng=29?= Date: Fri, 16 Jan 2026 19:16:49 +0800 Subject: [PATCH 110/126] Update README.md --- README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 6b93b25..4ecde16 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,10 @@ ### 2026 年 1 月 16 号添加 -#### Hugh (杭州) - [Github](), [博客](https://squareface.app/blog) +#### Adrien Millot - [Github](https://github.com/camgraphe) +* :white_check_mark: [MaxVideoAI](https://maxvideoai.com/):多模型 AI 视频生成平台(文生视频 / 图生视频),提供公开的模型页面、提示词参考和示例,用于探索不同的视频生成模型。 + +#### Hugh (杭州) - [博客](https://squareface.app/blog) * :white_check_mark: [Square Face Generator](https://squareface.app):致敬 Flash 时代的在线像素头像生成器,支持将设计的头像导出为 3D 纸模 (Papercraft) PDF 图纸 - [更多介绍](https://squareface.app/generators/square-face-papercraft-generator) #### Jack (杭州) - [博客](https://karmictail.com/blog) From 44bd8f60a78128fd81ec81243dfa8ffb778a6dde Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28Cheng=20Zheng=29?= Date: Sun, 18 Jan 2026 00:05:20 +0800 Subject: [PATCH 111/126] docs: batch add 3 projects --- README.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/README.md b/README.md index 4ecde16..1b3b653 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,17 @@ ## 3. 项目列表 +### 2026 年 1 月 17 号添加 + +#### nanobanana-co - [Github](https://github.com/nanobanana-co) +* :white_check_mark: [sotavideoai.com](https://sotavideoai.com/):最新的 AI 视频生成模型,创建具有同步音频、对话和效果的逼真且物理准确的视频。 + +#### wufuliang561 - [Github](https://github.com/wufuliang561) +* :white_check_mark: [Img2Img.net](https://img-2-img.net/):AI 图像到图像生成器,支持多种艺术风格转换,如吉卜力、赛博朋克、油画等。 + +#### Hugh (城市名) - [博客](https://pixsprout.com/posts) +* :white_check_mark: [pixsprout.com](https://pixsprout.com/text-to-stamp):专注于生成复古橡皮印章效果的 AI 工具,支持文字生成印章、图片转印章及自动去底 - [更多介绍](https://pixsprout.com/image-to-stamp) + ### 2026 年 1 月 16 号添加 #### Adrien Millot - [Github](https://github.com/camgraphe) From 8b4ca05b2393e89c04a42fe21d0234d73e75078c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28Cheng=20Zheng=29?= Date: Sun, 18 Jan 2026 19:04:11 +0800 Subject: [PATCH 112/126] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 1b3b653..2442064 100644 --- a/README.md +++ b/README.md @@ -22,13 +22,13 @@ ### 2026 年 1 月 17 号添加 -#### nanobanana-co - [Github](https://github.com/nanobanana-co) +#### James zhou - [Github](https://github.com/nanobanana-co) * :white_check_mark: [sotavideoai.com](https://sotavideoai.com/):最新的 AI 视频生成模型,创建具有同步音频、对话和效果的逼真且物理准确的视频。 #### wufuliang561 - [Github](https://github.com/wufuliang561) * :white_check_mark: [Img2Img.net](https://img-2-img.net/):AI 图像到图像生成器,支持多种艺术风格转换,如吉卜力、赛博朋克、油画等。 -#### Hugh (城市名) - [博客](https://pixsprout.com/posts) +#### Hugh - [博客](https://pixsprout.com/posts) * :white_check_mark: [pixsprout.com](https://pixsprout.com/text-to-stamp):专注于生成复古橡皮印章效果的 AI 工具,支持文字生成印章、图片转印章及自动去底 - [更多介绍](https://pixsprout.com/image-to-stamp) ### 2026 年 1 月 16 号添加 From 146ed315dfa734460fbfd62e5734c29921b419bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28Cheng=20Zheng=29?= Date: Mon, 19 Jan 2026 00:05:36 +0800 Subject: [PATCH 113/126] docs: batch add 3 projects --- README.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/README.md b/README.md index 2442064..015bc12 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,20 @@ ## 3. 项目列表 +### 2026 年 1 月 18 号添加 + +#### JoyX(深圳) +* :white_check_mark: [Image To STL](https://imagetostl.io):将图像转换为STL文件以进行3D打印 + +#### Johnson Zou(武汉) +* :white_check_mark: [Cowork Skills](https://www.cowork-skills.com/):收集 Claude Cowork Prompt 模板 +* :white_check_mark: [Figma 打印工具落地页](https://www.printery.app/):导出 CMYK 色彩模式、出血位、300 DPI 的可直接用于印刷的 PDF 文件 +* :white_check_mark: [Square Face Icon Generator](https://www.squarefaceicongenerator.co/):生成方形脸图标工具 + +#### catscai - [Github](https://github.com/catscai) +* :white_check_mark: [CatsCai](https://github.com/catscai):Github 主页 +* :white_check_mark: [picfittool.com](https://picfittool.com/):图片处理网站,支持 App Store、Google Play 上架截图批量处理,证件照处理,通用裁剪、抠图、压缩、水印等功能 + ### 2026 年 1 月 17 号添加 #### James zhou - [Github](https://github.com/nanobanana-co) From 922f039c47f1a89607edace2a4902401925a566c Mon Sep 17 00:00:00 2001 From: jacky-xbb Date: Mon, 19 Jan 2026 19:05:05 +0800 Subject: [PATCH 114/126] docs: add Flux2Klein.io project Co-Authored-By: Claude Opus 4.5 --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2442064..0d125b6 100644 --- a/README.md +++ b/README.md @@ -1681,6 +1681,7 @@ #### Jacky(南京) * :white_check_mark: [FacelessVideos.APP](https://facelessvideos.app):将一个 idea 转化成短视频 ,自动加上语音,可以定制化背景音乐和字幕,发布在 youtube 频道中。 * :white_check_mark: [ImagesArt.ai](https://imagesart.ai):生成完美的AI艺术提示词。使用这个工具为Flux、Midjourney和Stable Diffusion模型生成并优化图像提示词。 +* :white_check_mark: [Flux2Klein.io](https://flux2klein.io/):在 0.5 秒内生成照片级真实图像。基于 Flux2 Klein 9B 模型,提供统一的图像生成和编辑功能。无需注册即可免费生成 2 次。 #### sing1ee - [Github](https://github.com/sing1ee) * :white_check_mark: [PapyrusFont.com](https://papyrusfont.com/): 用 Papyrus 字体创建精美的文字设计,可保存为 PNG From c69ca7d1db2c33c8c78fe4363912e64a2d6daac0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28Cheng=20Zheng=29?= Date: Mon, 19 Jan 2026 21:41:34 +0800 Subject: [PATCH 115/126] Update README.md --- README.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 015bc12..6746475 100644 --- a/README.md +++ b/README.md @@ -20,10 +20,10 @@ ## 3. 项目列表 -### 2026 年 1 月 18 号添加 +### 2026 年 1 月 19 号添加 #### JoyX(深圳) -* :white_check_mark: [Image To STL](https://imagetostl.io):将图像转换为STL文件以进行3D打印 +* :white_check_mark: [Image To STL](https://imagetostl.io):将图像转换为 STL 文件以进行3D打印 #### Johnson Zou(武汉) * :white_check_mark: [Cowork Skills](https://www.cowork-skills.com/):收集 Claude Cowork Prompt 模板 @@ -31,7 +31,6 @@ * :white_check_mark: [Square Face Icon Generator](https://www.squarefaceicongenerator.co/):生成方形脸图标工具 #### catscai - [Github](https://github.com/catscai) -* :white_check_mark: [CatsCai](https://github.com/catscai):Github 主页 * :white_check_mark: [picfittool.com](https://picfittool.com/):图片处理网站,支持 App Store、Google Play 上架截图批量处理,证件照处理,通用裁剪、抠图、压缩、水印等功能 ### 2026 年 1 月 17 号添加 From bf9383f7c6cba808e2796dd50a4f25bff82ba087 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28Cheng=20Zheng=29?= Date: Tue, 20 Jan 2026 00:07:13 +0800 Subject: [PATCH 116/126] docs: batch add 1 projects --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index fe99eb5..678b0fb 100644 --- a/README.md +++ b/README.md @@ -22,6 +22,9 @@ ### 2026 年 1 月 19 号添加 +#### peekaboo(重庆) +* :white_check_mark: [音频转文字](https://transcribetotext.org/):即时将音频转换为文字 + #### JoyX(深圳) * :white_check_mark: [Image To STL](https://imagetostl.io):将图像转换为 STL 文件以进行3D打印 From c457844d3b85ce7240835eeae5680c26d7d8217b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28Cheng=20Zheng=29?= Date: Wed, 21 Jan 2026 00:09:20 +0800 Subject: [PATCH 117/126] docs: batch add 1 projects --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index fe99eb5..b9826c3 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,11 @@ ## 3. 项目列表 +### 2026 年 1 月 20 号添加 + +#### monsoonw +* :white_check_mark: [MP3 to Text, TXT & SRT Converter](https://mp3totext.net):在线 MP3 转文本工具,可将 MP3 转为 TXT 或 SRT(字幕) + ### 2026 年 1 月 19 号添加 #### JoyX(深圳) From 4af5d072a454e2949d1b4003123b52b2a10095b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28Cheng=20Zheng=29?= Date: Wed, 21 Jan 2026 13:44:17 +0800 Subject: [PATCH 118/126] docs: batch add 2 projects --- README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/README.md b/README.md index 4bab19b..6cf34af 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,14 @@ ## 3. 项目列表 +### 2026 年 1 月 21 号添加 + +#### lixiaofei162-code - [Github](https://github.com/lixiaofei162-code) +* :white_check_mark: [Agent – Claude Code skills 精选导航站](https://agent-skills.cc/):从收集的6w+ agnet-skills中精选出 1000+实用/有趣的 claude code skills,持续更新中 + +#### KevinKaul +* :white_check_mark: [FastScribe](https://fastscribe.org):Convert MP3, MP4, WAV to text online. Audio transcription and video to text converter with 240 minutes free credit. + ### 2026 年 1 月 20 号添加 #### monsoonw From 4129d684e9e57bb8751c10b35a6a919555b9bed6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28Cheng=20Zheng=29?= Date: Wed, 21 Jan 2026 15:30:01 +0800 Subject: [PATCH 119/126] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6cf34af..d9d3db9 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ ### 2026 年 1 月 21 号添加 #### lixiaofei162-code - [Github](https://github.com/lixiaofei162-code) -* :white_check_mark: [Agent – Claude Code skills 精选导航站](https://agent-skills.cc/):从收集的6w+ agnet-skills中精选出 1000+实用/有趣的 claude code skills,持续更新中 +* :white_check_mark: [Agent – Claude Code skills 精选导航站](https://agent-skills.cc/):从收集的 6w+ agnet-skills中精选出 1000+ 实用/有趣的 Claude Code Skills,持续更新中 #### KevinKaul * :white_check_mark: [FastScribe](https://fastscribe.org):Convert MP3, MP4, WAV to text online. Audio transcription and video to text converter with 240 minutes free credit. From 4036a5e928a34f170a104b98da4e9f0b6e36d8d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28Cheng=20Zheng=29?= Date: Sat, 24 Jan 2026 00:07:53 +0800 Subject: [PATCH 120/126] docs: batch add 1 projects --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index d9d3db9..fbd30eb 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,12 @@ ## 3. 项目列表 +### 2026 年 1 月 23 号添加 + +#### suxiaoshuang2020-arch - [Github](https://github.com/suxiaoshuang2020-arch) +* :white_check_mark: [2d & 3d 文件格式转换器](https://www.3dpea.com/):在线2D&3D 文件格式转换器,支持包含:png to stl, obj to stl, webp to png等。 +* :white_check_mark: [dicom to stl](https://dicom2stl.io/):在线将dicom 医学扫描文件转为可打印的3d stl 文件的工具。 + ### 2026 年 1 月 21 号添加 #### lixiaofei162-code - [Github](https://github.com/lixiaofei162-code) From fc5adbf8dd812a5ff74df15bf7ea738f623c51af Mon Sep 17 00:00:00 2001 From: Justin3go Date: Sat, 24 Jan 2026 22:54:36 +0800 Subject: [PATCH 121/126] Update README with new project entries Added new project listings and links to README. --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index d9d3db9..15e0a42 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,11 @@ ## 3. 项目列表 +### 2026 年 1 月 24 号添加 + +#### Justin3go(北京) - [博客](https://justin3go.com) +* :white_check_mark: [HUNT0 - Ship Early. Hunt Early](https://hunt0.com):产品发布平台,类似于ProductHunt,欢迎提交~ + ### 2026 年 1 月 21 号添加 #### lixiaofei162-code - [Github](https://github.com/lixiaofei162-code) From 75fbcbafaad8ba8147e6a0fa6f346c082d97f47b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28Cheng=20Zheng=29?= Date: Sun, 25 Jan 2026 08:47:26 +0800 Subject: [PATCH 122/126] Update README.md --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index fbd30eb..e096df3 100644 --- a/README.md +++ b/README.md @@ -23,13 +23,13 @@ ### 2026 年 1 月 23 号添加 #### suxiaoshuang2020-arch - [Github](https://github.com/suxiaoshuang2020-arch) -* :white_check_mark: [2d & 3d 文件格式转换器](https://www.3dpea.com/):在线2D&3D 文件格式转换器,支持包含:png to stl, obj to stl, webp to png等。 -* :white_check_mark: [dicom to stl](https://dicom2stl.io/):在线将dicom 医学扫描文件转为可打印的3d stl 文件的工具。 +* :white_check_mark: [2d & 3d 文件格式转换器](https://www.3dpea.com/):2D&3D 文件格式转换器,支持包含:png to stl, obj to stl, webp to png 等 +* :white_check_mark: [dicom to stl](https://dicom2stl.io/):将 dicom 医学扫描文件转为可打印的 3d stl 文件的工具 ### 2026 年 1 月 21 号添加 #### lixiaofei162-code - [Github](https://github.com/lixiaofei162-code) -* :white_check_mark: [Agent – Claude Code skills 精选导航站](https://agent-skills.cc/):从收集的 6w+ agnet-skills中精选出 1000+ 实用/有趣的 Claude Code Skills,持续更新中 +* :white_check_mark: [Agent – Claude Code skills 精选导航站](https://agent-skills.cc/):从收集的 6w+ agnet-skills 中精选出 1000+ 实用/有趣的 Claude Code Skills,持续更新中 #### KevinKaul * :white_check_mark: [FastScribe](https://fastscribe.org):Convert MP3, MP4, WAV to text online. Audio transcription and video to text converter with 240 minutes free credit. From 65d6085bce5e959b253151f9bbb81009f119d736 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28Cheng=20Zheng=29?= Date: Mon, 26 Jan 2026 00:05:37 +0800 Subject: [PATCH 123/126] docs: batch add 1 projects --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index 7fe4458..da4a7bf 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,11 @@ ## 3. 项目列表 +### 2026 年 1 月 25 号添加 + +#### lshimin(武汉) - [Github](https://github.com/lshimin188) +* :white_check_mark: [SAM 3D](https://sam3d.org):基于 Meta 开源的 SAM 3D 模型,在线将图片中的对象分割转换为高精度 3D 模型 + ### 2026 年 1 月 24 号添加 #### suxiaoshuang2020-arch - [Github](https://github.com/suxiaoshuang2020-arch) * :white_check_mark: [2d & 3d 文件格式转换器](https://www.3dpea.com/):2D&3D 文件格式转换器,支持包含:png to stl, obj to stl, webp to png 等 From 5d8279717e3d2c71a46c25484efffc070451c55c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28Cheng=20Zheng=29?= Date: Mon, 26 Jan 2026 14:20:16 +0800 Subject: [PATCH 124/126] docs: batch add 3 projects --- README.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/README.md b/README.md index da4a7bf..c949535 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,18 @@ ## 3. 项目列表 +### 2026 年 1 月 26 号添加 + +#### Shawn(北京) - [Github](https://github.com/ShawnHacks) +* :white_check_mark: [CuteWallpaper.site](https://cutewallpaper.site/):支持裁剪下载的可爱壁纸网站 + +#### ZizheRuan - [Github](https://github.com/ZizheRuan) +* :white_check_mark: [博客](https://deepcreates.com/):北京ZZRyan的博客 +* :white_check_mark: [AI Just Better](https://aijustbetter.com/):AI产品发布、宣传、推广平台,可免费提交产品,对同类产品进行横向对比 + +#### QingJ(西安) - [Github](https://github.com/QingJ01/), [博客](https://blog.byebug.cn/) +* :white_check_mark: [OneLook](https://onelook.byebug.cn/):Web 端思维导图工具 + ### 2026 年 1 月 25 号添加 #### lshimin(武汉) - [Github](https://github.com/lshimin188) From aa34750cf55654253beb3f615ee4f3c5364768e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=AF=9A=20=28Cheng=20Zheng=29?= Date: Mon, 26 Jan 2026 14:26:06 +0800 Subject: [PATCH 125/126] Update README.md --- README.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index c949535..d6cc6dd 100644 --- a/README.md +++ b/README.md @@ -25,12 +25,11 @@ #### Shawn(北京) - [Github](https://github.com/ShawnHacks) * :white_check_mark: [CuteWallpaper.site](https://cutewallpaper.site/):支持裁剪下载的可爱壁纸网站 -#### ZizheRuan - [Github](https://github.com/ZizheRuan) -* :white_check_mark: [博客](https://deepcreates.com/):北京ZZRyan的博客 -* :white_check_mark: [AI Just Better](https://aijustbetter.com/):AI产品发布、宣传、推广平台,可免费提交产品,对同类产品进行横向对比 +#### ZizheRuan - [Github](https://github.com/ZizheRuan), [博客](https://deepcreates.com/) +* :white_check_mark: [AI Just Better](https://aijustbetter.com/):AI 产品发布、宣传、推广平台,可免费提交产品,对同类产品进行横向对比 #### QingJ(西安) - [Github](https://github.com/QingJ01/), [博客](https://blog.byebug.cn/) -* :white_check_mark: [OneLook](https://onelook.byebug.cn/):Web 端思维导图工具 +* :white_check_mark: [OneLook](https://onelook.byebug.cn/):Web 端思维导图工具。它摒弃了繁杂的 UI 干扰,结合了 Markdown 的流畅输入与 SVG 的高性能渲染,为您提供所见即所得的思考空间。数据完全存储于本地,隐私无忧。 ### 2026 年 1 月 25 号添加 From eb30530787b17b94c50929ddecfa33d9807c3c2b Mon Sep 17 00:00:00 2001 From: haosao12345 <644238567@qq.com> Date: Mon, 26 Jan 2026 17:11:20 +0800 Subject: [PATCH 126/126] Add qqhaosao project entry to README Added a new project entry for qqhaosao and its link. --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index d6cc6dd..1ad1d35 100644 --- a/README.md +++ b/README.md @@ -22,6 +22,9 @@ ### 2026 年 1 月 26 号添加 +#### qqhaosao(广州) +* :white_check_mark: [Heic To Png](https://heic-to-png.online/):免费将heic/heif格式的图片转换为png + #### Shawn(北京) - [Github](https://github.com/ShawnHacks) * :white_check_mark: [CuteWallpaper.site](https://cutewallpaper.site/):支持裁剪下载的可爱壁纸网站