LmeSzinc / AzurLaneAutoScript

Azur Lane bot (CN/EN/JP/TW) 碧蓝航线脚本 | 无缝委托科研,全自动大世界
https://alas.azurlane.cloud
GNU General Public License v3.0
6.77k stars 800 forks source link

Opt: Add full winapi support. #3934

Open PPPlatelet opened 3 months ago

PPPlatelet commented 3 months ago
PPPlatelet commented 1 month ago

ready for review. @LmeSzinc

LmeSzinc commented 1 month ago
  1. 需要解决这个问题,需要讨论两种方案

    目前 EmulatorNotRunningError 是在 Device 类初始化时处理,在调度器内处理意味着启动模拟器是作为一个调度器任务去运行。你需要决定是作为设备模块的内部异常去处理,还是作为调度器的任务去处理,不能到处塞 workaround https://github.com/LmeSzinc/AzurLaneAutoScript/pull/3867#discussion_r1638776753

  2. 减少设置数量,仅为 WhenTaskQueueEmpty 增加关闭模拟器的选项,模拟器启动就是静默启动,不需要设置
  3. 仅添加实现 无任务时关闭模拟器 和 静默启动模拟器 的代码,无关代码不要全部复制粘贴进来

确定方向再开始写代码

PPPlatelet commented 3 weeks ago
  1. 需要解决这个问题,需要讨论两种方案

    目前 EmulatorNotRunningError 是在 Device 类初始化时处理,在调度器内处理意味着启动模拟器是作为一个调度器任务去运行。你需要决定是作为设备模块的内部异常去处理,还是作为调度器的任务去处理,不能到处塞 workaround https://github.com/LmeSzinc/AzurLaneAutoScript/pull/3867#discussion_r1638776753

  2. 减少设置数量,仅为 WhenTaskQueueEmpty 增加关闭模拟器的选项,模拟器启动就是静默启动,不需要设置
  3. 仅添加实现 无任务时关闭模拟器 和 静默启动模拟器 的代码,无关代码不要全部复制粘贴进来

确定方向再开始写代码

  1. 目前正在实现中,初步的计划是在run loop捕获异常时检查,但尚不清楚模拟器因任何可能的原因崩溃,run loop会捕获到什么异常。有必要将builtins的Exception和Alas自定义的Exception严格区分,所有自定义的异常应当继承自一个AlasBaseException。
  2. 可以接受删除BufferMethod,应当保留ProcessBufferTime,过于频繁的启停只会引起不必要的负担;静默启动应当由用户自行决定,有些用户更喜欢视奸(,有些更喜欢偶尔看一眼运行情况,有些用户更喜欢完全无感运行。
  3. 目前这一次推送并非最终版本,多数代码需要进一步测试,烦请暂时保留。
  4. TODO条目目前还在开发中(新建文件夹),难度较大需要摇人
antecanis8 commented 4 days ago

Send notify是指windows通知吗?如果是不妨试试win11toast库?