Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

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

Closed
wants to merge 1 commit into from

Conversation

McElaga
Copy link
Contributor

@McElaga McElaga commented Sep 6, 2024

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

Summary by Sourcery

重构印象级别逻辑以更有效地处理边缘情况,并确保与配置更改的兼容性。提高代码可读性并修复与印象级别计算相关的错误。

错误修复:

  • 修复 get_level_and_next_impression 函数中的逻辑,以正确处理最高印象级别,确保在达到最大级别时进度始终为100%。

增强功能:

  • 提高登录功能的灵活性,以适应 config.py 文件中印象级别配置的变化。
  • 通过重命名变量和优化函数逻辑来增强代码可读性。
Original summary in English

Summary by Sourcery

Refactor the impression level logic to handle edge cases more effectively and ensure compatibility with configuration changes. Improve code readability and fix bugs related to impression level calculations.

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 the config.py file.
  • Enhance code readability by renaming variables and refining function logic.

Copy link
Contributor

sourcery-ai bot commented Sep 6, 2024

审核指南由 Sourcery 提供

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

文件级更改

更改 详情 文件
重构了 get_level_and_next_impression 函数以更好地处理印象级别
  • 重写了函数以更好地整合最小和最大印象级别的逻辑
  • 确保在最高印象级别时,next_impressionimpression 相等
  • 修改了函数签名以返回更准确的类型
  • 简化了确定当前级别和下一个印象阈值的逻辑
zhenxun/builtin_plugins/sign_in/utils.py
修复错误并提高代码可读性
  • 更正了变量名称以保持一致性(例如,将 impression 改为 add_impression
  • 修复了处理用户控制台 UID 为 0 的情况的逻辑
  • 更新了进度计算以使用正确的印象值
  • 移除了硬编码的级别检查,使代码更具动态性
zhenxun/builtin_plugins/sign_in/utils.py
提高了印象级别配置的灵活性
  • 添加了断言以确保印象态度、级别和关系长度之间的一致性
  • 更新了心形图标生成逻辑以使用印象级别的动态长度
  • 移除了硬编码的级别检查和计算
zhenxun/builtin_plugins/sign_in/utils.py

提示
  • 通过在拉取请求中评论 @sourcery-ai review 来触发新的 Sourcery 审核。
  • 通过直接回复审核评论继续与 Sourcery 的讨论。
  • 您可以随时通过访问您的仪表板来更改您的审核设置:
    • 启用或禁用 Sourcery 生成的拉取请求摘要或审核指南;
    • 更改审核语言;
  • 如果您有任何问题或反馈,您可以随时联系我们
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 variable names and bugs, and implementing changes to ensure the sign-in feature remains functional when impression level configurations are modified in the config.py file.

File-Level Changes

Change Details Files
Refactored the get_level_and_next_impression function for better handling of impression levels
  • Rewrote the function to better integrate logic for minimum and maximum impression levels
  • Ensured that next_impression and impression are equal when at the highest impression level
  • Modified the function signature to return more accurate types
  • Simplified the logic for determining the current level and next impression threshold
zhenxun/builtin_plugins/sign_in/utils.py
Fixed bugs and improved code readability
  • Corrected variable names for consistency (e.g., impression to add_impression)
  • Fixed logic for handling the case when user console UID is 0
  • Updated the progress calculation to use the correct impression values
  • Removed hardcoded level checks and made the code more dynamic
zhenxun/builtin_plugins/sign_in/utils.py
Improved flexibility for impression level configurations
  • Added an assertion to ensure consistency between impression attitude, level, and relationship lengths
  • Updated the heart icon generation logic to use the dynamic length of impression levels
  • Removed hardcoded level checks and calculations
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:
    • 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
Collaborator

AkashiCoin commented Sep 6, 2024

请使用dev分支修改,并且保证bot运行检查通过

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.

@McElaga - 我已经审查了你的更改 - 这里有一些反馈:

总体评论

  • 考虑用更优雅的错误处理机制替换配置一致性的断言,例如记录警告或引发自定义异常。这将防止整个插件因配置错误而失败。
这是我在审查期间查看的内容
  • 🟢 一般问题:一切看起来都很好
  • 🟢 安全性:一切看起来都很好
  • 🟡 测试:发现1个问题
  • 🟢 复杂性:一切看起来都很好
  • 🟢 文档:一切看起来都很好

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

Hey @McElaga - I've reviewed your changes - here's some feedback:

Overall Comments:

  • Consider replacing the assertion for configuration consistency with a more graceful error handling mechanism, such as logging a warning or raising a custom exception. This would prevent the entire plugin from failing due to misconfiguration.
Here's what I looked at during the review
  • 🟢 General issues: all looks good
  • 🟢 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.

@@ -25,6 +25,7 @@
lik2level,
lik2relation,
)
assert len(level2attitude)==len(lik2level)==len(lik2relation), '好感度态度、等级、关系长度不匹配!'
Copy link
Contributor

Choose a reason for hiding this comment

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

suggestion (testing): 考虑增强断言错误信息,提供具体的长度信息

虽然这个断言对于确保一致性是好的,但如果错误信息包含每个列表的实际长度,将更有助于调试。这样,如果断言失败,将立即清楚哪些长度不匹配。

Suggested change
assert len(level2attitude)==len(lik2level)==len(lik2relation), '好感度态度、等级、关系长度不匹配!'
assert len(level2attitude) == len(lik2level) == len(lik2relation), (
f'好感度态度、等级、关系长度不匹配!'
f'Lengths: attitude={len(level2attitude)}, '
f'level={len(lik2level)}, relation={len(lik2relation)}'
)
Original comment in English

suggestion (testing): Consider enhancing the assertion error message with specific length information

While this assertion is good for ensuring consistency, it would be more helpful for debugging if the error message included the actual lengths of each list. This way, if the assertion fails, it would be immediately clear which lengths don't match.

Suggested change
assert len(level2attitude)==len(lik2level)==len(lik2relation), '好感度态度、等级、关系长度不匹配!'
assert len(level2attitude) == len(lik2level) == len(lik2relation), (
f'好感度态度、等级、关系长度不匹配!'
f'Lengths: attitude={len(level2attitude)}, '
f'level={len(lik2level)}, relation={len(lik2relation)}'
)

@McElaga McElaga closed this Sep 6, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants