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
fdb62f7226
commit
36047693aa
@ -265,6 +265,8 @@ async def _(bot: Bot, event: GroupDecreaseNoticeEvent | GroupMemberDecreaseEvent
|
|||||||
f"踢出了 {group_name}({group_id})\n"
|
f"踢出了 {group_name}({group_id})\n"
|
||||||
f"日期:{str(datetime.now()).split('.')[0]}",
|
f"日期:{str(datetime.now()).split('.')[0]}",
|
||||||
)
|
)
|
||||||
|
if group:
|
||||||
|
await group.delete()
|
||||||
return
|
return
|
||||||
if str(event.user_id) == bot.self_id:
|
if str(event.user_id) == bot.self_id:
|
||||||
"""踢出Bot"""
|
"""踢出Bot"""
|
||||||
|
|||||||
@ -18,7 +18,7 @@ from zhenxun.models.fg_request import FgRequest
|
|||||||
from zhenxun.models.friend_user import FriendUser
|
from zhenxun.models.friend_user import FriendUser
|
||||||
from zhenxun.models.group_console import GroupConsole
|
from zhenxun.models.group_console import GroupConsole
|
||||||
from zhenxun.services.log import logger
|
from zhenxun.services.log import logger
|
||||||
from zhenxun.utils.enum import PluginType, RequestType
|
from zhenxun.utils.enum import PluginType, RequestHandleType, RequestType
|
||||||
|
|
||||||
base_config = Config.get("invite_manager")
|
base_config = Config.get("invite_manager")
|
||||||
|
|
||||||
@ -95,6 +95,12 @@ async def _(bot: v12Bot | v11Bot, event: FriendRequestEvent, session: EventSessi
|
|||||||
user_id=str(user["user_id"]), user_name=user["nickname"]
|
user_id=str(user["user_id"]), user_name=user["nickname"]
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
|
# 旧请求全部设置为过期
|
||||||
|
await FgRequest.filter(
|
||||||
|
request_type=RequestType.FRIEND,
|
||||||
|
user_id=str(event.user_id),
|
||||||
|
handle_type__isnull=True,
|
||||||
|
).update(handle_type=RequestHandleType.EXPIRE)
|
||||||
await FgRequest.create(
|
await FgRequest.create(
|
||||||
request_type=RequestType.FRIEND,
|
request_type=RequestType.FRIEND,
|
||||||
platform=session.platform,
|
platform=session.platform,
|
||||||
@ -121,9 +127,6 @@ async def _(bot: v12Bot | v11Bot, event: GroupRequestEvent, session: EventSessio
|
|||||||
session=event.user_id,
|
session=event.user_id,
|
||||||
target=event.group_id,
|
target=event.group_id,
|
||||||
)
|
)
|
||||||
await bot.set_group_add_request(
|
|
||||||
flag=event.flag, sub_type="invite", approve=True
|
|
||||||
)
|
|
||||||
if isinstance(bot, v11Bot):
|
if isinstance(bot, v11Bot):
|
||||||
group_info = await bot.get_group_info(group_id=event.group_id)
|
group_info = await bot.get_group_info(group_id=event.group_id)
|
||||||
max_member_count = group_info["max_member_count"]
|
max_member_count = group_info["max_member_count"]
|
||||||
@ -141,6 +144,9 @@ async def _(bot: v12Bot | v11Bot, event: GroupRequestEvent, session: EventSessio
|
|||||||
"group_flag": 1,
|
"group_flag": 1,
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
await bot.set_group_add_request(
|
||||||
|
flag=event.flag, sub_type="invite", approve=True
|
||||||
|
)
|
||||||
except ActionFailed as e:
|
except ActionFailed as e:
|
||||||
logger.error(
|
logger.error(
|
||||||
"超级用户自动同意加入群聊发生错误",
|
"超级用户自动同意加入群聊发生错误",
|
||||||
@ -169,6 +175,13 @@ async def _(bot: v12Bot | v11Bot, event: GroupRequestEvent, session: EventSessio
|
|||||||
"请确保已经群主或群管理沟通过!\n"
|
"请确保已经群主或群管理沟通过!\n"
|
||||||
"等待管理员处理吧!",
|
"等待管理员处理吧!",
|
||||||
)
|
)
|
||||||
|
# 旧请求全部设置为过期
|
||||||
|
await FgRequest.filter(
|
||||||
|
request_type=RequestType.GROUP,
|
||||||
|
user_id=str(event.user_id),
|
||||||
|
group_id=str(event.group_id),
|
||||||
|
handle_type__isnull=True,
|
||||||
|
).update(handle_type=RequestHandleType.EXPIRE)
|
||||||
await FgRequest.create(
|
await FgRequest.create(
|
||||||
request_type=RequestType.GROUP,
|
request_type=RequestType.GROUP,
|
||||||
platform=session.platform,
|
platform=session.platform,
|
||||||
|
|||||||
@ -64,6 +64,7 @@ _req_matcher = on_alconna(
|
|||||||
permission=SUPERUSER,
|
permission=SUPERUSER,
|
||||||
priority=1,
|
priority=1,
|
||||||
rule=to_me(),
|
rule=to_me(),
|
||||||
|
block=True,
|
||||||
)
|
)
|
||||||
|
|
||||||
_read_matcher = on_alconna(
|
_read_matcher = on_alconna(
|
||||||
@ -81,6 +82,7 @@ _read_matcher = on_alconna(
|
|||||||
permission=SUPERUSER,
|
permission=SUPERUSER,
|
||||||
priority=1,
|
priority=1,
|
||||||
rule=to_me(),
|
rule=to_me(),
|
||||||
|
block=True,
|
||||||
)
|
)
|
||||||
|
|
||||||
_clear_matcher = on_alconna(
|
_clear_matcher = on_alconna(
|
||||||
@ -98,6 +100,7 @@ _clear_matcher = on_alconna(
|
|||||||
permission=SUPERUSER,
|
permission=SUPERUSER,
|
||||||
priority=1,
|
priority=1,
|
||||||
rule=to_me(),
|
rule=to_me(),
|
||||||
|
block=True,
|
||||||
)
|
)
|
||||||
|
|
||||||
reg_arg_list = [
|
reg_arg_list = [
|
||||||
@ -126,7 +129,6 @@ async def _(
|
|||||||
id: int,
|
id: int,
|
||||||
arparma: Arparma,
|
arparma: Arparma,
|
||||||
):
|
):
|
||||||
request_type = RequestType.FRIEND if handle.startswith("-f") else RequestType.GROUP
|
|
||||||
type_dict = {
|
type_dict = {
|
||||||
"a": RequestHandleType.APPROVE,
|
"a": RequestHandleType.APPROVE,
|
||||||
"r": RequestHandleType.REFUSED,
|
"r": RequestHandleType.REFUSED,
|
||||||
@ -135,11 +137,11 @@ async def _(
|
|||||||
handle_type = type_dict[handle[-1]]
|
handle_type = type_dict[handle[-1]]
|
||||||
try:
|
try:
|
||||||
if handle_type == RequestHandleType.APPROVE:
|
if handle_type == RequestHandleType.APPROVE:
|
||||||
await FgRequest.approve(bot, id, request_type)
|
await FgRequest.approve(bot, id)
|
||||||
if handle_type == RequestHandleType.REFUSED:
|
if handle_type == RequestHandleType.REFUSED:
|
||||||
await FgRequest.refused(bot, id, request_type)
|
await FgRequest.refused(bot, id)
|
||||||
if handle_type == RequestHandleType.IGNORE:
|
if handle_type == RequestHandleType.IGNORE:
|
||||||
await FgRequest.ignore(bot, id, request_type)
|
await FgRequest.ignore(id)
|
||||||
except NotFoundError:
|
except NotFoundError:
|
||||||
await Text("未发现此id的请求...").finish(reply=True)
|
await Text("未发现此id的请求...").finish(reply=True)
|
||||||
except Exception:
|
except Exception:
|
||||||
@ -158,8 +160,8 @@ async def _(
|
|||||||
if all_request := await FgRequest.filter(handle_type__isnull=True).all():
|
if all_request := await FgRequest.filter(handle_type__isnull=True).all():
|
||||||
req_list = list(all_request)
|
req_list = list(all_request)
|
||||||
req_list.reverse()
|
req_list.reverse()
|
||||||
friend_req = []
|
friend_req: list[FgRequest] = []
|
||||||
group_req = []
|
group_req: list[FgRequest] = []
|
||||||
for req in req_list:
|
for req in req_list:
|
||||||
if req.request_type == RequestType.FRIEND:
|
if req.request_type == RequestType.FRIEND:
|
||||||
friend_req.append(req)
|
friend_req.append(req)
|
||||||
@ -193,9 +195,14 @@ async def _(
|
|||||||
)
|
)
|
||||||
await background.paste(platform_icon, (46, 10))
|
await background.paste(platform_icon, (46, 10))
|
||||||
await background.text((150, 12), req.nickname)
|
await background.text((150, 12), req.nickname)
|
||||||
|
if i == 0:
|
||||||
comment_img = await BuildImage.build_text_image(
|
comment_img = await BuildImage.build_text_image(
|
||||||
f"对方留言:{req.comment}", size=15, font_color=(140, 140, 143)
|
f"对方留言:{req.comment}", size=15, font_color=(140, 140, 143)
|
||||||
)
|
)
|
||||||
|
else:
|
||||||
|
comment_img = await BuildImage.build_text_image(
|
||||||
|
f"群组:{req.group_id}", size=15, font_color=(140, 140, 143)
|
||||||
|
)
|
||||||
await background.paste(comment_img, (150, 65))
|
await background.paste(comment_img, (150, 65))
|
||||||
tag = await BuildImage.build_text_image(
|
tag = await BuildImage.build_text_image(
|
||||||
f"{req.platform}",
|
f"{req.platform}",
|
||||||
|
|||||||
@ -107,7 +107,7 @@ class FgRequest(Model):
|
|||||||
req = await cls.get_or_none(id=id)
|
req = await cls.get_or_none(id=id)
|
||||||
if not req:
|
if not req:
|
||||||
raise NotFoundError
|
raise NotFoundError
|
||||||
req.handle_type = RequestHandleType
|
req.handle_type = handle_type
|
||||||
await req.save(update_fields=["handle_type"])
|
await req.save(update_fields=["handle_type"])
|
||||||
if bot and handle_type not in [
|
if bot and handle_type not in [
|
||||||
RequestHandleType.IGNORE,
|
RequestHandleType.IGNORE,
|
||||||
|
|||||||
@ -73,6 +73,18 @@ class BuildImage:
|
|||||||
def size(self) -> Tuple[int, int]:
|
def size(self) -> Tuple[int, int]:
|
||||||
return self.markImg.size
|
return self.markImg.size
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def open(cls, path: str | Path) -> Self:
|
||||||
|
"""打开图片
|
||||||
|
|
||||||
|
参数:
|
||||||
|
path: 图片路径
|
||||||
|
|
||||||
|
返回:
|
||||||
|
Self: BuildImage
|
||||||
|
"""
|
||||||
|
return cls(background=path)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
async def build_text_image(
|
async def build_text_image(
|
||||||
cls,
|
cls,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user