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