mirror of
https://github.com/zhenxun-org/zhenxun_bot.git
synced 2025-12-15 14:22:55 +08:00
update invite_manager
This commit is contained in:
parent
33d1334174
commit
82902e0cde
@ -253,6 +253,7 @@ __Docker 最新版本由 [Sakuracio](https://github.com/Sakuracio) 提供__
|
|||||||
* 优化刷屏显示设置禁言时长显示,并改为分钟
|
* 优化刷屏显示设置禁言时长显示,并改为分钟
|
||||||
* 修复了多连开箱无法指定武器箱
|
* 修复了多连开箱无法指定武器箱
|
||||||
* 修复识番链接无法正确获取
|
* 修复识番链接无法正确获取
|
||||||
|
* 新增真寻入群时即刻刷新权限
|
||||||
|
|
||||||
### 2022/5/19
|
### 2022/5/19
|
||||||
|
|
||||||
|
|||||||
@ -232,10 +232,7 @@ async def update_member_info(group_id: int, remind_superuser: bool = False) -> b
|
|||||||
_exist_member_list = []
|
_exist_member_list = []
|
||||||
# try:
|
# try:
|
||||||
for user_info in _group_user_list:
|
for user_info in _group_user_list:
|
||||||
if user_info["card"] == "":
|
nickname = user_info["card"] or user_info["nickname"]
|
||||||
nickname = user_info["nickname"]
|
|
||||||
else:
|
|
||||||
nickname = user_info["card"]
|
|
||||||
async with db.transaction():
|
async with db.transaction():
|
||||||
# 更新权限
|
# 更新权限
|
||||||
if (
|
if (
|
||||||
@ -321,3 +318,4 @@ def set_group_bot_status(group_id: int, status: bool) -> str:
|
|||||||
# for x in group_manager.get_task_data():
|
# for x in group_manager.get_task_data():
|
||||||
# group_manager.close_group_task(group_id, x)
|
# group_manager.close_group_task(group_id, x)
|
||||||
return "那我先睡觉了..."
|
return "那我先睡觉了..."
|
||||||
|
|
||||||
|
|||||||
@ -2,6 +2,7 @@ from nonebot import on_command, on_notice
|
|||||||
from nonebot.adapters.onebot.v11 import Bot, GroupMessageEvent, GROUP, GroupIncreaseNoticeEvent
|
from nonebot.adapters.onebot.v11 import Bot, GroupMessageEvent, GROUP, GroupIncreaseNoticeEvent
|
||||||
from ._data_source import update_member_info
|
from ._data_source import update_member_info
|
||||||
|
|
||||||
|
|
||||||
__zx_plugin_name__ = "更新群组成员列表 [Admin]"
|
__zx_plugin_name__ = "更新群组成员列表 [Admin]"
|
||||||
__plugin_usage__ = """
|
__plugin_usage__ = """
|
||||||
usage:
|
usage:
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
from nonebot import on_notice, on_request
|
from nonebot import on_notice, on_request
|
||||||
from configs.path_config import IMAGE_PATH, DATA_PATH
|
from configs.path_config import IMAGE_PATH, DATA_PATH
|
||||||
|
from models.level_user import LevelUser
|
||||||
from utils.message_builder import image
|
from utils.message_builder import image
|
||||||
from models.group_member_info import GroupInfoUser
|
from models.group_member_info import GroupInfoUser
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
@ -96,6 +97,23 @@ async def _(bot: Bot, event: GroupIncreaseNoticeEvent):
|
|||||||
for plugin in data.keys():
|
for plugin in data.keys():
|
||||||
if not data[plugin]["default_status"]:
|
if not data[plugin]["default_status"]:
|
||||||
group_manager.block_plugin(plugin, event.group_id)
|
group_manager.block_plugin(plugin, event.group_id)
|
||||||
|
# 即刻刷新权限
|
||||||
|
for user_info in await bot.get_group_member_list(group_id=event.group_id):
|
||||||
|
if user_info["role"] in [
|
||||||
|
"owner",
|
||||||
|
"admin",
|
||||||
|
] and not await LevelUser.is_group_flag(
|
||||||
|
user_info["user_id"], event.group_id
|
||||||
|
):
|
||||||
|
await LevelUser.set_level(
|
||||||
|
user_info["user_id"],
|
||||||
|
user_info["group_id"],
|
||||||
|
Config.get_config("admin_bot_manage", "ADMIN_DEFAULT_AUTH"),
|
||||||
|
)
|
||||||
|
if str(user_info["user_id"]) in bot.config.superusers:
|
||||||
|
await LevelUser.set_level(
|
||||||
|
user_info["user_id"], user_info["group_id"], 9
|
||||||
|
)
|
||||||
else:
|
else:
|
||||||
join_time = datetime.now()
|
join_time = datetime.now()
|
||||||
user_info = await bot.get_group_member_info(
|
user_info = await bot.get_group_member_info(
|
||||||
@ -128,9 +146,7 @@ async def _(bot: Bot, event: GroupIncreaseNoticeEvent):
|
|||||||
msg = msg.replace("[at]", "")
|
msg = msg.replace("[at]", "")
|
||||||
at_flag = True
|
at_flag = True
|
||||||
if (DATA_PATH / "custom_welcome_msg" / f"{event.group_id}.jpg").exists():
|
if (DATA_PATH / "custom_welcome_msg" / f"{event.group_id}.jpg").exists():
|
||||||
img = image(
|
img = image(DATA_PATH / "custom_welcome_msg" / f"{event.group_id}.jpg")
|
||||||
DATA_PATH / "custom_welcome_msg" / f"{event.group_id}.jpg"
|
|
||||||
)
|
|
||||||
if msg or img:
|
if msg or img:
|
||||||
msg = msg.strip() + img
|
msg = msg.strip() + img
|
||||||
msg = "\n" + msg if at_flag else msg
|
msg = "\n" + msg if at_flag else msg
|
||||||
|
|||||||
@ -56,6 +56,9 @@ def _create_help_img(
|
|||||||
for matcher in _matchers:
|
for matcher in _matchers:
|
||||||
plugin_name = None
|
plugin_name = None
|
||||||
_plugin = nonebot.plugin.get_plugin(matcher.plugin_name)
|
_plugin = nonebot.plugin.get_plugin(matcher.plugin_name)
|
||||||
|
if not _plugin:
|
||||||
|
logger.warning(f"获取 功能:{matcher.plugin_name} 失败...")
|
||||||
|
continue
|
||||||
_module = _plugin.module
|
_module = _plugin.module
|
||||||
try:
|
try:
|
||||||
plugin_name = _module.__getattribute__("__zx_plugin_name__")
|
plugin_name = _module.__getattribute__("__zx_plugin_name__")
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
from nonebot import on_request, on_command
|
from nonebot import on_request, on_message
|
||||||
from nonebot.adapters.onebot.v11 import (
|
from nonebot.adapters.onebot.v11 import (
|
||||||
Bot,
|
Bot,
|
||||||
FriendRequestEvent,
|
FriendRequestEvent,
|
||||||
@ -25,7 +25,7 @@ __plugin_configs__ = {
|
|||||||
|
|
||||||
friend_req = on_request(priority=5, block=True)
|
friend_req = on_request(priority=5, block=True)
|
||||||
group_req = on_request(priority=5, block=True)
|
group_req = on_request(priority=5, block=True)
|
||||||
x = on_command("[[test_invite_manager]]", priority=999, block=False)
|
x = on_message(priority=999, block=False)
|
||||||
|
|
||||||
exists_data = {"private": {}, "group": {}}
|
exists_data = {"private": {}, "group": {}}
|
||||||
|
|
||||||
|
|||||||
@ -13,6 +13,7 @@ import time
|
|||||||
|
|
||||||
driver: Driver = nonebot.get_driver()
|
driver: Driver = nonebot.get_driver()
|
||||||
|
|
||||||
|
|
||||||
use = require("use")
|
use = require("use")
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -1,3 +1,5 @@
|
|||||||
|
from asyncpg import UniqueViolationError
|
||||||
|
|
||||||
from services.db_context import db
|
from services.db_context import db
|
||||||
|
|
||||||
|
|
||||||
@ -44,7 +46,8 @@ class LevelUser(db.Model):
|
|||||||
query = cls.query.where((cls.user_qq == user_qq) & (cls.group_id == group_id))
|
query = cls.query.where((cls.user_qq == user_qq) & (cls.group_id == group_id))
|
||||||
query = query.with_for_update()
|
query = query.with_for_update()
|
||||||
user = await query.gino.first()
|
user = await query.gino.first()
|
||||||
if user is None:
|
try:
|
||||||
|
if not user:
|
||||||
await cls.create(
|
await cls.create(
|
||||||
user_qq=user_qq,
|
user_qq=user_qq,
|
||||||
group_id=group_id,
|
group_id=group_id,
|
||||||
@ -55,6 +58,8 @@ class LevelUser(db.Model):
|
|||||||
else:
|
else:
|
||||||
await user.update(user_level=level, group_flag=group_flag).apply()
|
await user.update(user_level=level, group_flag=group_flag).apply()
|
||||||
return False
|
return False
|
||||||
|
except UniqueViolationError:
|
||||||
|
return False
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
async def delete_level(cls, user_qq: int, group_id: int) -> bool:
|
async def delete_level(cls, user_qq: int, group_id: int) -> bool:
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user