Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

🎈 perf: 使用commit号下载插件 #1641

Merged
merged 2 commits into from
Sep 21, 2024

Conversation

AkashiCoin
Copy link
Collaborator

@AkashiCoin AkashiCoin commented Sep 21, 2024

Sourcery总结

添加支持使用特定提交版本下载插件,并引入新的Bilibili订阅插件。增强测试套件以涵盖新功能。

新功能:

  • 引入新的Bilibili订阅插件,允许用户接收直播、动漫和UP动态更新的通知。

增强:

  • 修改插件安装过程以支持使用特定提交版本下载插件,增强版本控制和稳定性。

测试:

  • 添加新的测试用例以验证使用提交版本添加插件,确保新功能的正确性。
Original summary in English

Summary by Sourcery

Add support for downloading plugins using specific commit versions and introduce a new Bilibili subscription plugin. Enhance the testing suite to cover the new functionality.

New Features:

  • Introduce a new plugin for Bilibili subscriptions, allowing users to receive notifications for live broadcasts, anime, and UP dynamic updates.

Enhancements:

  • Modify the plugin installation process to support downloading plugins using a specific commit version, enhancing version control and stability.

Tests:

  • Add new test cases to verify the addition of plugins using commit versions, ensuring the correct functionality of the new feature.

Copy link
Contributor

sourcery-ai bot commented Sep 21, 2024

审核指南由 Sourcery 提供

此拉取请求实现了一个功能,可以使用提交号下载插件。它增加了使用提交哈希指定插件版本的支持,更新了插件安装过程,并修改了相关的测试用例。

文件级别更改

更改 详情 文件
增加了使用提交号下载插件的支持
  • 修改了插件安装过程以处理带有提交哈希的版本号
  • 更新了 GitHub URL 构建以在存在时包含提交哈希
  • 为安装带有提交版本的插件添加了新的测试用例
zhenxun/builtin_plugins/plugin_store/data_source.py
tests/builtin_plugins/plugin_store/test_add_plugin.py
更新了模拟 API 响应和测试工具以支持基于提交的插件版本
  • 为基于提交的元数据和树信息添加了新的模拟 API 端点
  • 更新了现有的模拟 API 响应以包含基于提交的插件信息
  • 修改了测试工具函数以处理基于提交的插件数据
tests/builtin_plugins/plugin_store/utils.py
tests/response/plugin_store/zhenxun_bot_plugins_metadata.json
tests/response/plugin_store/zhenxun_bot_plugins_tree.json
tests/response/plugin_store/basic_plugins.json
更新了插件商店测试以反映新的基于提交的版本控制
  • 修改了现有的测试用例以包括基于提交的插件版本
  • 更新了测试断言中的预期插件 ID 和排序
tests/builtin_plugins/plugin_store/test_plugin_store.py
tests/builtin_plugins/plugin_store/test_search_plugin.py
为 'bilibili_sub' 添加了一个新的插件文件,带有基于提交的版本
  • 创建了一个包含插件元数据和使用信息的新文件
  • 在插件版本中包含提交哈希
tests/content/plugin_store/bilibili_sub.py

提示
  • 通过在拉取请求中评论 @sourcery-ai review 来触发新的 Sourcery 审核。
  • 通过直接回复审核评论继续与 Sourcery 的讨论。
  • 您可以随时通过访问您的仪表板更改您的审核设置:
    • 启用或禁用 Sourcery 生成的拉取请求摘要或审核指南;
    • 更改审核语言;
  • 如果您有任何问题或反馈,您可以随时联系我们
Original review guide in English

Reviewer's Guide by Sourcery

This pull request implements a feature to download plugins using commit numbers. It adds support for specifying plugin versions with commit hashes, updates the plugin installation process, and modifies related test cases.

File-Level Changes

Change Details Files
Added support for downloading plugins using commit numbers
  • Modified the plugin installation process to handle version numbers with commit hashes
  • Updated the GitHub URL construction to include the commit hash when present
  • Added new test cases for installing plugins with commit versions
zhenxun/builtin_plugins/plugin_store/data_source.py
tests/builtin_plugins/plugin_store/test_add_plugin.py
Updated mock API responses and test utilities to support commit-based plugin versions
  • Added new mock API endpoints for commit-based metadata and tree information
  • Updated existing mock API responses to include commit-based plugin information
  • Modified test utility functions to handle commit-based plugin data
tests/builtin_plugins/plugin_store/utils.py
tests/response/plugin_store/zhenxun_bot_plugins_metadata.json
tests/response/plugin_store/zhenxun_bot_plugins_tree.json
tests/response/plugin_store/basic_plugins.json
Updated plugin store tests to reflect new commit-based versioning
  • Modified existing test cases to include commit-based plugin versions
  • Updated expected plugin IDs and ordering in test assertions
tests/builtin_plugins/plugin_store/test_plugin_store.py
tests/builtin_plugins/plugin_store/test_search_plugin.py
Added a new plugin file for 'bilibili_sub' with commit-based version
  • Created a new file with plugin metadata and usage information
  • Included commit hash in the plugin version
