功能介绍:撤回体系重构(撤回 · 恢复 · 定位)
撤回体系重构:撤回 · 恢复 · 定位 ↩️♻️📍
这次重构做了什么
以前的 撤回 只能撤最后一笔、只能撤一次、超过 1 小时就撤不了;撤错了没有后悔药;想找"这笔是哪条消息记的"只能在群里往上翻。
现在这几件事是一套体系:记错的账任意一笔都能撤,撤错的都能恢复,找不到消息可以一键定位。
| 想做什么 | 发这个 | 英文 | 谁能用 |
|---|---|---|---|
| 撤回最新一笔(可以连着撤) | 撤回 | undo | 操作人 |
| 撤回指定的一笔 | 回复那条记账消息,发 撤回 | undo | 操作人 |
| 恢复上一次撤回的那笔 | 恢复 | redo | 操作人 |
| 恢复指定的一笔 | 回复那条记账消息,发 恢复 | redo | 操作人 |
| 跳到某笔记账的原消息 | 超级群点账单里的时间;普通群点 📍 记账定位 | 操作人 |
三者是配套的:定位找到那条消息 → 回复它撤回 → 撤错了恢复。
| 对比 | 以前 | 现在 |
|---|---|---|
| 能撤哪笔 | 只有最后一笔 | 任意一笔 |
| 连续撤 | 不能 | 能,一直撤到空 |
| 时间限制 | 1 小时内 | 无(本账单期内) |
| 撤错了 | 只能重新记 | 恢复 原样找回 |
| 找原消息 | 手动翻 | 一键定位 |
一、撤回
撤回最新一笔
直接发 撤回(或 undo),撤掉当前账单里时间最新的那笔。再发一次,撤现在最新的那笔,可以一直撤到账单为空。
机器人回复第一行写明撤了哪笔,下面是最新账单:
✅ 已撤回:张三 14:19:14 600 / 243 = 2.47U
本账单还有 1 笔撤回记录可用 恢复 找回
入款:(2笔)
张三 14:18:16 300 / 243 = 1.23U
张三 14:19:05 100 / 243 = 0.41U
...撤回指定的一笔
- 找到那条记账消息(
+100/下发100,找不到用下面的定位)。 - 回复它,发
撤回。 - 机器人删掉这一笔、重算账单,回复同上。
入款和下发都能撤。
规则
- 群必须处于记账中(已
开始),仅操作人可用。 - 只能撤当前进行中账单里的记录,已
结束的账单撤不了。 - 回复撤回时,回复的必须是发起记账的那条消息本身,回复机器人的账单、回复别的聊天都不认。
- 撤回的是记录本身,账单汇总按剩下的记录重新算,其他记录不动。
二、恢复
恢复上一次撤回
发 恢复(或 redo),把最近一次撤回的那笔原样放回账单。连着撤了 3 笔,就可以连着恢复 3 次,顺序正好倒过来。
♻️ 已恢复:张三 14:19:14 600 / 243 = 2.47U
入款:(3笔)
...恢复指定的一笔
回复当初记账的那条消息(+100),发 恢复,就恢复那一笔,不管它是第几次撤的。
规则
- 恢复回去的记录原位置、原时间、原备注,账单里回到它本来的行,不是变成新的一笔。之后还能再定位、再撤回。
- 恢复用的是这笔记录当时的费率和汇率,中途改过费率也能精确加回去。
- 撤回记录只在本账单期内保留:
结束(含日切自动结束)之后清空,新账单里恢复不了上一期的。 - 撤空以后如果切换了账单模式(币本位 ↔ U本位),之前撤回的记录不能再恢复(算法不同)。
- 每次撤回 / 恢复后,机器人会提示"本账单还有 N 笔撤回记录可用 恢复 找回"。
提示语对照
| 机器人说 | 意思 |
|---|---|
| 本账单没有可恢复的撤回记录 | 这一期没撤过,或已经全部恢复了 |
| 这条消息对应的记录不在撤回记录里 | 回复的消息不是本期撤回过的那笔 |
| 账单模式在撤回之后切换过,这笔记录无法恢复 | 见上面的模式规则 |
| 这笔记录刚刚已经被撤回了 / 已经恢复过了 | 两个人同时操作了同一笔,后一个人的操作没执行,发 +0 看最新账单即可 |
三、定位
你的群是哪一种
机器人按群类型自动判断,不用设置:
- 账单里的时间是蓝色可点的 → 超级群,直接点时间。
- 账单底部第一行多了
📍 记账定位→ 普通群,点按钮进菜单。
超级群:点时间
账单里每一笔的时间都是链接。点 14:19:05,聊天窗口直接滚到当时那条 +100 并高亮,不跳出群、不开网页。
普通群:📍 记账定位 菜单
普通群没有"消息链接"(Telegram 的限制),所以用菜单。整个过程都在同一条账单消息上换按钮,不会多发消息:
账单底部 [📒 完整账单] [🎃 数字格式] [📍 记账定位]
↓ 点 📍 记账定位
[📥 入款] [📤 出款] [✖ 关闭]
↓ 点 📥 入款
[📍14:18:16] [📍14:19:05] [📍14:19:14] ← 和账单顺序一致
[◀ 返回]
↓ 点 📍14:19:05
机器人回一条 📍 张三 14:19:05 100 / 243 = 0.41U ← 引用了那条 +100
↓ 点这条消息顶部的引用块
聊天窗口滚到原来那条 +100- 每个群只保留最新一条 📍 提示:打开菜单或再点别的时间时,上一条自动删掉(超过 48 小时的 Telegram 不让机器人删,会留着)。
- 时间按钮最多 5 个,就是账单里显示的那几笔。
- 只有操作人能点。纯净模式的群没有底部按钮,也就没有这个菜单(超级群的时间链接不受影响)。
什么情况定位不了
- 重构之前记的账:那时候还没记消息编号,没有链接和按钮。
- 不是在群里发消息记的账:API、自动转发、代付进来的,没有原消息可跳。
- 原消息被删了:提示"原记账消息已被删除,无法定位"。
四、常见问题
Q:手滑连按了几次 撤回 怎么办?
A:每次回复第一行都写着撤了哪笔,连发几次 恢复 就一笔笔回来了。
Q:撤回之后别人又记了新账,还能恢复吗?
A:能。恢复只是把那笔放回它原来的位置,和后面新记的互不影响。
Q:我的群时间不是蓝色的,也没有 📍 记账定位?
A:先记一笔新账看看;重构前的旧记录本来就没有。新记的也没有,看看是不是纯净模式。
Q:普通群能不能也做成点时间?
A:做不到,Telegram 不给普通群的消息做链接。升级成超级群会改群 ID,升级前先联系客服,否则群的费率、汇率、操作人、账单会对不上。
Q:结束账单以后发现撤错了?
A:结束时撤回记录已清空,只能在新账单里重新记这一笔。所以建议结束前 +0 复核。
注意事项
- 撤回和恢复都是改账的操作,做完建议
+0复核一遍。 - 定位、指定撤回、指定恢复都靠记账时那条消息的编号,不要删记账消息。