✨ 移除saa依赖

This commit is contained in:
HibiKier
2024-08-11 15:57:33 +08:00
parent 71f3b031d4
commit d0792e0a1c
68 changed files with 1722 additions and 1528 deletions
@@ -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(
+29 -13
View File
@@ -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()