tests/content/plugin_store/bilibili_sub.py

Tips
  • Trigger a new Sourcery review by commenting @sourcery-ai review on the pull request.
  • Continue your discussion with Sourcery by replying directly to review comments.
  • You can change your review settings at any time by accessing your dashboard:
    • Enable or disable the Sourcery-generated pull request summary or reviewer's guide;
    • Change the review language;
  • You can always contact us if you have any questions or feedback.

Copy link
Contributor

@sourcery-ai sourcery-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@AkashiCoin - 我已经审查了你的更改,它们看起来很棒!

这是我在审查期间查看的内容
  • 🟡 一般问题:发现1个问题
  • 🟢 安全性:一切看起来都很好
  • 🟡 测试:发现1个问题
  • 🟢 复杂性:一切看起来都很好
  • 🟢 文档:一切看起来都很好

Sourcery对开源项目免费 - 如果你喜欢我们的审查,请考虑分享它们 ✨
帮助我变得更有用!请点击每条评论上的👍或👎告诉我它是否有帮助。
Original comment in English

Hey @AkashiCoin - I've reviewed your changes and they look great!

Here's what I looked at during the review
  • 🟡 General issues: 1 issue found
  • 🟢 Security: all looks good
  • 🟡 Testing: 1 issue found
  • 🟢 Complexity: all looks good
  • 🟢 Documentation: all looks good

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment to tell me if it was helpful.

@@ -195,6 +195,10 @@ async def add_plugin(cls, plugin_id: int) -> str:
if plugin_info.github_url is None:
plugin_info.github_url = DEFAULT_GITHUB_URL
is_external = False
version_split = plugin_info.version.split("-")
if len(version_split) > 1:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

建议: 为URL修改过程添加错误处理

考虑添加错误处理,以优雅地管理GitHub URL不符合预期格式或URL修改过程失败的情况。这可能涉及使用try-except块并记录遇到的任何错误。

Suggested change
if len(version_split) > 1:
try:
if len(version_split) > 1:
github_url_split = plugin_info.github_url.split("/tree/")
if len(github_url_split) == 2:
plugin_info.github_url = f"{github_url_split[0]}/tree/{version_split[1]}"
else:
raise ValueError("Unexpected GitHub URL format")
except Exception as e:
logger.error(f"Error modifying GitHub URL: {e}")
Original comment in English

suggestion: Add error handling for URL modification process

Consider adding error handling to gracefully manage cases where the GitHub URL doesn't match the expected format or when the URL modification process fails. This could involve using a try-except block and logging any errors encountered.

Suggested change
if len(version_split) > 1:
try:
if len(version_split) > 1:
github_url_split = plugin_info.github_url.split("/tree/")
if len(github_url_split) == 2:
plugin_info.github_url = f"{github_url_split[0]}/tree/{version_split[1]}"
else:
raise ValueError("Unexpected GitHub URL format")
except Exception as e:
logger.error(f"Error modifying GitHub URL: {e}")

