Skip to content

feat: add a fixed-interval button for profiles updating #670

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

Merged
merged 1 commit into from
Apr 14, 2025

Conversation

YsielX
Copy link
Contributor

@YsielX YsielX commented Apr 13, 2025

关联 Issue: #525

描述:

此 Pull Request 旨在解决一个许多用户遇到的问题:在手动修改配置文件的更新间隔(interval)并保存后,当配置文件自动更新时,该间隔时间会被订阅响应头中的 profile-update-interval 值覆盖,导致用户设置的值丢失,回到了默认或提供者指定的值。这对于希望强制使用自定义更新频率的用户来说很不方便。

解决方案:

为了解决这个问题,本次提交引入了一个新的配置项 allowFixedInterval (布尔值) 到 IProfileItem 接口和相应的存储逻辑中。

  1. 后端 (src/main/config/profile.ts):

    • 在创建或更新配置文件的逻辑中,增加了一个判断。只有当 allowFixedIntervalfalse (或未设置,默认为 false) 时,才会使用从订阅头 profile-update-interval 获取的值来更新配置文件的 interval
    • 如果 allowFixedInterval 设置为 true,则会保留用户之前设置的 interval 值,忽略订阅头中的间隔建议。
  2. 前端 (src/renderer/src/components/profiles/edit-info-modal.tsx):

    • 在配置编辑信息模态框中,新增了一个名为 “固定更新间隔” (“Fixed Update Interval”) 的开关 (Switch) 组件。
    • 用户可以通过这个开关来启用或禁用 allowFixedInterval 标志。
  3. 类型定义 (src/shared/types.d.ts):

    • 更新了 IProfileItem 接口,添加了可选的 allowFixedInterval?: boolean 字段。
  4. 本地化 (src/renderer/src/locales/):

    • 为新增的 “固定更新间隔” 选项添加了相应的翻译字符串,包括简体中文 (zh-CN)、英文 (en-US)、俄文 (ru-RU) 和波斯文 (fa-IR)。

测试:

我已经对这些更改进行了本地测试:

  • 创建新配置文件,手动设置间隔,启用“固定更新间隔”,保存后重新打开编辑,确认间隔值被保留。
  • 对已有配置文件,编辑并启用“固定更新间隔”,保存并手动触发更新(如果可能),确认间隔值未被订阅头信息覆盖。
  • 确认当“固定更新间隔”未启用时,行为与之前一致(即间隔会被订阅头信息更新)。
  • 测试了不同语言下的 UI 显示。

目前看来功能运行正常,解决了最初描述的问题,并且没有引入新的问题。

请求:

这项改动解决了用户反馈较多的一个痛点,提高了用户自定义配置的灵活性。希望您能审阅此 PR,如果没什么问题,请考虑合并。感谢!

@ezequielnick
Copy link
Member

thanks!

@ezequielnick ezequielnick merged commit a2faf0f into mihomo-party-org:master Apr 14, 2025
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