mirror of
https://github.com/langbot-app/LangBot.git
synced 2026-06-02 03:55:55 +00:00
* style: remove necessary imports * style: fix F841 * style: fix F401 * style: fix F811 * style: fix E402 * style: fix E721 * style: fix E722 * style: fix E722 * style: fix F541 * style: ruff format * style: all passed * style: add ruff in deps * style: more ignores in ruff.toml * style: add pre-commit
31 lines
1.1 KiB
Python
31 lines
1.1 KiB
Python
from __future__ import annotations
|
|
|
|
import typing
|
|
|
|
from .. import operator, entities, errors
|
|
|
|
|
|
@operator.operator_class(
|
|
name='resend', help='重发当前会话的最后一条消息', usage='!resend'
|
|
)
|
|
class ResendOperator(operator.CommandOperator):
|
|
async def execute(
|
|
self, context: entities.ExecuteContext
|
|
) -> typing.AsyncGenerator[entities.CommandReturn, None]:
|
|
# 回滚到最后一条用户message前
|
|
if context.session.using_conversation is None:
|
|
yield entities.CommandReturn(error=errors.CommandError('当前没有对话'))
|
|
else:
|
|
conv_msg = context.session.using_conversation.messages
|
|
|
|
# 倒序一直删到最后一条用户message
|
|
while len(conv_msg) > 0 and conv_msg[-1].role != 'user':
|
|
conv_msg.pop()
|
|
|
|
if len(conv_msg) > 0:
|
|
# 删除最后一条用户message
|
|
conv_msg.pop()
|
|
|
|
# 不重发了,提示用户已删除就行了
|
|
yield entities.CommandReturn(text='已删除最后一次请求记录')
|