Ljzd-PRO / nonebot-plugin-mystool

QQ聊天、频道机器人插件 | 米游社工具-每日米游币任务、游戏签到、商品兑换、免抓包登录、原神崩铁便笺提醒
https://pypi.org/project/nonebot-plugin-mystool
MIT License
416 stars 52 forks source link

添加兑换计划后的兑换时间错误 #330

Open qianxuu opened 4 months ago

qianxuu commented 4 months ago

如下图,mt商品命令显示的兑换时间为 8 号,添加后提示下次兑换时间为 15 号,mt兑换命令查询的又是 8 号 实际查看配置文件的 next_time 时间戳也是 15 号

ebb65e23fba730c8f089e570178bdfb7

QQ_1720162083583

Ljzd-PRO commented 3 months ago

下次兑换时间不一定是 next_time,也可能是商品详情的 sale_start_time

qianxuu commented 3 months ago

下次兑换时间不一定是 next_time,也可能是商品详情的 sale_start_time

我降级到 2.5.0 后测试,添加兑换计划后 sale_start_timenull,经过反复尝试,发现使用 mt兑换.+ 命令添加兑换计划后重启 bot,再使用 mt兑换.- 命令,并不会删除兑换计划,而是刷新了兑换计划中的商品信息,如 sale_start_time 会出现,此时继续使用 mt兑换.- 命令会报错 AttributeError: 'AsyncIOScheduler' object has no attribute 'JobLookupError',重启 bot 后才能正常删除

下面是刚添加计划后的 json

"good": {
  "type": 1,
  "next_time": 1721818800,
  "status": "not_in_sell",
  "sale_start_time": null,
  "time_by_detail": null,
  "next_num": 10,
  "account_exchange_num": 0,
  "account_cycle_limit": 1,
  "account_cycle_type": "forever",
  "game_biz": null,
  "game": null,
  "unlimit": false,
  "name": null,
  "goods_name": "\u3010\u539f\u795e\u3011\u8e66\u8e66\u70b8\u5f39\u9a6c\u514b\u676f",
  "goods_id": "2024070911143",
  "price": 20500,
  "icon": "https://bbs-static.miyoushe.com/static/2024/07/09/409ab9ae1349e4988020e34c2dbccd42_1234057808800182538.JPG"
},
Do1e commented 2 days ago

不清楚是ExchangePlan的什么行为触发了这里的plan in user.exchange_plans为False https://github.com/Ljzd-PRO/nonebot-plugin-mystool/blob/b6eb89f4c880f8b208336c3bc2c59096edb5c111/src/nonebot_plugin_mystool/command/exchange.py#L481

一个临时的解决方案是在list下进行删除

temp = list(user.exchange_plans)
temp.remove(plan)
user.exchange_plans = set(temp)