不在的时候
它会有不在的时候:睡着、出门、闹情绪躲着、开着免打扰、断网。回来以后,它会先看一眼这段时间里冲着它来的话——就像人睡醒、到家以后先看手机。
几种不在
不在的时候
冲着它来的话照样收下、存着。
断网的那一段,它自己记下从几点到几点:联网以后,这是一个真实的、没回消息的理由。
回来以后
醒了、到家了、缓过来了、联网了,它先回头看一眼这段时间里冲着它来的话:
- 还需要回的就回;
- 事情已经过去了的,也可能就不回了;
- 要不要提一句「刚才不在」、怎么说,由它自己决定。
断线以后补看
Discord 重新连上、QQ 重新连上、电脑睡醒以后,它会把断线那段时间的消息拉回来补看一遍,不会因为断了一会儿就漏掉。第一次进一个白名单里的 QQ 群,也先看一眼最近的聊天,再开口。
对应的代码
- 不在的那几段、回来以后看什么:
src/aeria/availability.py(只放纯逻辑:记下漏了什么、断网的时间段、给模型的事实)。 - 什么时候回头看、回不回:
src/aeria/bot.py;Discord 断线补看:_recover_missed_after_reconnect(RECOVER_LOOKBACK= 两天,最多 20 个频道、每个 50 条);QQ 那边:src/aeria/platform_bridge.py。 - 测试:
tests/test_availability.py。
没做到的
- 补看有上限:Discord 上只补最近两天聊过的频道(最多二十个),每个频道最多五十条;断得太久,最早的那一部分就补不回来了。
- 它回来看的是冲着它来的话;不在的时候群里聊了什么大事、但没人叫它,它不会特意去翻。