mirror of
https://github.com/zhenxun-org/zhenxun_bot.git
synced 2026-10-17 18:20:01 +08:00
✨ 移除saa依赖
This commit is contained in:
@@ -7,13 +7,12 @@ from nonebot.permission import SUPERUSER
|
||||
from nonebot.plugin import PluginMetadata
|
||||
from nonebot_plugin_alconna import Text as alcText
|
||||
from nonebot_plugin_alconna import UniMsg
|
||||
from nonebot_plugin_saa import Text
|
||||
from nonebot_plugin_session import EventSession
|
||||
|
||||
from zhenxun.configs.config import Config
|
||||
from zhenxun.configs.utils import PluginExtraData, RegisterConfig, Task
|
||||
from zhenxun.services.log import logger
|
||||
from zhenxun.utils.enum import PluginType
|
||||
from zhenxun.utils.message import MessageUtils
|
||||
|
||||
from ._data_source import BroadcastManage
|
||||
|
||||
@@ -56,10 +55,10 @@ async def _(
|
||||
if isinstance(msg, alcText) and msg.text.strip().startswith(command[0]):
|
||||
msg.text = msg.text.replace(command[0], "", 1).strip()
|
||||
break
|
||||
await Text("正在发送..请等一下哦!").send()
|
||||
await MessageUtils.build_message("正在发送..请等一下哦!").send()
|
||||
count, error_count = await BroadcastManage.send(bot, message, session)
|
||||
result = f"成功广播 {count} 个群组"
|
||||
if error_count:
|
||||
result += f"\n广播失败 {error_count} 个群组"
|
||||
await Text(f"发送广播完成!\n{result}").send(reply=True)
|
||||
await MessageUtils.build_message(f"发送广播完成!\n{result}").send(reply_to=True)
|
||||
logger.info(f"发送广播信息: {message}", "广播", session=session)
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
import nonebot_plugin_alconna as alc
|
||||
from nonebot.adapters import Bot
|
||||
from nonebot.adapters.discord import Bot as DiscordBot
|
||||
from nonebot.adapters.dodo import Bot as DodoBot
|
||||
from nonebot.adapters.kaiheila import Bot as KaiheilaBot
|
||||
from nonebot.adapters.onebot.v11 import Bot as v11Bot
|
||||
from nonebot.adapters.onebot.v12 import Bot as v12Bot
|
||||
from nonebot_plugin_alconna import UniMsg
|
||||
from nonebot_plugin_saa import Image, MessageFactory, Text
|
||||
|
||||
# from nonebot.adapters.discord import Bot as DiscordBot
|
||||
# from nonebot.adapters.dodo import Bot as DodoBot
|
||||
# from nonebot.adapters.kaiheila import Bot as KaiheilaBot
|
||||
# from nonebot.adapters.onebot.v11 import Bot as v11Bot
|
||||
# from nonebot.adapters.onebot.v12 import Bot as v12Bot
|
||||
from nonebot_plugin_alconna import Image, UniMsg
|
||||
from nonebot_plugin_session import EventSession
|
||||
|
||||
from zhenxun.models.group_console import GroupConsole
|
||||
from zhenxun.models.task_info import TaskInfo
|
||||
from zhenxun.services.log import logger
|
||||
from zhenxun.utils.message import MessageUtils
|
||||
from zhenxun.utils.platform import PlatformUtils
|
||||
|
||||
|
||||
@@ -34,9 +34,9 @@ class BroadcastManage:
|
||||
message_list = []
|
||||
for msg in message:
|
||||
if isinstance(msg, alc.Image) and msg.url:
|
||||
message_list.append(Image(msg.url))
|
||||
message_list.append(Image(url=msg.url))
|
||||
elif isinstance(msg, alc.Text):
|
||||
message_list.append(Text(msg.text))
|
||||
message_list.append(msg.text)
|
||||
group_list, _ = await PlatformUtils.get_group_list(bot)
|
||||
if group_list:
|
||||
error_count = 0
|
||||
@@ -50,7 +50,9 @@ class BroadcastManage:
|
||||
bot, None, group.channel_id or group.group_id
|
||||
)
|
||||
if target:
|
||||
await MessageFactory(message_list).send_to(target, bot)
|
||||
await MessageUtils.build_message(message_list).send(
|
||||
target, bot
|
||||
)
|
||||
logger.debug(
|
||||
"发送成功",
|
||||
"广播",
|
||||
|
||||
@@ -7,13 +7,13 @@ from nonebot.rule import to_me
|
||||
from nonebot.utils import run_sync
|
||||
from nonebot_plugin_alconna import Alconna, on_alconna
|
||||
from nonebot_plugin_apscheduler import scheduler
|
||||
from nonebot_plugin_saa import Text
|
||||
from nonebot_plugin_session import EventSession
|
||||
|
||||
from zhenxun.configs.path_config import TEMP_PATH
|
||||
from zhenxun.configs.utils import PluginExtraData
|
||||
from zhenxun.services.log import logger
|
||||
from zhenxun.utils.enum import PluginType
|
||||
from zhenxun.utils.message import MessageUtils
|
||||
from zhenxun.utils.utils import ResourceDirManager
|
||||
|
||||
__plugin_meta__ = PluginMetadata(
|
||||
@@ -44,11 +44,14 @@ ResourceDirManager.add_temp_dir(TEMP_PATH, True)
|
||||
|
||||
@_matcher.handle()
|
||||
async def _(session: EventSession):
|
||||
await Text("开始清理临时数据...").send()
|
||||
await MessageUtils.build_message("开始清理临时数据...").send()
|
||||
size = await _clear_data()
|
||||
await Text("共清理了 {:.2f}MB 的数据...".format(size / 1024 / 1024)).send()
|
||||
await MessageUtils.build_message(
|
||||
"共清理了 {:.2f}MB 的数据...".format(size / 1024 / 1024)
|
||||
).send()
|
||||
logger.info(
|
||||
"清理临时数据完成,共清理了 {:.2f}MB 的数据...".format(size / 1024 / 1024), session=session
|
||||
"清理临时数据完成,共清理了 {:.2f}MB 的数据...".format(size / 1024 / 1024),
|
||||
session=session,
|
||||
)
|
||||
|
||||
|
||||
@@ -71,8 +74,14 @@ def _clear_data() -> float:
|
||||
dir_size += file_size
|
||||
logger.debug(f"移除临时文件: {file.absolute()}", "清理临时数据")
|
||||
except Exception as e:
|
||||
logger.error(f"清理临时数据错误,临时文件夹: {dir_.absolute()}...", "清理临时数据", e=e)
|
||||
logger.debug("清理临时文件夹大小: {:.2f}MB".format(size / 1024 / 1024), "清理临时数据")
|
||||
logger.error(
|
||||
f"清理临时数据错误,临时文件夹: {dir_.absolute()}...",
|
||||
"清理临时数据",
|
||||
e=e,
|
||||
)
|
||||
logger.debug(
|
||||
"清理临时文件夹大小: {:.2f}MB".format(size / 1024 / 1024), "清理临时数据"
|
||||
)
|
||||
return float(size)
|
||||
|
||||
|
||||
@@ -83,4 +92,7 @@ def _clear_data() -> float:
|
||||
)
|
||||
async def _():
|
||||
size = await _clear_data()
|
||||
logger.info("自动清理临时数据完成,共清理了 {:.2f}MB 的数据...".format(size / 1024 / 1024), "定时任务")
|
||||
logger.info(
|
||||
"自动清理临时数据完成,共清理了 {:.2f}MB 的数据...".format(size / 1024 / 1024),
|
||||
"定时任务",
|
||||
)
|
||||
|
||||
@@ -4,12 +4,12 @@ from nonebot.permission import SUPERUSER
|
||||
from nonebot.plugin import PluginMetadata
|
||||
from nonebot.rule import to_me
|
||||
from nonebot_plugin_alconna import Alconna, on_alconna
|
||||
from nonebot_plugin_saa import Text
|
||||
from nonebot_plugin_session import EventSession
|
||||
|
||||
from zhenxun.configs.utils import PluginExtraData
|
||||
from zhenxun.services.log import logger
|
||||
from zhenxun.utils.enum import PluginType
|
||||
from zhenxun.utils.message import MessageUtils
|
||||
from zhenxun.utils.rules import admin_check, ensure_group
|
||||
|
||||
__plugin_meta__ = PluginMetadata(
|
||||
@@ -70,13 +70,13 @@ async def _(
|
||||
msg = ["{user_id} {nickname}".format_map(g) for g in fl]
|
||||
msg = "\n".join(msg)
|
||||
msg = f"| UID | 昵称 | 共{len(fl)}个好友\n" + msg
|
||||
await Text(msg).send()
|
||||
await MessageUtils.build_message(msg).send()
|
||||
logger.info("查看好友列表", "好友列表", session=session)
|
||||
except (ApiNotAvailable, AttributeError) as e:
|
||||
await Text("Api未实现...").send()
|
||||
await MessageUtils.build_message("Api未实现...").send()
|
||||
except Exception as e:
|
||||
logger.error("好友列表发生错误", "好友列表", session=session, e=e)
|
||||
await Text("其他未知错误...").send()
|
||||
await MessageUtils.build_message("其他未知错误...").send()
|
||||
|
||||
|
||||
@_group_matcher.handle()
|
||||
@@ -90,10 +90,10 @@ async def _(
|
||||
msg = ["{group_id} {group_name}".format_map(g) for g in gl]
|
||||
msg = "\n".join(msg)
|
||||
msg = f"| GID | 名称 | 共{len(gl)}个群组\n" + msg
|
||||
await Text(msg).send()
|
||||
await MessageUtils.build_message(msg).send()
|
||||
logger.info("查看群组列表", "群组列表", session=session)
|
||||
except (ApiNotAvailable, AttributeError) as e:
|
||||
await Text("Api未实现...").send()
|
||||
await MessageUtils.build_message("Api未实现...").send()
|
||||
except Exception as e:
|
||||
logger.error("查看群组列表发生错误", "群组列表", session=session, e=e)
|
||||
await Text("其他未知错误...").send()
|
||||
await MessageUtils.build_message("其他未知错误...").send()
|
||||
|
||||
@@ -14,7 +14,6 @@ from nonebot_plugin_alconna import (
|
||||
on_alconna,
|
||||
store_true,
|
||||
)
|
||||
from nonebot_plugin_saa import Text
|
||||
from nonebot_plugin_session import EventSession
|
||||
|
||||
from zhenxun.configs.config import NICKNAME
|
||||
@@ -22,6 +21,7 @@ from zhenxun.configs.utils import PluginExtraData
|
||||
from zhenxun.models.group_console import GroupConsole
|
||||
from zhenxun.services.log import logger
|
||||
from zhenxun.utils.enum import PluginType
|
||||
from zhenxun.utils.message import MessageUtils
|
||||
|
||||
__plugin_meta__ = PluginMetadata(
|
||||
name="管理群操作",
|
||||
@@ -139,7 +139,7 @@ def CheckGroupId():
|
||||
if group_id.available:
|
||||
gid = group_id.result
|
||||
if not gid:
|
||||
await Text("群组id不能为空...").finish()
|
||||
await MessageUtils.build_message("群组id不能为空...").finish()
|
||||
state["group_id"] = gid
|
||||
|
||||
return Depends(dependency)
|
||||
@@ -152,7 +152,7 @@ async def _(session: EventSession, arparma: Arparma, state: T_State, level: int)
|
||||
old_level = group.level
|
||||
group.level = level
|
||||
await group.save(update_fields=["level"])
|
||||
await Text("群权限修改成功!").send(reply=True)
|
||||
await MessageUtils.build_message("群权限修改成功!").send(reply_to=True)
|
||||
logger.info(
|
||||
f"修改群权限: {old_level} -> {level}",
|
||||
arparma.header_result,
|
||||
@@ -166,11 +166,11 @@ async def _(session: EventSession, arparma: Arparma, state: T_State):
|
||||
gid = state["group_id"]
|
||||
group = await GroupConsole.get_or_none(group_id=gid)
|
||||
if not group:
|
||||
await Text("群组信息不存在, 请更新群组信息...").finish()
|
||||
await MessageUtils.build_message("群组信息不存在, 请更新群组信息...").finish()
|
||||
s = "删除" if arparma.find("del") else "添加"
|
||||
group.is_super = not arparma.find("del")
|
||||
await group.save(update_fields=["is_super"])
|
||||
await Text(f"{s}群白名单成功!").send(reply=True)
|
||||
await MessageUtils.build_message(f"{s}群白名单成功!").send(reply_to=True)
|
||||
logger.info(f"{s}群白名单", arparma.header_result, session=session, target=gid)
|
||||
|
||||
|
||||
@@ -181,7 +181,7 @@ async def _(session: EventSession, arparma: Arparma, state: T_State):
|
||||
group_id=gid, defaults={"group_flag": 0 if arparma.find("del") else 1}
|
||||
)
|
||||
s = "删除" if arparma.find("del") else "添加"
|
||||
await Text(f"{s}群认证成功!").send(reply=True)
|
||||
await MessageUtils.build_message(f"{s}群认证成功!").send(reply_to=True)
|
||||
logger.info(f"{s}群白名单", arparma.header_result, session=session, target=gid)
|
||||
|
||||
|
||||
@@ -191,17 +191,17 @@ async def _(bot: Bot, session: EventSession, arparma: Arparma, group_id: int):
|
||||
group_list = [g["group_id"] for g in await bot.get_group_list()]
|
||||
if group_id not in group_list:
|
||||
logger.debug("群组不存在", "退群", session=session, target=group_id)
|
||||
await Text(f"{NICKNAME}未在该群组中...").finish()
|
||||
await MessageUtils.build_message(f"{NICKNAME}未在该群组中...").finish()
|
||||
try:
|
||||
await bot.set_group_leave(group_id=group_id)
|
||||
logger.info(
|
||||
f"{NICKNAME}退出群组成功", "退群", session=session, target=group_id
|
||||
)
|
||||
await Text(f"退出群组 {group_id} 成功!").send()
|
||||
await MessageUtils.build_message(f"退出群组 {group_id} 成功!").send()
|
||||
await GroupConsole.filter(group_id=group_id).delete()
|
||||
except Exception as e:
|
||||
logger.error(f"退出群组失败", "退群", session=session, target=group_id, e=e)
|
||||
await Text(f"退出群组 {group_id} 失败...").send()
|
||||
await MessageUtils.build_message(f"退出群组 {group_id} 失败...").send()
|
||||
else:
|
||||
# TODO: 其他平台的退群操作
|
||||
await Text(f"暂未支持退群操作...").send()
|
||||
await MessageUtils.build_message(f"暂未支持退群操作...").send()
|
||||
|
||||
@@ -3,13 +3,13 @@ from nonebot.plugin import PluginMetadata
|
||||
from nonebot.rule import to_me
|
||||
from nonebot_plugin_alconna import Alconna, Arparma, on_alconna
|
||||
from nonebot_plugin_apscheduler import scheduler
|
||||
from nonebot_plugin_saa import Text
|
||||
from nonebot_plugin_session import EventSession
|
||||
|
||||
from zhenxun.configs.config import Config
|
||||
from zhenxun.configs.utils import PluginExtraData, RegisterConfig
|
||||
from zhenxun.services.log import logger
|
||||
from zhenxun.utils.enum import PluginType
|
||||
from zhenxun.utils.message import MessageUtils
|
||||
|
||||
__plugin_meta__ = PluginMetadata(
|
||||
name="重载配置",
|
||||
@@ -55,7 +55,7 @@ _matcher = on_alconna(
|
||||
async def _(session: EventSession, arparma: Arparma):
|
||||
Config.reload()
|
||||
logger.debug("自动重载配置文件", arparma.header_result, session=session)
|
||||
await Text("重载完成!").send(reply=True)
|
||||
await MessageUtils.build_message("重载完成!").send(reply_to=True)
|
||||
|
||||
|
||||
@scheduler.scheduled_job(
|
||||
|
||||
@@ -9,13 +9,13 @@ from nonebot_plugin_alconna import (
|
||||
Subcommand,
|
||||
on_alconna,
|
||||
)
|
||||
from nonebot_plugin_saa import Mention, MessageFactory, Text
|
||||
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
|
||||
|
||||
__plugin_meta__ = PluginMetadata(
|
||||
name="用户权限管理",
|
||||
@@ -43,7 +43,9 @@ _matcher = on_alconna(
|
||||
Alconna(
|
||||
"权限设置",
|
||||
Subcommand(
|
||||
"add", Args["level", int]["uid", [str, At]]["gid?", str], help_text="添加权限"
|
||||
"add",
|
||||
Args["level", int]["uid", [str, At]]["gid?", str],
|
||||
help_text="添加权限",
|
||||
),
|
||||
Subcommand("delete", Args["uid", [str, At]]["gid?", str], help_text="删除权限"),
|
||||
),
|
||||
@@ -72,13 +74,17 @@ async def _(
|
||||
f"修改权限: {old_level} -> {level}", arparma.header_result, session=session
|
||||
)
|
||||
if session.level in [SessionLevel.LEVEL2, SessionLevel.LEVEL3]:
|
||||
await MessageFactory(
|
||||
[Text("成功为 "), Mention(uid), Text(f" 设置权限:{old_level} -> {level}")]
|
||||
).finish(reply=True)
|
||||
await Text(
|
||||
await MessageUtils.build_message(
|
||||
[
|
||||
"成功为 ",
|
||||
At(flag="user", target=uid),
|
||||
f" 设置权限:{old_level} -> {level}",
|
||||
]
|
||||
).finish(reply_to=True)
|
||||
await MessageUtils.build_message(
|
||||
f"成功为 \n群组:{group_id}\n用户:{uid} \n设置权限!\n权限:{old_level} -> {level}"
|
||||
).finish()
|
||||
await Text(f"设置权限时群组不能为空...").finish()
|
||||
await MessageUtils.build_message(f"设置权限时群组不能为空...").finish()
|
||||
|
||||
|
||||
@_matcher.assign("delete")
|
||||
@@ -95,11 +101,21 @@ async def _(
|
||||
if user := await LevelUser.get_or_none(user_id=uid, group_id=group_id):
|
||||
await user.delete()
|
||||
if session.level in [SessionLevel.LEVEL2, SessionLevel.LEVEL3]:
|
||||
await MessageFactory(
|
||||
[Text("成功删除 "), Mention(uid), Text(f" 的权限等级!")]
|
||||
).finish(reply=True)
|
||||
await Text(
|
||||
logger.info(
|
||||
f"删除权限: {user.user_level} -> 0",
|
||||
arparma.header_result,
|
||||
session=session,
|
||||
)
|
||||
await MessageUtils.build_message(
|
||||
["成功删除 ", At(flag="user", target=uid), f" 的权限等级!"]
|
||||
).finish(reply_to=True)
|
||||
logger.info(
|
||||
f"删除群组用户权限: {user.user_level} -> 0",
|
||||
arparma.header_result,
|
||||
session=session,
|
||||
)
|
||||
await MessageUtils.build_message(
|
||||
f"成功删除 \n群组:{group_id}\n用户:{uid} \n的权限等级!\n权限:{user.user_level} -> 0"
|
||||
).finish()
|
||||
await Text(f"对方目前暂无权限喔...").finish()
|
||||
await Text(f"设置权限时群组不能为空...").finish()
|
||||
await MessageUtils.build_message(f"对方目前暂无权限喔...").finish()
|
||||
await MessageUtils.build_message(f"设置权限时群组不能为空...").finish()
|
||||
|
||||
@@ -3,12 +3,12 @@ from nonebot.permission import SUPERUSER
|
||||
from nonebot.plugin import PluginMetadata
|
||||
from nonebot.rule import to_me
|
||||
from nonebot_plugin_alconna import Alconna, Arparma, on_alconna
|
||||
from nonebot_plugin_saa import Text
|
||||
from nonebot_plugin_session import EventSession
|
||||
|
||||
from zhenxun.configs.utils import PluginExtraData
|
||||
from zhenxun.services.log import logger
|
||||
from zhenxun.utils.enum import PluginType
|
||||
from zhenxun.utils.message import MessageUtils
|
||||
from zhenxun.utils.platform import PlatformUtils
|
||||
|
||||
__plugin_meta__ = PluginMetadata(
|
||||
@@ -60,12 +60,12 @@ async def _(
|
||||
arparma.header_result,
|
||||
session=session,
|
||||
)
|
||||
await Text(f"成功更新了 {num} 个群组的信息").send()
|
||||
await MessageUtils.build_message(f"成功更新了 {num} 个群组的信息").send()
|
||||
except Exception as e:
|
||||
logger.error(
|
||||
"更新群组信息发生错误", arparma.header_result, session=session, e=e
|
||||
)
|
||||
await Text("其他未知错误...").send()
|
||||
await MessageUtils.build_message("其他未知错误...").send()
|
||||
|
||||
|
||||
@_friend_matcher.handle()
|
||||
@@ -75,15 +75,15 @@ async def _(
|
||||
arparma: Arparma,
|
||||
):
|
||||
try:
|
||||
num = await PlatformUtils.update_friend(bot, session.platform)
|
||||
num = await PlatformUtils.update_friend(bot)
|
||||
logger.info(
|
||||
f"更新好友信息完成,共更新了 {num} 个好友的信息!",
|
||||
arparma.header_result,
|
||||
session=session,
|
||||
)
|
||||
await Text(f"成功更新了 {num} 个好友的信息").send()
|
||||
await MessageUtils.build_message(f"成功更新了 {num} 个好友的信息").send()
|
||||
except Exception as e:
|
||||
logger.error(
|
||||
"更新好友信息发生错误", arparma.header_result, session=session, e=e
|
||||
)
|
||||
await Text("其他未知错误...").send()
|
||||
await MessageUtils.build_message("其他未知错误...").send()
|
||||
|
||||
Reference in New Issue
Block a user