mirror of
https://github.com/RockChinQ/QChatGPT.git
synced 2024-11-16 11:42:44 +08:00
31 lines
927 B
Python
31 lines
927 B
Python
|
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)))
|