nonebot_plugin_novelai/version.py

51 lines
1.9 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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()