summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKyomotoi <[email protected]>2022-10-13 16:22:02 +0800
committerKyomotoi <[email protected]>2022-10-13 16:22:02 +0800
commit62f339d431811c5908a7e5f2eaabd6d45ca1be84 (patch)
tree8df4009910fd87af836dbff6acbdb0dc0e8bb676
parentcbe782eca371856a1b29586b9681a510827aff1c (diff)
downloadATRI-62f339d431811c5908a7e5f2eaabd6d45ca1be84.tar.gz
ATRI-62f339d431811c5908a7e5f2eaabd6d45ca1be84.tar.bz2
ATRI-62f339d431811c5908a7e5f2eaabd6d45ca1be84.zip
🎨⚡️ 跟进 config 项的重构
-rw-r--r--ATRI/__init__.py13
-rw-r--r--ATRI/exceptions.py11
-rw-r--r--ATRI/log.py40
-rw-r--r--ATRI/plugins/console/__init__.py4
-rw-r--r--ATRI/plugins/console/driver/__init__.py4
-rw-r--r--ATRI/plugins/essential.py20
-rw-r--r--ATRI/plugins/help/data_source.py5
-rw-r--r--ATRI/plugins/repo.py4
-rw-r--r--ATRI/plugins/setu/__init__.py6
-rw-r--r--ATRI/plugins/setu/data_source.py6
-rw-r--r--ATRI/plugins/status/__init__.py4
-rw-r--r--ATRI/utils/request.py8
-rw-r--r--test/test_plugin_help.py5
13 files changed, 65 insertions, 65 deletions
diff --git a/ATRI/__init__.py b/ATRI/__init__.py
index 79157ce..547e4bd 100644
--- a/ATRI/__init__.py
+++ b/ATRI/__init__.py
@@ -1,11 +1,16 @@
from time import sleep
+from pathlib import Path
import nonebot
from nonebot.adapters.onebot.v11 import Adapter
-from .config import RUNTIME_CONFIG, BotSelfConfig, InlineGoCQHTTP
+from .configs import Config
__version__ = "YHN-001-A07"
+__conf_path = Path(".") / "config.yml"
+__conf = Config(__conf_path)
+
+conf = __conf.parse()
def asgi():
@@ -17,15 +22,15 @@ def driver():
def init():
- nonebot.init(**RUNTIME_CONFIG)
+ nonebot.init(**__conf.get_runtime_conf())
driver().register_adapter(Adapter)
nonebot.load_plugins("ATRI/plugins")
nonebot.load_plugins("ATRI/plugins/rss")
- if InlineGoCQHTTP.enabled:
+ if conf.WithGoCQHTTP.enabled:
nonebot.load_plugin("nonebot_plugin_gocqhttp")
sleep(3)
def run():
- log_level = "debug" if BotSelfConfig.debug else "warning"
+ log_level = "debug" if conf.BotConfig.debug else "warning"
nonebot.run(log_level=log_level)
diff --git a/ATRI/exceptions.py b/ATRI/exceptions.py
index 27ba426..22f643f 100644
--- a/ATRI/exceptions.py
+++ b/ATRI/exceptions.py
@@ -10,8 +10,9 @@ from nonebot.adapters.onebot.v11 import ActionFailed
from nonebot.adapters.onebot.v11 import Bot, PrivateMessageEvent, GroupMessageEvent
from nonebot.message import run_postprocessor
-from .log import logger as log
-from .config import BotSelfConfig
+from ATRI import conf
+
+from .log import log
from .utils import gen_random_str
@@ -103,9 +104,7 @@ class RssError(BaseBotException):
@run_postprocessor
-async def _track_error(
- bot: Bot, event, matcher: Matcher, exception: Optional[Exception]
-) -> None:
+async def _(bot: Bot, event, matcher: Matcher, exception: Optional[Exception]):
if not exception:
return
@@ -131,7 +130,7 @@ async def _track_error(
log.error(f"Error Track ID: {track_id}")
msg = f"呜——出错了...追踪: {track_id}\n来自: {_id}"
- for superusers in BotSelfConfig.superusers:
+ for superusers in conf.BotConfig.superusers:
try:
await bot.send_private_msg(user_id=superusers, message=msg)
except BaseBotException:
diff --git a/ATRI/log.py b/ATRI/log.py
index 77f16ef..75fe4e4 100644
--- a/ATRI/log.py
+++ b/ATRI/log.py
@@ -2,17 +2,17 @@ import sys
from pathlib import Path
from datetime import datetime
-from nonebot.log import logger
+from nonebot.log import logger as log
-from .config import BotSelfConfig
+from ATRI import conf
LOGGER_DIR = Path(".") / "data" / "logs"
LOGGER_DIR.mkdir(exist_ok=True, parents=True)
-NOW_TIME = datetime.now().strftime("%Y%m%d-%H")
+_NOW_TIME = datetime.now().strftime("%Y%m%d-%H")
-log_format = (
+_LOG_FORMAT = (
"\033[36mATRI\033[0m "
"| <g>{time:MM-DD HH:mm:ss}</g> "
"| <lvl>{level}</lvl> "
@@ -36,47 +36,47 @@ class LoguruNameDealer:
return record
-logger.remove()
-logger.add(
+log.remove()
+log.add(
sys.stdout,
- level="DEBUG" if BotSelfConfig.debug else "INFO",
+ level="DEBUG" if conf.BotConfig.debug else "INFO",
colorize=True,
filter=LoguruNameDealer(),
- format=log_format,
+ format=_LOG_FORMAT,
)
-logger.add(
- LOGGER_DIR / "info" / f"{NOW_TIME}.log",
+log.add(
+ LOGGER_DIR / "info" / f"{_NOW_TIME}.log",
rotation="10 MB",
enqueue=True,
level="INFO",
encoding="utf-8",
- format=log_format,
+ format=_LOG_FORMAT,
)
-logger.add(
- LOGGER_DIR / "warning" / f"{NOW_TIME}.log",
+log.add(
+ LOGGER_DIR / "warning" / f"{_NOW_TIME}.log",
rotation="10 MB",
enqueue=True,
level="WARNING",
encoding="utf-8",
- format=log_format,
+ format=_LOG_FORMAT,
)
-logger.add(
- LOGGER_DIR / "error" / f"{NOW_TIME}.log",
+log.add(
+ LOGGER_DIR / "error" / f"{_NOW_TIME}.log",
rotation="10 MB",
enqueue=True,
level="ERROR",
encoding="utf-8",
- format=log_format,
+ format=_LOG_FORMAT,
)
-logger.add(
- LOGGER_DIR / "debug" / f"{NOW_TIME}.log",
+log.add(
+ LOGGER_DIR / "debug" / f"{_NOW_TIME}.log",
rotation="10 MB",
enqueue=True,
level="DEBUG",
encoding="utf-8",
- format=log_format,
+ format=_LOG_FORMAT,
)
diff --git a/ATRI/plugins/console/__init__.py b/ATRI/plugins/console/__init__.py
index 0764ab8..522998d 100644
--- a/ATRI/plugins/console/__init__.py
+++ b/ATRI/plugins/console/__init__.py
@@ -3,7 +3,7 @@ import json
from nonebot.params import ArgPlainText
from nonebot.adapters.onebot.v11 import PrivateMessageEvent, GroupMessageEvent
-from ATRI.config import BotSelfConfig
+from ATRI import conf
from ATRI.message import MessageBuilder
from ATRI.exceptions import WriteFileError
@@ -27,7 +27,7 @@ async def _(event: PrivateMessageEvent, is_pub_n: str = ArgPlainText("is_pub_n")
else:
host = str(await Console().get_host_ip(True))
- port = BotSelfConfig.port
+ port = conf.BotConfig.port
token = Console().get_random_str(20)
data = json.loads(data_path.read_bytes())
diff --git a/ATRI/plugins/console/driver/__init__.py b/ATRI/plugins/console/driver/__init__.py
index 970c91a..e4f8f71 100644
--- a/ATRI/plugins/console/driver/__init__.py
+++ b/ATRI/plugins/console/driver/__init__.py
@@ -3,8 +3,8 @@ from nonebot.drivers.fastapi import Driver
from fastapi.staticfiles import StaticFiles
from fastapi.middleware.cors import CORSMiddleware
+from ATRI import conf
from ATRI.log import log
-from ATRI.log import BotSelfConfig
from ATRI.plugins.console.data_source import FRONTEND_DIR
from .view import (
handle_auther,
@@ -64,6 +64,6 @@ def register_routes(driver: Driver):
def init_driver():
from ATRI import driver
- c_url = f"{BotSelfConfig.host}:{BotSelfConfig.port}"
+ c_url = f"{conf.BotConfig.host}:{conf.BotConfig.port}"
log.info(f"控制台将运行于: http://{c_url} 对应API节点为: /capi")
register_routes(driver()) # type: ignore
diff --git a/ATRI/plugins/essential.py b/ATRI/plugins/essential.py
index d40856d..c9b48a7 100644
--- a/ATRI/plugins/essential.py
+++ b/ATRI/plugins/essential.py
@@ -27,11 +27,9 @@ from nonebot.adapters.onebot.v11 import (
Message,
)
-
+from ATRI import conf
from ATRI.service import Service
from ATRI.log import log
-from ATRI.config import BotSelfConfig
-
from ATRI.utils import MessageChecker
from ATRI.utils.apscheduler import scheduler
@@ -142,7 +140,7 @@ async def _friend_add(bot: Bot, event: FriendRequestEvent):
f"申请码:{apply_code}\n"
"Tip: 获取好友申请"
)
- for superuser in BotSelfConfig.superusers:
+ for superuser in conf.BotConfig.superusers:
await bot.send_private_msg(user_id=superuser, message=repo)
@@ -188,7 +186,7 @@ async def _group_invite(bot: Bot, event: GroupRequestEvent):
f"申请码:{apply_code}\n"
"Tip: 获取邀请列表"
)
- for superuser in BotSelfConfig.superusers:
+ for superuser in conf.BotConfig.superusers:
await bot.send_private_msg(user_id=superuser, message=repo)
@@ -198,7 +196,7 @@ group_member_event = Essential().on_notice("群成员变动", "群成员变动�
@group_member_event.handle()
async def _group_member_join(bot: Bot, event: GroupIncreaseNoticeEvent):
await asyncio.sleep(randint(1, 6))
- msg = "好欸!事新人!\n" f"在下 {choice(list(BotSelfConfig.nickname))} 哒!w!"
+ msg = "好欸!事新人!\n" f"在下 {choice(list(conf.BotConfig.nickname))} 哒!w!"
await group_member_event.finish(msg)
@@ -216,7 +214,7 @@ async def _group_admin_event(bot: Bot, event: GroupAdminNoticeEvent):
if not event.is_tome():
return
- for superuser in BotSelfConfig.superusers:
+ for superuser in conf.BotConfig.superusers:
await bot.send_private_msg(
user_id=int(superuser), message=f"好欸!主人!我在群 {event.group_id} 成为了管理!!"
)
@@ -236,11 +234,11 @@ async def _group_ban_event(bot: Bot, event: GroupBanNoticeEvent):
f"咱在群 {event.group_id} 被 {event.operator_id} 塞上了口球...\n"
f"时长...是 {event.duration} 秒"
)
- for superuser in BotSelfConfig.superusers:
+ for superuser in conf.BotConfig.superusers:
await bot.send_private_msg(user_id=int(superuser), message=msg)
else:
msg = "好欸!主人\n" f"咱在群 {event.group_id} 的口球被 {event.operator_id} 解除了!"
- for superuser in BotSelfConfig.superusers:
+ for superuser in conf.BotConfig.superusers:
await bot.send_private_msg(user_id=int(superuser), message=msg)
@@ -277,7 +275,7 @@ async def _recall_group_event(bot: Bot, event: GroupRecallNoticeEvent):
else:
return
msg = f"主人,咱拿到了一条撤回信息!\n{user}@[群:{group}]\n撤回了\n{m}"
- for superuser in BotSelfConfig.superusers:
+ for superuser in conf.BotConfig.superusers:
await bot.send_private_msg(user_id=int(superuser), message=Message(msg))
@@ -308,7 +306,7 @@ async def _recall_private_event(bot: Bot, event: FriendRecallNoticeEvent):
return
msg = f"主人,咱拿到了一条撤回信息!\n{user}@[私聊]撤回了\n{m}"
- for superuser in BotSelfConfig.superusers:
+ for superuser in conf.BotConfig.superusers:
await bot.send_private_msg(user_id=int(superuser), message=Message(msg))
diff --git a/ATRI/plugins/help/data_source.py b/ATRI/plugins/help/data_source.py
index e504818..a99b92e 100644
--- a/ATRI/plugins/help/data_source.py
+++ b/ATRI/plugins/help/data_source.py
@@ -3,10 +3,9 @@ import json
from tabulate import tabulate
-from ATRI import __version__
+from ATRI import __version__, conf
from ATRI.rule import to_bot
from ATRI.service import Service, SERVICES_DIR, ServiceTools
-from ATRI.config import BotSelfConfig
SERVICE_INFO_FORMAT = """
@@ -42,7 +41,7 @@ class Helper(Service):
@staticmethod
def about() -> str:
temp_list = list()
- for i in BotSelfConfig.nickname:
+ for i in conf.BotConfig.nickname:
temp_list.append(i)
nickname = "、".join(map(str, temp_list))
return (
diff --git a/ATRI/plugins/repo.py b/ATRI/plugins/repo.py
index fe92a3f..561e20b 100644
--- a/ATRI/plugins/repo.py
+++ b/ATRI/plugins/repo.py
@@ -5,8 +5,8 @@ from nonebot.params import CommandArg, ArgPlainText
from nonebot.adapters.onebot.v11 import Bot, MessageEvent, Message
from nonebot.adapters.onebot.v11.helpers import Cooldown
+from ATRI import conf
from ATRI.service import Service
-from ATRI.config import BotSelfConfig
from ATRI.message import MessageBuilder
@@ -44,7 +44,7 @@ async def _deal_repo(
user_id = event.get_user_id()
repo_0 = _REPO_FORMAT.format(user=user_id, msg=repo_msg)
- for superuser in BotSelfConfig.superusers:
+ for superuser in conf.BotConfig.superusers:
try:
await bot.send_private_msg(user_id=superuser, message=repo_0)
except Exception:
diff --git a/ATRI/plugins/setu/__init__.py b/ATRI/plugins/setu/__init__.py
index 7962af8..1e8af97 100644
--- a/ATRI/plugins/setu/__init__.py
+++ b/ATRI/plugins/setu/__init__.py
@@ -8,7 +8,7 @@ from nonebot.params import CommandArg, ArgPlainText
from nonebot.adapters.onebot.v11 import Bot, MessageEvent, Message, MessageSegment
from nonebot.adapters.onebot.v11.helpers import extract_image_urls, Cooldown
-from ATRI.config import BotSelfConfig
+from ATRI import conf
from .data_source import Setu
@@ -122,7 +122,7 @@ async def _setu_catcher(bot: Bot, event: MessageEvent):
s_repo = f"多张涩图来咧!\n{ss}\n最涩的达到:{'{:.2%}'.format(hso[0])}"
await bot.send(event, u_repo)
- for superuser in BotSelfConfig.superusers:
+ for superuser in conf.BotConfig.superusers:
await bot.send_private_msg(user_id=superuser, message=s_repo)
@@ -143,7 +143,7 @@ async def _deal_check(bot: Bot, event: MessageEvent):
if hso >= 0.75:
resu += "hso!不行我要发给别人看"
repo = f"涩图来咧!\n{MessageSegment.image(args[0])}\n涩值:{'{:.2%}'.format(hso)}"
- for superuser in BotSelfConfig.superusers:
+ for superuser in conf.BotConfig.superusers:
await bot.send_private_msg(user_id=superuser, message=repo)
elif 0.75 > hso >= 0.5:
diff --git a/ATRI/plugins/setu/data_source.py b/ATRI/plugins/setu/data_source.py
index 71649fe..faf8668 100644
--- a/ATRI/plugins/setu/data_source.py
+++ b/ATRI/plugins/setu/data_source.py
@@ -1,10 +1,10 @@
import asyncio
from nonebot.adapters.onebot.v11 import Bot, MessageSegment
+from ATRI import conf
from ATRI.service import Service
from ATRI.rule import is_in_service
from ATRI.utils import request
-from ATRI.config import Setu as ST
from .nsfw_checker import detect_image, init_model
@@ -20,8 +20,8 @@ class Setu(Service):
@staticmethod
def _use_proxy(url: str) -> str:
- if ST.reverse_proxy:
- return url.replace("i.pixiv.cat", ST.reverse_proxy_domain)
+ if conf.Setu.reverse_proxy:
+ return url.replace("i.pixiv.cat", conf.Setu.reverse_proxy_domain)
else:
return url
diff --git a/ATRI/plugins/status/__init__.py b/ATRI/plugins/status/__init__.py
index 9c43973..ee90c86 100644
--- a/ATRI/plugins/status/__init__.py
+++ b/ATRI/plugins/status/__init__.py
@@ -1,7 +1,7 @@
from nonebot import get_bot
+from ATRI import conf
from ATRI.log import log
-from ATRI.config import BotSelfConfig
from ATRI.utils.apscheduler import scheduler
from .data_source import Status
@@ -35,7 +35,7 @@ async def _():
log.warning(msg)
bot = get_bot()
- for super in BotSelfConfig.superusers:
+ for super in conf.BotConfig.superusers:
await bot.send_private_msg(user_id=super, message=msg)
log.info("资源消耗正常")
diff --git a/ATRI/utils/request.py b/ATRI/utils/request.py
index db7614f..8310116 100644
--- a/ATRI/utils/request.py
+++ b/ATRI/utils/request.py
@@ -1,16 +1,16 @@
import httpx
-from ATRI.config import BotSelfConfig
+from ATRI import conf
from ATRI.log import log
-timeout = BotSelfConfig.request_timeout
+timeout = conf.BotConfig.request_timeout
if timeout:
timeout = httpx.Timeout(timeout)
-if not BotSelfConfig.proxy:
+if not conf.BotConfig.proxy:
proxy = dict()
else:
- proxy = {"all://": BotSelfConfig.proxy}
+ proxy = {"all://": conf.BotConfig.proxy}
async def get(url: str, **kwargs):
diff --git a/test/test_plugin_help.py b/test/test_plugin_help.py
index ee68f58..fa7616a 100644
--- a/test/test_plugin_help.py
+++ b/test/test_plugin_help.py
@@ -32,12 +32,11 @@ async def test_main_help(app: App):
@pytest.mark.asyncio
async def test_about_me(app: App):
- from ATRI import __version__
- from ATRI.config import BotSelfConfig
+ from ATRI import __version__, conf
from ATRI.plugins.help import about
temp_list = list()
- for i in BotSelfConfig.nickname:
+ for i in conf.BotConfig.nickname:
temp_list.append(i)
nickname = "、".join(map(str, temp_list))