From b08c934c7818d338d054e9c849593c87859cbf88 Mon Sep 17 00:00:00 2001 From: snowy Date: Sat, 10 Aug 2024 23:34:34 +0800 Subject: [PATCH] =?UTF-8?q?:bug:=20fix=20=E5=A4=9A=E7=BA=BF=E7=A8=8B?= =?UTF-8?q?=E5=8D=A0=E7=94=A8=E6=95=B0=E6=8D=AE=E5=BA=93=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- liteyuki/plugins/register_service.py | 55 ++++++++++++++++++++++++++++ main.py | 2 +- 2 files changed, 56 insertions(+), 1 deletion(-) create mode 100644 liteyuki/plugins/register_service.py diff --git a/liteyuki/plugins/register_service.py b/liteyuki/plugins/register_service.py new file mode 100644 index 00000000..f4f1b15b --- /dev/null +++ b/liteyuki/plugins/register_service.py @@ -0,0 +1,55 @@ +# -*- coding: utf-8 -*- +""" +Copyright (C) 2020-2024 LiteyukiStudio. All Rights Reserved + +@Time : 2024/8/10 下午11:25 +@Author : snowykami +@Email : snowykami@outlook.com +@File : register_service.py +@Software: PyCharm +""" +import json +import platform + +import requests +from git import Repo +from liteyuki.plugin import PluginMetadata +from liteyuki import get_bot, logger + +__plugin_meta__ = PluginMetadata( + name="注册服务", +) + +liteyuki = get_bot() +commit_hash = Repo(".").head.commit.hexsha + + +def register_bot(): + url = "https://api.liteyuki.icu/register" + data = { + "name" : "LiteyukiBot", + "version" : "RollingUpdate", + "hash" : commit_hash, + "version_i": 0, + "python" : f"{platform.python_implementation()} {platform.python_version()}", + "os" : f"{platform.system()} {platform.version()} {platform.machine()}" + } + try: + logger.info("Waiting for register to Liteyuki...") + resp = requests.post(url, json=data, timeout=(10, 15)) + if resp.status_code == 200: + data = resp.json() + if liteyuki_id := data.get("liteyuki_id"): + with open("data/liteyuki/liteyuki.json", "wb") as f: + f.write(json.dumps(data).encode("utf-8")) + logger.success(f"Register {liteyuki_id} to Liteyuki successfully") + else: + raise ValueError(f"Register to Liteyuki failed: {data}") + + except Exception as e: + logger.warning(f"Register to Liteyuki failed, but it's no matter: {e}") + + +@liteyuki.on_before_start +async def _(): + register_bot() diff --git a/main.py b/main.py index 59628566..7efe0279 100644 --- a/main.py +++ b/main.py @@ -1,5 +1,5 @@ from liteyuki import LiteyukiBot -from liteyuki.config import load_from_yaml +from liteyuki.config import load_from_yaml if __name__ == "__main__": bot = LiteyukiBot(**load_from_yaml("config.yml"))