From 9ebeff70994191abe6052e53bb58541f08917f5a Mon Sep 17 00:00:00 2001 From: Kyomotoi Date: Sun, 20 Mar 2022 09:06:49 +0800 Subject: =?UTF-8?q?=E2=9C=A8=20=E6=B7=BB=E5=8A=A0=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E6=A3=80=E6=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ATRI/utils/check_update.py | 58 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 ATRI/utils/check_update.py (limited to 'ATRI/utils/check_update.py') diff --git a/ATRI/utils/check_update.py b/ATRI/utils/check_update.py new file mode 100644 index 0000000..b2f8b53 --- /dev/null +++ b/ATRI/utils/check_update.py @@ -0,0 +1,58 @@ +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 + + + -- cgit v1.2.3 From cc5c0fab220776508eab9ac6831f8efa1010d083 Mon Sep 17 00:00:00 2001 From: Lint Action Date: Sun, 20 Mar 2022 01:09:34 +0000 Subject: =?UTF-8?q?:rotating=5Flight:=20=E8=87=AA=E5=8A=A8=E8=BF=9B?= =?UTF-8?q?=E8=A1=8C=E4=BB=A3=E7=A0=81=E6=A0=BC=E5=BC=8F=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ATRI/utils/check_update.py | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) (limited to 'ATRI/utils/check_update.py') diff --git a/ATRI/utils/check_update.py b/ATRI/utils/check_update.py index b2f8b53..a8575ab 100644 --- a/ATRI/utils/check_update.py +++ b/ATRI/utils/check_update.py @@ -8,12 +8,11 @@ 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) @@ -25,7 +24,7 @@ class CheckUpdate: data = await cls._get_commits_info() except RequestError: raise RequestError("Getting commit info timeout...") - + try: commit_data: dict = data[0] except Exception: @@ -44,15 +43,12 @@ class CheckUpdate: 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 - - - -- cgit v1.2.3