mirror of
https://github.com/zhenxun-org/zhenxun_bot.git
synced 2025-12-15 06:12:53 +08:00
🐛 修复bug
This commit is contained in:
parent
a9ed5d144d
commit
28b7415581
@ -102,7 +102,10 @@ class MemberUpdateManage:
|
|||||||
if role in ["owner", "admin"] and not await LevelUser.is_group_flag(
|
if role in ["owner", "admin"] and not await LevelUser.is_group_flag(
|
||||||
user_id, group_id
|
user_id, group_id
|
||||||
):
|
):
|
||||||
await LevelUser.set_level(user_id, group_id, default_auth)
|
if role == "owner":
|
||||||
|
await LevelUser.set_level(user_id, group_id, default_auth + 1)
|
||||||
|
else:
|
||||||
|
await LevelUser.set_level(user_id, group_id, default_auth)
|
||||||
if user_id in bot.config.superusers:
|
if user_id in bot.config.superusers:
|
||||||
await LevelUser.set_level(user_id, group_id, 9)
|
await LevelUser.set_level(user_id, group_id, 9)
|
||||||
join_time = datetime.strptime(
|
join_time = datetime.strptime(
|
||||||
|
|||||||
@ -58,7 +58,7 @@ __plugin_meta__ = PluginMetadata(
|
|||||||
关闭群被动早晚安
|
关闭群被动早晚安
|
||||||
关闭群被动早晚安 -g 12355555
|
关闭群被动早晚安 -g 12355555
|
||||||
|
|
||||||
开启/关闭所有群被动 -[g ?[group_id]]
|
开启/关闭所有群被动 ?[-g [group_id]]
|
||||||
私聊中: 开启/关闭全局或指定群组被动状态
|
私聊中: 开启/关闭全局或指定群组被动状态
|
||||||
示例:
|
示例:
|
||||||
开启所有群被动: 开启全局所有被动
|
开启所有群被动: 开启全局所有被动
|
||||||
|
|||||||
@ -198,6 +198,8 @@ class AuthChecker:
|
|||||||
return False
|
return False
|
||||||
if not self._flmt_s.check(sid):
|
if not self._flmt_s.check(sid):
|
||||||
return False
|
return False
|
||||||
|
if plugin.module == "ai":
|
||||||
|
return False
|
||||||
return True
|
return True
|
||||||
|
|
||||||
async def auth(
|
async def auth(
|
||||||
@ -392,7 +394,7 @@ class AuthChecker:
|
|||||||
if not plugin.status and plugin.block_type == BlockType.ALL:
|
if not plugin.status and plugin.block_type == BlockType.ALL:
|
||||||
"""全局状态"""
|
"""全局状态"""
|
||||||
if group_id:
|
if group_id:
|
||||||
if await GroupConsole.is_super_group(group_id, channel_id):
|
if await GroupConsole.is_super_group(group_id):
|
||||||
raise IsSuperuserException()
|
raise IsSuperuserException()
|
||||||
logger.debug(
|
logger.debug(
|
||||||
f"{plugin.name}({plugin.module}) 全局未开启此功能...",
|
f"{plugin.name}({plugin.module}) 全局未开启此功能...",
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
from typing import Optional
|
from typing import Optional
|
||||||
|
|
||||||
from nonebot.adapters.onebot.v11 import Bot, Event, MessageEvent
|
from nonebot.adapters.onebot.v11 import Bot, Event
|
||||||
from nonebot.matcher import Matcher
|
from nonebot.matcher import Matcher
|
||||||
from nonebot.message import run_postprocessor, run_preprocessor
|
from nonebot.message import run_postprocessor, run_preprocessor
|
||||||
from nonebot_plugin_alconna import UniMsg
|
from nonebot_plugin_alconna import UniMsg
|
||||||
|
|||||||
@ -1,3 +1,5 @@
|
|||||||
|
import logging
|
||||||
|
|
||||||
from nonebot.adapters import Bot, Event
|
from nonebot.adapters import Bot, Event
|
||||||
from nonebot.exception import IgnoredException
|
from nonebot.exception import IgnoredException
|
||||||
from nonebot.matcher import Matcher
|
from nonebot.matcher import Matcher
|
||||||
@ -8,6 +10,7 @@ from nonebot_plugin_session import EventSession
|
|||||||
|
|
||||||
from zhenxun.configs.config import Config
|
from zhenxun.configs.config import Config
|
||||||
from zhenxun.models.ban_console import BanConsole
|
from zhenxun.models.ban_console import BanConsole
|
||||||
|
from zhenxun.models.group_console import GroupConsole
|
||||||
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.utils.utils import FreqLimiter
|
from zhenxun.utils.utils import FreqLimiter
|
||||||
@ -30,7 +33,7 @@ async def _(
|
|||||||
if plugin := matcher.plugin:
|
if plugin := matcher.plugin:
|
||||||
if metadata := plugin.metadata:
|
if metadata := plugin.metadata:
|
||||||
extra = metadata.extra
|
extra = metadata.extra
|
||||||
if extra.get("plugin_type") == PluginType.HIDDEN:
|
if extra.get("plugin_type") in [PluginType.HIDDEN, PluginType.DEPENDANT]:
|
||||||
return
|
return
|
||||||
user_id = session.id1
|
user_id = session.id1
|
||||||
group_id = session.id3 or session.id2
|
group_id = session.id3 or session.id2
|
||||||
@ -38,7 +41,12 @@ async def _(
|
|||||||
if user_id in bot.config.superusers:
|
if user_id in bot.config.superusers:
|
||||||
return
|
return
|
||||||
if await BanConsole.is_ban(None, group_id):
|
if await BanConsole.is_ban(None, group_id):
|
||||||
|
logging.debug("群组处于黑名单中...", "ban_hook")
|
||||||
raise IgnoredException("群组处于黑名单中...")
|
raise IgnoredException("群组处于黑名单中...")
|
||||||
|
if g := await GroupConsole.get_group(group_id):
|
||||||
|
if g.level < 0:
|
||||||
|
logging.debug("群黑名单, 群权限-1...", "ban_hook")
|
||||||
|
raise IgnoredException("群黑名单, 群权限-1..")
|
||||||
if user_id:
|
if user_id:
|
||||||
ban_result = Config.get_config("hook", "BAN_RESULT")
|
ban_result = Config.get_config("hook", "BAN_RESULT")
|
||||||
if user_id in bot.config.superusers:
|
if user_id in bot.config.superusers:
|
||||||
@ -59,7 +67,7 @@ async def _(
|
|||||||
time_str = f"{hours} 小时 {minute}分钟"
|
time_str = f"{hours} 小时 {minute}分钟"
|
||||||
else:
|
else:
|
||||||
time_str = f"{minute} 分钟"
|
time_str = f"{minute} 分钟"
|
||||||
if ban_result and _flmt.check(user_id):
|
if time != -1 and ban_result and _flmt.check(user_id):
|
||||||
_flmt.start_cd(user_id)
|
_flmt.start_cd(user_id)
|
||||||
await MessageUtils.build_message(
|
await MessageUtils.build_message(
|
||||||
[
|
[
|
||||||
@ -67,4 +75,5 @@ async def _(
|
|||||||
f"{ban_result}\n在..在 {time_str} 后才会理你喔",
|
f"{ban_result}\n在..在 {time_str} 后才会理你喔",
|
||||||
]
|
]
|
||||||
).send()
|
).send()
|
||||||
|
logging.debug("用户处于黑名单中...", "ban_hook")
|
||||||
raise IgnoredException("用户处于黑名单中...")
|
raise IgnoredException("用户处于黑名单中...")
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
import time
|
import time
|
||||||
from collections import defaultdict
|
from collections import defaultdict
|
||||||
|
|
||||||
|
from nonebot.adapters import Event
|
||||||
from nonebot.adapters.onebot.v11 import Bot
|
from nonebot.adapters.onebot.v11 import Bot
|
||||||
from nonebot.exception import IgnoredException
|
from nonebot.exception import IgnoredException
|
||||||
from nonebot.matcher import Matcher
|
from nonebot.matcher import Matcher
|
||||||
@ -63,16 +64,24 @@ _blmt = BanCheckLimiter(
|
|||||||
|
|
||||||
# 恶意触发命令检测
|
# 恶意触发命令检测
|
||||||
@run_preprocessor
|
@run_preprocessor
|
||||||
async def _(matcher: Matcher, bot: Bot, session: EventSession, state: T_State):
|
async def _(
|
||||||
|
matcher: Matcher, bot: Bot, session: EventSession, state: T_State, event: Event
|
||||||
|
):
|
||||||
module = None
|
module = None
|
||||||
if plugin := matcher.plugin:
|
if plugin := matcher.plugin:
|
||||||
module = plugin.module_name
|
module = plugin.module_name
|
||||||
if metadata := plugin.metadata:
|
if metadata := plugin.metadata:
|
||||||
extra = metadata.extra
|
extra = metadata.extra
|
||||||
if extra.get("plugin_type") in [PluginType.HIDDEN, PluginType.DEPENDANT]:
|
if extra.get("plugin_type") in [
|
||||||
|
PluginType.HIDDEN,
|
||||||
|
PluginType.DEPENDANT,
|
||||||
|
PluginType.ADMIN,
|
||||||
|
]:
|
||||||
return
|
return
|
||||||
else:
|
else:
|
||||||
return
|
return
|
||||||
|
if matcher.type == "notice":
|
||||||
|
return
|
||||||
user_id = session.id1
|
user_id = session.id1
|
||||||
group_id = session.id3 or session.id2
|
group_id = session.id3 or session.id2
|
||||||
malicious_ban_time = Config.get_config("hook", "MALICIOUS_BAN_TIME")
|
malicious_ban_time = Config.get_config("hook", "MALICIOUS_BAN_TIME")
|
||||||
|
|||||||
@ -231,17 +231,19 @@ async def _(bot: Bot, event: GroupIncreaseNoticeEvent | GroupMemberIncreaseEvent
|
|||||||
"""群欢迎消息"""
|
"""群欢迎消息"""
|
||||||
_flmt.start_cd(group_id)
|
_flmt.start_cd(group_id)
|
||||||
path = DATA_PATH / "welcome_message" / "qq" / f"{group_id}"
|
path = DATA_PATH / "welcome_message" / "qq" / f"{group_id}"
|
||||||
data = json.load((path / "text.json").open(encoding="utf-8"))
|
file = path / "text.json"
|
||||||
message = data["message"]
|
|
||||||
msg_split = re.split(r"\[image:\d+\]", message)
|
|
||||||
msg_list = []
|
msg_list = []
|
||||||
if data["at"]:
|
if file.exists():
|
||||||
msg_list.append(At(flag="user", target=user_id))
|
data = json.load((path / "text.json").open(encoding="utf-8"))
|
||||||
for i, text in enumerate(msg_split):
|
message = data["message"]
|
||||||
msg_list.append(text)
|
msg_split = re.split(r"\[image:\d+\]", message)
|
||||||
img_file = path / f"{i}.png"
|
if data["at"]:
|
||||||
if img_file.exists():
|
msg_list.append(At(flag="user", target=user_id))
|
||||||
msg_list.append(img_file)
|
for i, text in enumerate(msg_split):
|
||||||
|
msg_list.append(text)
|
||||||
|
img_file = path / f"{i}.png"
|
||||||
|
if img_file.exists():
|
||||||
|
msg_list.append(img_file)
|
||||||
if not TaskInfo.is_block("group_welcome", group_id):
|
if not TaskInfo.is_block("group_welcome", group_id):
|
||||||
logger.info(f"发送群欢迎消息...", "入群检测", group_id=group_id)
|
logger.info(f"发送群欢迎消息...", "入群检测", group_id=group_id)
|
||||||
if msg_list:
|
if msg_list:
|
||||||
|
|||||||
@ -429,7 +429,9 @@ async def _generate_html_card(
|
|||||||
"process": process,
|
"process": process,
|
||||||
"date": str(now.replace(microsecond=0)),
|
"date": str(now.replace(microsecond=0)),
|
||||||
}
|
}
|
||||||
|
_type = "sign"
|
||||||
if is_card_view:
|
if is_card_view:
|
||||||
|
_type = "view"
|
||||||
value_list = (
|
value_list = (
|
||||||
await SignUser.annotate()
|
await SignUser.annotate()
|
||||||
.order_by("-impression")
|
.order_by("-impression")
|
||||||
@ -451,5 +453,5 @@ async def _generate_html_card(
|
|||||||
)
|
)
|
||||||
image = BuildImage.open(pic)
|
image = BuildImage.open(pic)
|
||||||
date = now.date()
|
date = now.date()
|
||||||
await image.save(SIGN_TODAY_CARD_PATH / f"{user.user_id}_sign_{date}.png")
|
await image.save(SIGN_TODAY_CARD_PATH / f"{user.user_id}_{_type}_{date}.png")
|
||||||
return IMAGE_PATH / "sign" / "today_card" / f"{user.user_id}_sign_{date}.png"
|
return IMAGE_PATH / "sign" / "today_card" / f"{user.user_id}_{_type}_{date}.png"
|
||||||
|
|||||||
@ -117,7 +117,8 @@ class StatisticsManage:
|
|||||||
mat = BuildMat(MatType.BARH)
|
mat = BuildMat(MatType.BARH)
|
||||||
module2count = {x[0]: x[1] for x in data_list}
|
module2count = {x[0]: x[1] for x in data_list}
|
||||||
plugin_info = await PluginInfo.filter(
|
plugin_info = await PluginInfo.filter(
|
||||||
module__in=module2count.keys(), plugin_type=PluginType.NORMAL
|
module__in=module2count.keys(),
|
||||||
|
plugin_type=PluginType.NORMAL,
|
||||||
).all()
|
).all()
|
||||||
x_index = []
|
x_index = []
|
||||||
data = []
|
data = []
|
||||||
|
|||||||
@ -227,22 +227,17 @@ async def _(parma: HandleRequest) -> Result:
|
|||||||
if bot_id not in nonebot.get_bots():
|
if bot_id not in nonebot.get_bots():
|
||||||
return Result.warning_("指定Bot未连接...")
|
return Result.warning_("指定Bot未连接...")
|
||||||
if req := await FgRequest.get_or_none(id=parma.id):
|
if req := await FgRequest.get_or_none(id=parma.id):
|
||||||
if group := await GroupConsole.get_group(group_id=req.group_id):
|
if req.request_type == RequestType.GROUP:
|
||||||
group.group_flag = 1
|
if group := await GroupConsole.get_group(group_id=req.group_id):
|
||||||
await group.save(update_fields=["group_flag"])
|
group.group_flag = 1
|
||||||
else:
|
await group.save(update_fields=["group_flag"])
|
||||||
group_info = await bots[bot_id].get_group_info(
|
else:
|
||||||
group_id=req.group_id
|
await GroupConsole.update_or_create(
|
||||||
)
|
group_id=req.group_id,
|
||||||
await GroupConsole.update_or_create(
|
defaults={
|
||||||
group_id=str(group_info["group_id"]),
|
"group_flag": 1,
|
||||||
defaults={
|
},
|
||||||
"group_name": group_info["group_name"],
|
)
|
||||||
"max_member_count": group_info["max_member_count"],
|
|
||||||
"member_count": group_info["member_count"],
|
|
||||||
"group_flag": 1,
|
|
||||||
},
|
|
||||||
)
|
|
||||||
else:
|
else:
|
||||||
return Result.warning_("未找到此Id请求...")
|
return Result.warning_("未找到此Id请求...")
|
||||||
try:
|
try:
|
||||||
Loading…
Reference in New Issue
Block a user