mirror of
https://github.com/zhenxun-org/zhenxun_bot.git
synced 2025-12-15 14:22:55 +08:00
🎨 代码优化
This commit is contained in:
parent
8d071f853b
commit
02aba68269
@ -1,4 +1,4 @@
|
||||
from datetime import datetime, timedelta, timezone
|
||||
from datetime import datetime, timezone, timedelta
|
||||
|
||||
from nonebot.adapters import Bot
|
||||
|
||||
@ -6,10 +6,10 @@ from nonebot.adapters import Bot
|
||||
from nonebot.adapters.onebot.v11 import Bot as v11Bot
|
||||
from nonebot.adapters.onebot.v12 import Bot as v12Bot
|
||||
|
||||
from zhenxun.configs.config import Config
|
||||
from zhenxun.models.group_member_info import GroupInfoUser
|
||||
from zhenxun.models.level_user import LevelUser
|
||||
from zhenxun.services.log import logger
|
||||
from zhenxun.configs.config import Config
|
||||
from zhenxun.models.level_user import LevelUser
|
||||
from zhenxun.models.group_member_info import GroupInfoUser
|
||||
|
||||
# from nonebot.adapters.discord import Bot as DiscordBot
|
||||
# from nonebot.adapters.dodo import Bot as DodoBot
|
||||
@ -19,6 +19,10 @@ class MemberUpdateManage:
|
||||
|
||||
@classmethod
|
||||
async def update(cls, bot: Bot, group_id: str):
|
||||
if not group_id:
|
||||
return logger.warning(
|
||||
f"bot: {bot.self_id},group_id为空,无法更新群成员信息..."
|
||||
)
|
||||
if isinstance(bot, v11Bot):
|
||||
await cls.v11(bot, group_id)
|
||||
elif isinstance(bot, v12Bot):
|
||||
|
||||
@ -2,29 +2,30 @@ import os
|
||||
import random
|
||||
|
||||
from nonebot import on_message
|
||||
from nonebot.rule import to_me
|
||||
from nonebot.matcher import Matcher
|
||||
from nonebot.plugin import PluginMetadata
|
||||
from nonebot.rule import to_me
|
||||
from nonebot_plugin_alconna import UniMsg
|
||||
from nonebot_plugin_session import EventSession
|
||||
|
||||
from zhenxun.configs.path_config import IMAGE_PATH
|
||||
from zhenxun.configs.utils import PluginExtraData
|
||||
from zhenxun.models.ban_console import BanConsole
|
||||
from zhenxun.models.group_console import GroupConsole
|
||||
from zhenxun.models.plugin_info import PluginInfo
|
||||
from zhenxun.services.log import logger
|
||||
from zhenxun.utils.enum import PluginType
|
||||
from zhenxun.utils.message import MessageUtils
|
||||
from zhenxun.configs.utils import PluginExtraData
|
||||
from zhenxun.models.ban_console import BanConsole
|
||||
from zhenxun.models.plugin_info import PluginInfo
|
||||
from zhenxun.configs.path_config import IMAGE_PATH
|
||||
from zhenxun.models.group_console import GroupConsole
|
||||
|
||||
__plugin_meta__ = PluginMetadata(
|
||||
name="功能名称当命令检测",
|
||||
name="笨蛋检测",
|
||||
description="功能名称当命令检测",
|
||||
usage=f"""被动""".strip(),
|
||||
usage="""被动""".strip(),
|
||||
extra=PluginExtraData(
|
||||
author="HibiKier",
|
||||
version="0.1",
|
||||
plugin_type=PluginType.DEPENDANT,
|
||||
menu_type="其他",
|
||||
).dict(),
|
||||
)
|
||||
|
||||
@ -57,10 +58,12 @@ async def _(matcher: Matcher, message: UniMsg, session: EventSession):
|
||||
if image:
|
||||
message_list.append(image)
|
||||
message_list.append(
|
||||
f"桀桀桀,预判到会有 '笨蛋' 把功能名称当命令用,特地前来嘲笑!但还是好心来帮帮你啦!\n请at我发送 '帮助{plugin.name}' 或者 '帮助{plugin.id}' 来获取该功能帮助!"
|
||||
"桀桀桀,预判到会有 '笨蛋' 把功能名称当命令用,特地前来嘲笑!"
|
||||
f"但还是好心来帮帮你啦!\n请at我发送 '帮助{plugin.name}' 或者"
|
||||
f" '帮助{plugin.id}' 来获取该功能帮助!"
|
||||
)
|
||||
logger.info(
|
||||
f"检测到功能名称当命令使用,已发送帮助信息", "功能帮助", session=session
|
||||
"检测到功能名称当命令使用,已发送帮助信息", "功能帮助", session=session
|
||||
)
|
||||
await MessageUtils.build_message(message_list).send(reply_to=True)
|
||||
matcher.stop_propagation()
|
||||
|
||||
@ -39,5 +39,5 @@ async def _(bot: Bot):
|
||||
await GroupConsole.filter(group_id__in=update_id).update(group_flag=1)
|
||||
logger.debug(
|
||||
f"更新Bot: {bot.self_id} 的群认证完成,共创建 {len(create_list)} 条数据,"
|
||||
"共修改 {len(update_id)} 条数据..."
|
||||
f"共修改 {len(update_id)} 条数据..."
|
||||
)
|
||||
|
||||
@ -1,35 +1,36 @@
|
||||
from nonebot.permission import SUPERUSER
|
||||
from nonebot.plugin import PluginMetadata
|
||||
from nonebot_plugin_session import EventSession, SessionLevel
|
||||
from nonebot_plugin_alconna import (
|
||||
Alconna,
|
||||
Args,
|
||||
Arparma,
|
||||
At,
|
||||
Args,
|
||||
Match,
|
||||
Option,
|
||||
Alconna,
|
||||
Arparma,
|
||||
Subcommand,
|
||||
on_alconna,
|
||||
)
|
||||
from nonebot_plugin_session import EventSession, SessionLevel
|
||||
|
||||
from zhenxun.configs.utils import PluginExtraData
|
||||
from zhenxun.models.level_user import LevelUser
|
||||
from zhenxun.services.log import logger
|
||||
from zhenxun.utils.enum import PluginType
|
||||
from zhenxun.utils.message import MessageUtils
|
||||
from zhenxun.models.level_user import LevelUser
|
||||
from zhenxun.configs.utils import PluginExtraData
|
||||
|
||||
__plugin_meta__ = PluginMetadata(
|
||||
name="用户权限管理",
|
||||
description="设置用户权限",
|
||||
usage="""
|
||||
权限设置 add [level: 权限等级] [at: at对象或用户id] [gid: 群组]
|
||||
权限设置 delete [at: at对象或用户id]
|
||||
|
||||
权限设置 add 5 @user
|
||||
权限设置 add 5 422 352352
|
||||
权限设置 add [level: 权限等级] [at: at对象或用户id] ?[-g gid: 群组]
|
||||
权限设置 delete [at: at对象或用户id] ?[-g gid: 群组]
|
||||
|
||||
添加权限 5 @user
|
||||
权限设置 add 5 422 -g 352352
|
||||
|
||||
删除权限 @user
|
||||
删除权限 1234123 -g 123123
|
||||
|
||||
权限设置 delete @user
|
||||
权限设置 delete 123456
|
||||
|
||||
""".strip(),
|
||||
extra=PluginExtraData(
|
||||
author="HibiKier",
|
||||
@ -44,16 +45,31 @@ _matcher = on_alconna(
|
||||
"权限设置",
|
||||
Subcommand(
|
||||
"add",
|
||||
Args["level", int]["uid", [str, At]]["gid?", str],
|
||||
Args["level", int]["uid", [str, At]],
|
||||
help_text="添加权限",
|
||||
),
|
||||
Subcommand("delete", Args["uid", [str, At]]["gid?", str], help_text="删除权限"),
|
||||
Subcommand("delete", Args["uid", [str, At]], help_text="删除权限"),
|
||||
Option("-g|--group", Args["gid", str], help_text="指定群组"),
|
||||
),
|
||||
permission=SUPERUSER,
|
||||
priority=5,
|
||||
block=True,
|
||||
)
|
||||
|
||||
_matcher.shortcut(
|
||||
"添加权限",
|
||||
command="权限设置",
|
||||
arguments=["add", "{%0}"],
|
||||
prefix=True,
|
||||
)
|
||||
|
||||
_matcher.shortcut(
|
||||
"删除权限",
|
||||
command="权限设置",
|
||||
arguments=["delete", "{%0}"],
|
||||
prefix=True,
|
||||
)
|
||||
|
||||
|
||||
@_matcher.assign("add")
|
||||
async def _(
|
||||
@ -82,9 +98,10 @@ async def _(
|
||||
]
|
||||
).finish(reply_to=True)
|
||||
await MessageUtils.build_message(
|
||||
f"成功为 \n群组:{group_id}\n用户:{uid} \n设置权限!\n权限:{old_level} -> {level}"
|
||||
f"成功为 \n群组:{group_id}\n用户:{uid} \n"
|
||||
f"设置权限!\n权限:{old_level} -> {level}"
|
||||
).finish()
|
||||
await MessageUtils.build_message(f"设置权限时群组不能为空...").finish()
|
||||
await MessageUtils.build_message("设置权限时群组不能为空...").finish()
|
||||
|
||||
|
||||
@_matcher.assign("delete")
|
||||
@ -107,7 +124,7 @@ async def _(
|
||||
session=session,
|
||||
)
|
||||
await MessageUtils.build_message(
|
||||
["成功删除 ", At(flag="user", target=uid), f" 的权限等级!"]
|
||||
["成功删除 ", At(flag="user", target=uid), " 的权限等级!"]
|
||||
).finish(reply_to=True)
|
||||
logger.info(
|
||||
f"删除群组用户权限: {user.user_level} -> 0",
|
||||
@ -115,7 +132,8 @@ async def _(
|
||||
session=session,
|
||||
)
|
||||
await MessageUtils.build_message(
|
||||
f"成功删除 \n群组:{group_id}\n用户:{uid} \n的权限等级!\n权限:{user.user_level} -> 0"
|
||||
f"成功删除 \n群组:{group_id}\n用户:{uid} \n"
|
||||
f"的权限等级!\n权限:{user.user_level} -> 0"
|
||||
).finish()
|
||||
await MessageUtils.build_message(f"对方目前暂无权限喔...").finish()
|
||||
await MessageUtils.build_message(f"设置权限时群组不能为空...").finish()
|
||||
await MessageUtils.build_message("对方目前暂无权限喔...").finish()
|
||||
await MessageUtils.build_message("设置权限时群组不能为空...").finish()
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
from nonebot.utils import is_coroutine_callable
|
||||
from tortoise import Tortoise
|
||||
from tortoise.connection import connections
|
||||
from tortoise.models import Model as Model_
|
||||
from nonebot.utils import is_coroutine_callable
|
||||
|
||||
from zhenxun.configs.config import BotConfig
|
||||
from zhenxun.configs.path_config import DATA_PATH
|
||||
@ -28,9 +28,25 @@ class Model(Model_):
|
||||
SCRIPT_METHOD.append((cls.__module__, func))
|
||||
|
||||
|
||||
class DbUrlIsNode(Exception):
|
||||
"""
|
||||
数据库链接地址为空
|
||||
"""
|
||||
|
||||
pass
|
||||
|
||||
|
||||
class DbConnectError(Exception):
|
||||
"""
|
||||
数据库连接错误
|
||||
"""
|
||||
|
||||
pass
|
||||
|
||||
|
||||
async def init():
|
||||
if not BotConfig.db_url:
|
||||
raise Exception(f"数据库配置为空,请在.env.dev中配置DB_URL...")
|
||||
raise DbUrlIsNode("数据库配置为空,请在.env.dev中配置DB_URL...")
|
||||
try:
|
||||
await Tortoise.init(
|
||||
db_url=BotConfig.db_url,
|
||||
@ -40,15 +56,13 @@ async def init():
|
||||
if SCRIPT_METHOD:
|
||||
db = Tortoise.get_connection("default")
|
||||
logger.debug(
|
||||
f"即将运行SCRIPT_METHOD方法, 合计 <u><y>{len(SCRIPT_METHOD)}</y></u> 个..."
|
||||
"即将运行SCRIPT_METHOD方法, 合计 "
|
||||
f"<u><y>{len(SCRIPT_METHOD)}</y></u> 个..."
|
||||
)
|
||||
sql_list = []
|
||||
for module, func in SCRIPT_METHOD:
|
||||
try:
|
||||
if is_coroutine_callable(func):
|
||||
sql = await func()
|
||||
else:
|
||||
sql = func()
|
||||
sql = await func() if is_coroutine_callable(func) else func()
|
||||
if sql:
|
||||
sql_list += sql
|
||||
except Exception as e:
|
||||
@ -63,9 +77,9 @@ async def init():
|
||||
if sql_list:
|
||||
logger.debug("SCRIPT_METHOD方法执行完毕!")
|
||||
await Tortoise.generate_schemas()
|
||||
logger.info(f"Database loaded successfully!")
|
||||
logger.info("Database loaded successfully!")
|
||||
except Exception as e:
|
||||
raise Exception(f"数据库连接错误... e:{e}")
|
||||
raise DbConnectError(f"数据库连接错误... e:{e}") from e
|
||||
|
||||
|
||||
async def disconnect():
|
||||
|
||||
Loading…
Reference in New Issue
Block a user