51 lines
1.9 KiB
Python
51 lines
1.9 KiB
Python
|
import time
|
|||
|
from importlib.metadata import version
|
|||
|
|
|||
|
from nonebot.log import logger
|
|||
|
|
|||
|
from .utils import check_last_version, sendtosuperuser, compare_version
|
|||
|
class Version():
|
|||
|
version: str # 当前版本
|
|||
|
lastcheck: float = 0 # 上次检查时间
|
|||
|
ispushed: bool = True # 是否已经推送
|
|||
|
latest: str = "0.0.0" # 最新版本
|
|||
|
package = "nonebot-plugin-novelai"
|
|||
|
url = "https://sena-nana.github.io/MutsukiDocs/update/novelai/"
|
|||
|
|
|||
|
def __init__(self):
|
|||
|
# 初始化当前版本
|
|||
|
try:
|
|||
|
self.version = version(self.package)
|
|||
|
except:
|
|||
|
self.version = "0.5.7"
|
|||
|
|
|||
|
async def check_update(self):
|
|||
|
"""检查更新,并推送"""
|
|||
|
# 每日检查
|
|||
|
if time.time() - self.lastcheck > 80000:
|
|||
|
update = await check_last_version(self.package)
|
|||
|
# 判断是否重复检查
|
|||
|
if await compare_version(self.latest, update):
|
|||
|
self.latest = update
|
|||
|
# 判断是否是新版本
|
|||
|
if await compare_version(self.version, self.latest):
|
|||
|
logger.info(self.push_txt())
|
|||
|
self.ispushed = False
|
|||
|
else:
|
|||
|
logger.info(f"novelai插件检查版本完成,当前版本{self.version},最新版本{self.latest}")
|
|||
|
else:
|
|||
|
logger.info(f"novelai插件检查版本完成,当前版本{self.version},最新版本{self.latest}")
|
|||
|
self.lastcheck = time.time()
|
|||
|
# 如果没有推送,则启动推送流程
|
|||
|
if not self.ispushed:
|
|||
|
await sendtosuperuser(self.push_txt())
|
|||
|
self.ispushed = True
|
|||
|
|
|||
|
def push_txt(self):
|
|||
|
# 获取推送文本
|
|||
|
logger.debug(self.__dict__)
|
|||
|
return f"novelai插件检测到新版本{self.latest},当前版本{self.version},请使用pip install --upgrade {self.package}命令升级,更新日志:{self.url}"
|
|||
|
|
|||
|
|
|||
|
version = Version()
|