@@ -63,7 +63,7 @@ async def test_search_plugin_name(
[
[
"",
3,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

问题(测试): 搜索测试中的插件ID已更新

插件ID已在搜索测试中更新。确保此更改是有意的,并与对插件存储数据结构所做的更改一致。

Original comment in English

question (testing): Plugin ID updated in search tests

The plugin IDs have been updated in the search tests. Ensure that this change is intentional and aligns with the changes made to the plugin store data structure.

@HibiKier HibiKier merged commit f2c20b8 into HibiKier:dev Sep 21, 2024
@AkashiCoin AkashiCoin deleted the bugfix/plugin_store_commit branch September 22, 2024 07:13
HibiKier added a commit that referenced this pull request Sep 30, 2024
* ✨ 父级插件加载

* ✅ 添加测试:更新与添加插件 (#1594)

* ✅ 测试更新与添加插件

* ✅ Sourcery建议

* 👷 添加pytest

* 🎨 优化代码

* 🐛 bug修复

* 🐛修复添加插件返回403的问题 (#1595)

* 完善测试方法
* vscode测试配置
* 重构插件安装过程

* 🎨 修改readme

* Update README.md

* 🐛 修改bug与版本锁定

* 🐛 修复超级用户对群组功能开关

* 🐛 修复插件商店检查插件更新问题 (#1597)

* 🐛 修复插件商店检查插件更新问题

* 🐛 恶意命令检测问题

* 🐛 增加插件状态检查 (#1598)

* ✅ 优化测试用例

* 🐛 更改插件更新与安装逻辑

* 🐛 修复更新群组成员信息

* 🎨 代码优化

* 🚀 更新Dockerfile (#1599)

* 🎨 更新requirements

* ➕ 添加依赖aiocache

* ⚡ 添加github镜像

* ✨ 添加仓库目录多获取渠道

* 🐛 修复测试用例

* ✨ 添加API缓存

* 🎨 采取Sourcery建议

* 🐛 文件下载逻辑修改

* 🎨 优化代码

* 🐛 修复插件开关有时出现错误

* ✨ 重构自检ui

* 🐛 自检html修正

* 修复签到逻辑bug,并使代码更灵活以适应签到好感度等级配置 (#1606)

* 修复签到功能已知问题

* 修复签到功能已知问题

* 修改参数名称

* 修改uid判断

---------

Co-authored-by: HibiKier <45528451+HibiKier@users.noreply.github.com>

* 🎨 代码结构优化

* 🐛 私聊时修改插件时删除私聊帮助

* 🐛 过滤父插件

* 🐛 修复自检在ARM上的问题 (#1607)

* 🐛 修复自检在ARM上的问题

* ✅ 优化测试

* ✨ 支持mysql,psql,sqlite随机函数

* 🔧 VSCode配置修改

* 🔧 VSCode配置修改

* ✨ 添加金币排行

Co-Authored-By: HibiKier <45528451+HibiKier@users.noreply.github.com>

* 📝 修改README

Co-Authored-By: HibiKier <45528451+HibiKier@users.noreply.github.com>

* 🔨 提取GitHub相关操作 (#1609)

* 🔨 提取GitHub相关操作

* 🔨 重构API策略

* ✨ 签到/金币排行限制最大数量 (#1616)

* ✨ 签到/金币排行限制最大数量

* 🐛 修复超级用户id获取问题

* 🐛 修复路径解压与挂载 (#1619)

* 🐛 修复功能少时zhenxun帮助图片排序问题 (#1620)

* 🐛 签到文本适应 (#1622)

* 🐛 好感度排行提供默认值 (#1624)

* 🎈 优先使用github api (#1625)

* ✨ 重构帮助,限制普通用户查询管理插件 (#1626)

* 🐛 修复群权限与插件等级匹配 (#1627)

* ✨ 当管理员尝试ban真寻时将被反杀 (#1628)

* ✨ 群组发言时间检测提供开关配置 (#1630)

* 🐳 chore: 支持自动修改版本号 (#1629)

* 🎈 perf(github_utils): 支持github url下载遍历 (#1632)

* 🎈 perf(github_utils): 支持github url下载遍历

* 🐞 fix(http_utils): 修复一些下载问题

* 🦄 refactor(http_utils): 部分重构

* chore(version): Update version to v0.2.2-e6f17c4

---------

Co-authored-by: AkashiCoin <AkashiCoin@users.noreply.github.com>

* 🧪 test(auto_update): 修复测试用例 (#1633)

* 🐛 修复商店商品为空时报错 (#1634)

* 🐛 修复群权限与插件等级匹配 (#1635)

* ✨ message_build支持AtAll (#1639)

* 🎈 perf: 使用commit号下载插件 (#1641)

* 🎈 perf: 使用commit号下载插件

* chore(version): Update version to v0.2.2-f9c7360

---------

Co-authored-by: AkashiCoin <AkashiCoin@users.noreply.github.com>

* 🐳 chore: 修改运行检查触发路径 (#1642)

* 🐳 chore: 修改运行检查触发路径

* 🐳 chore: 添加tests目录

* ✨ 重构qq群事件处理 (#1643)

* 🐛 签到名称自适应 (#1644)

* 🎨  更新README (#1645)

* 🐛 fix(http_utils): 流式下载Content-Length错误 (#1647)

* 🐛 修复群组中帮助功能状态显示问题 (#1650)

* 🐛 修复群欢迎消息设置 (#1651)

* 🐛 修复webui下载后首次启动错误 (#1652)

* 🐛 修复webui下载后首次启动错误

* chore(version): Update version to v0.2.2-4a8ef85

---------

Co-authored-by: HibiKier <HibiKier@users.noreply.github.com>

* ✨ 移除默认图片文件夹:爬 (#1653)

* ✨ 安装/移除插件提供插件安装/卸载方法用于插件初始化 (#1654)

* ✨ 新增超级用户与管理员帮助模板 (#1655)

* ✨ 新增个人信息命令 (#1657)

* ✨ 修改个人信息菜单名称 (#1658)

* ✨ 新增插件商店api (#1659)

* ✨ 新增插件商店api

* chore(version): Update version to v0.2.2-7e15f20

---------

Co-authored-by: HibiKier <HibiKier@users.noreply.github.com>

* ✨ 将cd,block,count限制复原配置文件 (#1662)

* 🎨 修改README (#1663)

* 🎨 修改版本号 (#1664)

* 🎨 修改requirements (#1665)

---------

Co-authored-by: AkashiCoin <l1040186796@gmail.com>
Co-authored-by: fanyinrumeng <42991257+fanyinrumeng@users.noreply.github.com>
Co-authored-by: AkashiCoin <i@loli.vet>
Co-authored-by: Elaga <1728903318@qq.com>
Co-authored-by: AkashiCoin <AkashiCoin@users.noreply.github.com>
Co-authored-by: HibiKier <HibiKier@users.noreply.github.com>
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants