summaryrefslogtreecommitdiff
path: root/ATRI/utils
diff options
context:
space:
mode:
authorSakuraMemory <[email protected]>2022-04-05 16:18:34 +0800
committerGitHub <[email protected]>2022-04-05 16:18:34 +0800
commitceb7b3a5b11d3978c46185af1cf982a2eb3ca961 (patch)
tree0e509c76a575db8a4ab485d503ea7bf3e73b5383 /ATRI/utils
parenta2f3925fc63d12ad8daefa6ba30b18bc81693c99 (diff)
parent93e71022a5987ca898ca42a84e10cf3a1ddacd0a (diff)
downloadATRI-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__.py7
-rw-r--r--ATRI/utils/apscheduler.py23
-rw-r--r--ATRI/utils/check_update.py54
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