diff options
author | SakuraMemory <[email protected]> | 2022-04-05 16:18:34 +0800 |
---|---|---|
committer | GitHub <[email protected]> | 2022-04-05 16:18:34 +0800 |
commit | ceb7b3a5b11d3978c46185af1cf982a2eb3ca961 (patch) | |
tree | 0e509c76a575db8a4ab485d503ea7bf3e73b5383 /ATRI/utils | |
parent | a2f3925fc63d12ad8daefa6ba30b18bc81693c99 (diff) | |
parent | 93e71022a5987ca898ca42a84e10cf3a1ddacd0a (diff) | |
download | ATRI-ceb7b3a5b11d3978c46185af1cf982a2eb3ca961.tar.gz ATRI-ceb7b3a5b11d3978c46185af1cf982a2eb3ca961.tar.bz2 ATRI-ceb7b3a5b11d3978c46185af1cf982a2eb3ca961.zip |
Merge pull request #5 from Kyomotoi/main
sync main
Diffstat (limited to 'ATRI/utils')
-rw-r--r-- | ATRI/utils/__init__.py | 7 | ||||
-rw-r--r-- | ATRI/utils/apscheduler.py | 23 | ||||
-rw-r--r-- | ATRI/utils/check_update.py | 54 |
3 files changed, 57 insertions, 27 deletions
diff --git a/ATRI/utils/__init__.py b/ATRI/utils/__init__.py index 565de97..29c9f05 100644 --- a/ATRI/utils/__init__.py +++ b/ATRI/utils/__init__.py @@ -5,18 +5,15 @@ import yaml import aiofiles import time from pathlib import Path -from aiohttp import FormData from datetime import datetime from PIL import Image, ImageFile from aiofiles.threadpool.text import AsyncTextIOWrapper -from . import request - def timestamp2datetimestr(timestamp: int) -> str: format = "%Y-%m-%d %H:%M:%S" - timestamp = time.localtime(timestamp) - dt = time.strftime(format, timestamp) + tt = time.localtime(timestamp) + dt = time.strftime(format, tt) return dt diff --git a/ATRI/utils/apscheduler.py b/ATRI/utils/apscheduler.py index 186ff8e..e1959c1 100644 --- a/ATRI/utils/apscheduler.py +++ b/ATRI/utils/apscheduler.py @@ -1,34 +1,13 @@ -""" -Fork from: https://github.com/nonebot/plugin-apscheduler -""" import logging from apscheduler.schedulers.asyncio import AsyncIOScheduler -from nonebot import get_driver -from nonebot.log import logger, LoguruHandler +from nonebot.log import LoguruHandler -apscheduler_autostart: bool = True -# apscheduler_config: dict = {"apscheduler.timezone": "Asia/Shanghai"} - - -driver = get_driver() scheduler = AsyncIOScheduler(timezone="Asia/Shanghai") -async def _start_scheduler(): - if not scheduler.running: - # scheduler.configure(apscheduler_config) - scheduler.start() - logger.info("Scheduler Started.") - - -if apscheduler_autostart: - driver.on_startup(_start_scheduler) - aps_logger = logging.getLogger("apscheduler") aps_logger.setLevel(logging.DEBUG) aps_logger.handlers.clear() aps_logger.addHandler(LoguruHandler()) - -from apscheduler.triggers.date import DateTrigger diff --git a/ATRI/utils/check_update.py b/ATRI/utils/check_update.py new file mode 100644 index 0000000..a8575ab --- /dev/null +++ b/ATRI/utils/check_update.py @@ -0,0 +1,54 @@ +from ATRI.exceptions import RequestError + +from . import request + + +REPO_COMMITS_URL = "https://api.github.com/repos/Kyomotoi/ATRI/commits" +REPO_RELEASE_URL = "https://api.github.com/repos/Kyomotoi/ATRI/releases" + + +class CheckUpdate: + @staticmethod + async def _get_commits_info() -> dict: + req = await request.get(REPO_COMMITS_URL) + return req.json() + + @staticmethod + async def _get_release_info() -> dict: + req = await request.get(REPO_RELEASE_URL) + return req.json() + + @classmethod + async def show_latest_commit_info(cls) -> str: + try: + data = await cls._get_commits_info() + except RequestError: + raise RequestError("Getting commit info timeout...") + + try: + commit_data: dict = data[0] + except Exception: + raise Exception("GitHub has been error!!!") + + c_info = commit_data["commit"] + c_msg = c_info["message"] + c_sha = commit_data["sha"][0:5] + c_time = c_info["author"]["date"] + + return f"Latest commit {c_msg} | sha: {c_sha} | time: {c_time}" + + @classmethod + async def show_latest_version(cls) -> tuple: + try: + data = await cls._get_release_info() + except RequestError: + raise RequestError("Getting release list timeout...") + + try: + release_data: dict = data[0] + except Exception: + raise Exception("GitHub has been error!!!") + + l_v = release_data["tag_name"] + l_v_t = release_data["published_at"] + return l_v, l_v_t |