From b5924bb34f0e9d736cb94aa47446d080b4ff4ddc Mon Sep 17 00:00:00 2001 From: RockChinQ <1010553892@qq.com> Date: Sun, 28 Jan 2024 18:27:48 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E6=B7=BB=E5=8A=A0=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E5=91=BD=E4=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/command/cmdmgr.py | 2 +- pkg/command/operators/update.py | 31 +++++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 pkg/command/operators/update.py diff --git a/pkg/command/cmdmgr.py b/pkg/command/cmdmgr.py index cff5969c..73e14584 100644 --- a/pkg/command/cmdmgr.py +++ b/pkg/command/cmdmgr.py @@ -7,7 +7,7 @@ from ..openai import entities as llm_entities from ..openai.session import entities as session_entities from . import entities, operator, errors -from .operators import func, plugin, default, reset, list as list_cmd, last, next, delc, resend, prompt, cfg, cmd, help, version +from .operators import func, plugin, default, reset, list as list_cmd, last, next, delc, resend, prompt, cfg, cmd, help, version, update class CommandManager: diff --git a/pkg/command/operators/update.py b/pkg/command/operators/update.py new file mode 100644 index 00000000..db493b6a --- /dev/null +++ b/pkg/command/operators/update.py @@ -0,0 +1,31 @@ +from __future__ import annotations + +import typing +import traceback + +from .. import operator, entities, cmdmgr, errors +from ...utils import updater + + +@operator.operator_class( + name="update", + help="更新程序", + usage='!update', + privilege=2 +) +class UpdateCommand(operator.CommandOperator): + + async def execute( + self, + context: entities.ExecuteContext + ) -> typing.AsyncGenerator[entities.CommandReturn, None]: + + try: + yield entities.CommandReturn(text="正在进行更新...") + if updater.update_all(): + yield entities.CommandReturn(text="更新完成,请重启程序以应用更新") + else: + yield entities.CommandReturn(text="当前已是最新版本") + except Exception as e: + traceback.print_exc() + yield entities.CommandReturn(error=errors.CommandError("更新失败: "+str(e))) \ No newline at end of file