2021-11-23 21:44:59 +08:00
|
|
|
|
from nonebot import on_command
|
2023-02-18 18:46:54 +08:00
|
|
|
|
from nonebot.adapters.onebot.v11 import Bot, MessageEvent
|
2021-11-23 21:44:59 +08:00
|
|
|
|
from nonebot.permission import SUPERUSER
|
|
|
|
|
|
from nonebot.rule import to_me
|
|
|
|
|
|
|
2023-02-18 18:46:54 +08:00
|
|
|
|
from models.friend_user import FriendUser
|
|
|
|
|
|
from models.group_info import GroupInfo
|
|
|
|
|
|
from services.log import logger
|
2021-11-23 21:44:59 +08:00
|
|
|
|
|
|
|
|
|
|
__zx_plugin_name__ = "更新群/好友信息 [Superuser]"
|
|
|
|
|
|
__plugin_usage__ = """
|
|
|
|
|
|
usage:
|
|
|
|
|
|
更新群/好友信息
|
|
|
|
|
|
指令:
|
|
|
|
|
|
更新群信息
|
|
|
|
|
|
更新好友信息
|
|
|
|
|
|
""".strip()
|
|
|
|
|
|
__plugin_des__ = "更新群/好友信息"
|
|
|
|
|
|
__plugin_cmd__ = [
|
|
|
|
|
|
"更新群信息",
|
|
|
|
|
|
"更新好友信息",
|
|
|
|
|
|
]
|
|
|
|
|
|
__plugin_version__ = 0.1
|
|
|
|
|
|
__plugin_author__ = "HibiKier"
|
|
|
|
|
|
|
|
|
|
|
|
update_group_info = on_command(
|
|
|
|
|
|
"更新群信息", rule=to_me(), permission=SUPERUSER, priority=1, block=True
|
|
|
|
|
|
)
|
|
|
|
|
|
update_friend_info = on_command(
|
|
|
|
|
|
"更新好友信息", rule=to_me(), permission=SUPERUSER, priority=1, block=True
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@update_group_info.handle()
|
2023-02-18 18:46:54 +08:00
|
|
|
|
async def _(bot: Bot, event: MessageEvent):
|
2021-11-23 21:44:59 +08:00
|
|
|
|
gl = await bot.get_group_list()
|
|
|
|
|
|
gl = [g["group_id"] for g in gl]
|
|
|
|
|
|
num = 0
|
|
|
|
|
|
for g in gl:
|
2023-02-18 18:46:54 +08:00
|
|
|
|
try:
|
|
|
|
|
|
group_info = await bot.get_group_info(group_id=g)
|
|
|
|
|
|
await GroupInfo.update_or_create(
|
|
|
|
|
|
group_id=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"],
|
|
|
|
|
|
},
|
|
|
|
|
|
)
|
2021-11-23 21:44:59 +08:00
|
|
|
|
num += 1
|
2023-02-18 18:46:54 +08:00
|
|
|
|
logger.debug(
|
|
|
|
|
|
"群聊信息更新成功", "更新群信息", event.user_id, target=group_info["group_id"]
|
|
|
|
|
|
)
|
|
|
|
|
|
except Exception as e:
|
|
|
|
|
|
logger.error(f"更新群聊信息失败", "更新群信息", event.user_id, target=g, e=e)
|
|
|
|
|
|
await update_group_info.send(f"成功更新了 {len(gl)} 个群的信息")
|
|
|
|
|
|
logger.info(f"更新群聊信息完成,共更新了 {len(gl)} 个群的信息", "更新群信息", event.user_id)
|
2021-11-23 21:44:59 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@update_friend_info.handle()
|
2023-02-18 18:46:54 +08:00
|
|
|
|
async def _(bot: Bot, event: MessageEvent):
|
2021-11-23 21:44:59 +08:00
|
|
|
|
num = 0
|
2023-02-18 18:46:54 +08:00
|
|
|
|
error_list = []
|
|
|
|
|
|
fl = await bot.get_friend_list()
|
2021-11-23 21:44:59 +08:00
|
|
|
|
for f in fl:
|
2023-02-18 18:46:54 +08:00
|
|
|
|
try:
|
|
|
|
|
|
await FriendUser.update_or_create(
|
|
|
|
|
|
user_id=f["user_id"], defaults={"nickname": f["nickname"]}
|
|
|
|
|
|
)
|
|
|
|
|
|
logger.debug(f"更新好友信息成功", "更新好友信息", event.user_id, target=f["user_id"])
|
2021-11-23 21:44:59 +08:00
|
|
|
|
num += 1
|
2023-02-18 18:46:54 +08:00
|
|
|
|
except Exception as e:
|
|
|
|
|
|
logger.error(f"更新好友信息失败", "更新好友信息", event.user_id, target=f["user_id"], e=e)
|
|
|
|
|
|
await update_friend_info.send(f"成功更新了 {num} 个好友的信息")
|
|
|
|
|
|
if error_list:
|
|
|
|
|
|
await update_friend_info.send(f"以下好友更新失败:\n" + "\n".join(error_list))
|
|
|
|
|
|
logger.info(f"更新好友信息完成,共更新了 {num} 个群的信息", "更新好友信息", event.user_id)
|