HibiKier / zhenxun_bot

基于 Nonebot2 开发,非常可爱的绪山真寻bot
GNU Affero General Public License v3.0
3.36k stars 605 forks source link

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

Closed McElaga closed 2 months ago

McElaga commented 2 months ago
  1. 重写get_level_and_next_impression函数,更好地整合了好感度等级最低和最高时的逻辑,并且在好感度等级最高时返回的next_impressionimpression相等,与后续判断升级进度相契合(好感度等级最高时进度始终为100%);
  2. 修复部分bug、变量名,提高函数可读性;
  3. 实现在config.py文件更改好感度等级相关配置时,签到功能仍然可用。

Summary by Sourcery

重构登录逻辑以修复与印象等级相关的错误,并提高代码的灵活性和可读性。确保系统能够处理印象等级的配置更改而不破坏功能。

错误修复:

增强功能:

Original summary in English ## Summary by Sourcery Refactor the sign-in logic to fix bugs related to impression levels and improve code flexibility and readability. Ensure the system can handle configuration changes in impression levels without breaking functionality. Bug Fixes: - Fix the logic in the `get_level_and_next_impression` function to correctly handle the highest impression level, ensuring the progress is always 100% when the maximum level is reached. Enhancements: - Improve the flexibility of the sign-in feature to adapt to changes in impression level configurations in `config.py`. - Enhance code readability by renaming variables and refining function logic.
sourcery-ai[bot] commented 2 months ago

审核指南由 Sourcery 提供

此拉取请求重构了登录逻辑,以修复错误并使代码更灵活,以适应登录印象级别配置。主要更改包括重写 get_level_and_next_impression 函数、修复错误、改进变量名称,并确保在 config.py 文件中修改印象级别配置时,登录功能仍然可用。

文件级更改

更改 详情 文件
重写 get_level_and_next_impression 函数
  • 改进对最小和最大印象级别的处理
  • 确保 next_impression 等于最大级别的印象
  • 简化逻辑并提高可读性
zhenxun/builtin_plugins/sign_in/utils.py
修复错误并改进变量命名
  • 删除对级别 9 的不必要调整
  • 更新变量名称以提高清晰度(例如,将 impression 改为 add_impression)
  • 修复比率和处理变量的计算
zhenxun/builtin_plugins/sign_in/utils.py
增强印象级别配置的灵活性
  • 添加断言以检查级别相关配置的匹配长度
  • 更新心形图标生成以使用基于 lik2level 的动态长度
  • 修改逻辑以适应可配置的印象级别
zhenxun/builtin_plugins/sign_in/utils.py
改进错误处理和边缘情况
  • 处理 user_console.uid 为 0 的情况
  • 删除对 next_impression == 0 的不必要检查
zhenxun/builtin_plugins/sign_in/utils.py

提示 - 通过在拉取请求中评论 `@sourcery-ai review` 来触发新的 Sourcery 审核。 - 通过直接回复审核评论继续与 Sourcery 的讨论。 - 您可以随时通过访问您的[仪表板](https://app.sourcery.ai)来更改审核设置: - 启用或禁用 Sourcery 生成的拉取请求摘要或审核指南; - 更改审核语言; - 如果您有任何问题或反馈,您可以随时[联系我们](mailto:support@sourcery.ai)。
Original review guide in English ## Reviewer's Guide by Sourcery This pull request refactors the sign-in logic to fix bugs and make the code more flexible to accommodate sign-in impression level configurations. The main changes include rewriting the `get_level_and_next_impression` function, fixing bugs, improving variable names, and ensuring the sign-in functionality remains usable when impression level configurations are modified in the `config.py` file. ### File-Level Changes | Change | Details | Files | | ------ | ------- | ----- | | Rewrite get_level_and_next_impression function |
  • Improve handling of minimum and maximum impression levels
  • Ensure next_impression equals impression at max level
  • Simplify logic and improve readability
| `zhenxun/builtin_plugins/sign_in/utils.py` | | Fix bugs and improve variable naming |
  • Remove unnecessary level adjustment for level 9
  • Update variable names for clarity (e.g., impression to add_impression)
  • Fix calculation of ratio and process variables
| `zhenxun/builtin_plugins/sign_in/utils.py` | | Enhance flexibility for impression level configurations |
  • Add assertion to check matching lengths of level-related configurations
  • Update heart icon generation to use dynamic length based on lik2level
  • Modify logic to work with configurable impression levels
| `zhenxun/builtin_plugins/sign_in/utils.py` | | Improve error handling and edge cases |
  • Handle case when user_console.uid is 0
  • Remove unnecessary check for next_impression == 0
| `zhenxun/builtin_plugins/sign_in/utils.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](https://app.sourcery.ai): - Enable or disable the Sourcery-generated pull request summary or reviewer's guide; - Change the review language; - You can always [contact us](mailto:support@sourcery.ai) if you have any questions or feedback.