zero-peak / ZeroOmega

Manage and switch between multiple proxies quickly & easily.
GNU General Public License v3.0
1.8k stars 44 forks source link

同步功能可靠性增强 #35

Open Mishasama opened 3 months ago

Mishasama commented 3 months ago

当开启同步后,能否使用原来的浏览器同步功能,把 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 commented 3 months ago

嗯,有想过的.

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

Mishasama commented 3 months ago

啥流程?

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

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

还没有设置 Gist 时

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

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

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

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

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

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

Mishasama commented 2 months ago

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

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

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

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

zero-top commented 1 month ago

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

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

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

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

image

Mishasama commented 1 month ago

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

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

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

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

c0017 commented 1 month ago

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

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

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

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

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

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

zero-top commented 1 week ago

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