2021-11-23 21:44:59 +08:00
|
|
|
from asyncpg.exceptions import ConnectionDoesNotExistError, UndefinedColumnError
|
|
|
|
|
|
2023-02-18 18:46:54 +08:00
|
|
|
from models.group_info import GroupInfo
|
|
|
|
|
from services.log import logger
|
|
|
|
|
from utils.utils import get_bot, scheduler
|
|
|
|
|
|
|
|
|
|
from ._data_source import update_member_info
|
2021-11-23 21:44:59 +08:00
|
|
|
|
2023-02-18 18:46:54 +08:00
|
|
|
__zx_plugin_name__ = "管理方面定时任务 [Hidden]"
|
|
|
|
|
__plugin_usage__ = "无"
|
|
|
|
|
__plugin_des__ = "成员信息和管理权限的定时更新"
|
2021-11-23 21:44:59 +08:00
|
|
|
__plugin_version__ = 0.1
|
2023-02-18 18:46:54 +08:00
|
|
|
__plugin_author__ = "HibiKier"
|
2021-11-23 21:44:59 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
# 自动更新群员信息
|
|
|
|
|
@scheduler.scheduled_job(
|
|
|
|
|
"cron",
|
|
|
|
|
hour=2,
|
|
|
|
|
minute=1,
|
|
|
|
|
)
|
|
|
|
|
async def _():
|
|
|
|
|
bot = get_bot()
|
|
|
|
|
if bot:
|
|
|
|
|
gl = await bot.get_group_list()
|
|
|
|
|
gl = [g["group_id"] for g in gl]
|
|
|
|
|
for g in gl:
|
|
|
|
|
try:
|
|
|
|
|
await update_member_info(g)
|
|
|
|
|
logger.info(f"更新群组 g:{g} 成功")
|
|
|
|
|
except Exception as e:
|
|
|
|
|
logger.error(f"更新群组错误 g:{g} e:{e}")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# 快速更新群员信息以及管理员权限
|
|
|
|
|
@scheduler.scheduled_job(
|
|
|
|
|
"interval",
|
|
|
|
|
minutes=5,
|
|
|
|
|
)
|
|
|
|
|
async def _():
|
|
|
|
|
try:
|
|
|
|
|
bot = get_bot()
|
|
|
|
|
if bot:
|
|
|
|
|
gl = await bot.get_group_list()
|
|
|
|
|
gl = [g["group_id"] for g in gl]
|
2023-02-18 18:46:54 +08:00
|
|
|
all_group = [x.group_id for x in await GroupInfo.all()]
|
2021-11-23 21:44:59 +08:00
|
|
|
for g in gl:
|
|
|
|
|
if g not in all_group:
|
|
|
|
|
await update_member_info(g, False)
|
|
|
|
|
logger.info(f"快速更新群信息以及权限:{g}")
|
|
|
|
|
except (IndexError, ConnectionDoesNotExistError, UndefinedColumnError):
|
|
|
|
|
pass
|