mirror of
https://github.com/zhenxun-org/zhenxun_bot.git
synced 2025-12-15 06:12:53 +08:00
69 lines
2.3 KiB
Python
69 lines
2.3 KiB
Python
|
|
import nonebot
|
||
|
|
from nonebot_plugin_apscheduler import scheduler
|
||
|
|
|
||
|
|
from zhenxun.models.friend_user import FriendUser
|
||
|
|
from zhenxun.models.group_console import GroupConsole
|
||
|
|
from zhenxun.services.log import logger
|
||
|
|
|
||
|
|
# TODO: 其他平台更新
|
||
|
|
|
||
|
|
|
||
|
|
# 自动更新群组信息
|
||
|
|
@scheduler.scheduled_job(
|
||
|
|
"cron",
|
||
|
|
hour=3,
|
||
|
|
minute=1,
|
||
|
|
)
|
||
|
|
async def _():
|
||
|
|
bots = nonebot.get_bots()
|
||
|
|
_used_group = []
|
||
|
|
for bot in bots.values():
|
||
|
|
try:
|
||
|
|
group_list = await bot.get_group_list()
|
||
|
|
gl = [g["group_id"] for g in group_list if g["group_id"] not in _used_group]
|
||
|
|
for g in gl:
|
||
|
|
_used_group.append(g)
|
||
|
|
group_info = await bot.get_group_info(group_id=g)
|
||
|
|
await GroupConsole.update_or_create(
|
||
|
|
group_id=str(group_info["group_id"]),
|
||
|
|
defaults={
|
||
|
|
"group_name": group_info["group_name"],
|
||
|
|
"max_member_count": group_info["max_member_count"],
|
||
|
|
"member_count": group_info["member_count"],
|
||
|
|
"group_flag": 1,
|
||
|
|
},
|
||
|
|
)
|
||
|
|
logger.debug("自动更新群组信息成功", "自动更新群组", group_id=g)
|
||
|
|
except Exception as e:
|
||
|
|
logger.error(f"Bot: {bot.self_id} 自动更新群组信息", e=e)
|
||
|
|
logger.info("自动更新群组成员信息成功...")
|
||
|
|
|
||
|
|
|
||
|
|
# 自动更新好友信息
|
||
|
|
@scheduler.scheduled_job(
|
||
|
|
"cron",
|
||
|
|
hour=3,
|
||
|
|
minute=1,
|
||
|
|
)
|
||
|
|
async def _():
|
||
|
|
bots = nonebot.get_bots()
|
||
|
|
for key in bots:
|
||
|
|
try:
|
||
|
|
bot = bots[key]
|
||
|
|
fl = await bot.get_friend_list()
|
||
|
|
for f in fl:
|
||
|
|
if FriendUser.exists(user_id=str(f["user_id"])):
|
||
|
|
await FriendUser.create(
|
||
|
|
user_id=str(f["user_id"]), user_name=f["nickname"]
|
||
|
|
)
|
||
|
|
logger.debug(
|
||
|
|
f"更新好友信息成功", "自动更新好友", session=f["user_id"]
|
||
|
|
)
|
||
|
|
else:
|
||
|
|
logger.debug(
|
||
|
|
f"好友信息已存在", "自动更新好友", session=f["user_id"]
|
||
|
|
)
|
||
|
|
except Exception as e:
|
||
|
|
logger.error(f"自动更新好友信息错误", "自动更新好友", e=e)
|
||
|
|
logger.info("自动更新好友信息成功...")
|