Skip to content

Choose a tag to compare

@TonyV2Intl TonyV2Intl released this 04 May 18:03
4485ee3
  1. Openlist支持:由于123云盘API不再对非会员用户开放,于是移除了对123云盘API的支持,转而改用alist3库对接Openlist(一个著名的文件列表程序,支持50+种存储的挂载);同时将上传操作改为异步操作,在独立线程中运行,避免阻塞主线程,支持配置最大重试次数和重试等待时间
  2. 超时检测机制:实际测试中发现,在Windows7上以开机自启方式运行新版程序(6.0测试版)时,出现了运行一段时间后主线程死锁的问题,且每次开机都能稳定复现,如果不是在开机自启时运行的会话则不会出现死锁,且5.0版程序未发生过此类问题;针对该问题,使用 @timeout 装饰器实现了超时检测功能,在独立线程中针对四个备份操作函数(PPT、Word、WPS、文件夹精确备份)的执行时间计时,如果超过阈值将强制结束当前程序并重启,支持通过配置文件自定义超时时间
  3. MD5校验机制:原先通过指定max_skipping_time配置项来判断重复出现的文件是否需要备份,不够智能;现在会自动计算同名文件的MD5值并进行比较,判断文件是否变化,只有文件变化才会备份,否则直接跳过
  4. 图标处理:使用Base64编码直接将图标数据嵌入到代码中,摆脱对外部图标文件的依赖,避免打包为.exe时出现的即使指明包含图标文件却仍然需要手动将图标放在程序同级目录下的问题
  5. 日志系统改进:日志文件重命名为OBUlatest.logOBUprevious.log,增加了默认开启的日志归档选项,保留前一次会话的日志便于Debug,而不是像5.0版本一样直接覆盖;增加了source参数来区分日志来源(是来自主程序还是Openlist的备份操作);新增global_exception_handler()函数,捕获程序中所有未自动处理的异常,并写入日志文件
  6. 只读文件处理:新增remove_readonly()函数,备份前移除目标文件的只读属性
  7. 全功能主程序(6.0版本)可通过修改hide_tray_icon配置项来决定是否显示托盘图标
  8. 优化导入语句顺序,将原先分散在文件各处的导入语句统一移到文件开头
  9. 全部使用Github Actions的Windows环境来进行Nuitka的.exe编译,使用MSVC14.0编译器以兼容Windows7

完整更改请见Release5.0-Stable...Release6.0