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

同步功能可靠性增强 #35

Open
Mishasama opened this issue Sep 1, 2024 · 8 comments
Open

同步功能可靠性增强 #35

Mishasama opened this issue Sep 1, 2024 · 8 comments
Labels
enhancement New feature or request

Comments

@Mishasama
Copy link

当开启同步后,能否使用原来的浏览器同步功能,把 Gist 的两项信息进行备份?
这样做就能在重装、浏览器重置后方便的自动重新同步,不然还得进行重新生成 token 等操作,比较麻烦。
浏览器同步部分仅需把扩展设置部分保留即可,这样就不会超空间限制了。

ZeroOmega 3.3.11
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36

@zero-top zero-top added the enhancement New feature or request label Sep 1, 2024
@zero-top
Copy link
Member

zero-top commented Sep 1, 2024

嗯,有想过的.

不过还没具体想好怎么个流程,等新的 Gist 同步稳定运行一段时间,没有更多 bug 被提交的话,就应该会考虑进来.

@Mishasama
Copy link
Author

啥流程?

刚下载好扩展后的初始化步骤

  1. 检查浏览器账号是否正在同步
  2. 是:等待完成;否:下一步
  3. 检查是否存在同步数据
  4. 是:读取设置;否:完成初始化(结束流程)
  5. 从 Gist 下载规则列表并导入
  6. 完成初始化(结束)

还没有设置 Gist 时

  1. 用户设置好 Gist 参数,点击开始同步
  2. 生成两个json:A. 插件配置;B. 规则列表
  3. 把 A 丢给浏览器同步
  4. 把 B 上传到 Gist
  5. 完成同步(显示同步状态信息)

@zero-top
Copy link
Member

浏览器自己的同步,只提供了数据是否发生变化的事件,没有提供更多细节.他的同步时间也不知道什么时候触发,由于 chrome 插件很多,需要同步的队列很长,可能你登录了半天,才会轮到你的插件才开始同步配置.

用户退出了 chrome 帐号,用其他帐号再登录,好像也没有相关的事件.

太多不可控的变量,所以不想做得太自动化, 想简单点.

目前的思路就是用户点击 开启同步 按钮时, 如果认证通过,自动把 gist id 和 token, 保存到 浏览器同步里,下次用户再进到 导入导出 页面,如果发现 gistid 和 gist token 没有值,就检测下浏览器同步里是否有相关的值,如果有就自动填充上去.至于是否开启同步,还是需要用户自己点击 开启同步 这个按钮.

其实就是把浏览器同步的 gist id 和 token, 做成类似保存密码,自动填充的功能.

@Mishasama
Copy link
Author

还是需要用户自己点击 开启同步 这个按钮.

这个设计与浏览器同步的初衷相违背。
这个功能的目的就是用户登入账号后就自动下载扩展,并恢复所有已同步的设置。

可以说是全自动的,只要有同步的设置,用户就无须干预。

正如你说的,只有一个数据是否变化的事件。如果要用户自行操作,那用户应该在什么时候操作就成为不可预见的因素。
关于这个问题,也许可以简单地添加一个轮询动作:在没有开启同步前,扩展首次安装初始化后,与每隔5分钟检查一次即可。也可以添加一个禁用同步的按钮来关闭轮询动作。

@zero-top
Copy link
Member

zero-top commented Oct 5, 2024

更新到 3.3.14 ,在开启同步按钮上面,添加了个选项 Enhance your Gist sync experience with built-in browser sync. 想要这个功能,需要先把其中一台浏览器上现有的同步禁用,再启用.

打开这个选项后,增强了下面几项功能.

  1. 用户登入账号后就自动下载扩展,并恢复所有已同步的设置。
  2. 情景模式等配置项有变化时,会立即同步到其他浏览器下.(没有打开这个功能的话,应用只会每隔 5 分钟扫描 Gist 的最后提交时间来判断)

注: 需要用户在同一品牌浏览器同一用户下的不同系统里才能实现(比如 chrome 下的同一个 google 帐号)

image

@Mishasama
Copy link
Author

打开这个选项后,增强了下面几项功能.

  1. 用户登入账号后就自动下载扩展,并恢复所有已同步的设置。
  2. 情景模式等配置项有变化时,会立即同步到其他浏览器下.(没有打开这个功能的话,应用只会每隔 5 分钟扫描 Gist 的最后提交时间来判断)

注: 需要用户在同一品牌浏览器同一用户下的不同系统里才能实现(比如 chrome 下的同一个 google 帐号)

建议把这段话加到页面中作为功能提示image
如果嫌版面太大碍事,可以作为工具提示(tooltip),鼠标指向感叹号再显示。

@c0017
Copy link

c0017 commented Oct 15, 2024

更新到 3.3.14 ,在开启同步按钮上面,添加了个选项 Enhance your Gist sync experience with built-in browser sync. 想要这个功能,需要先把其中一台浏览器上现有的同步禁用,再启用.

打开这个选项后,增强了下面几项功能.

1. 用户登入账号后就自动下载扩展,并恢复所有已同步的设置。

2. 情景模式等配置项有变化时,会立即同步到其他浏览器下.(没有打开这个功能的话,应用只会每隔 5 分钟扫描 Gist 的最后提交时间来判断)

注: 需要用户在同一品牌浏览器同一用户下的不同系统里才能实现(比如 chrome 下的同一个 google 帐号)

请问一下这个选项对firefox浏览器是否有效果?

@zero-top
Copy link
Member

@c0017 应该是有效的, 两台不同的电脑上, firefox 里相同的用户登录后,就会自动同步.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants