使用satori时维护一个有昵称的用户列表
get_plugin_session_enable 判断当前使用的适配器
This commit is contained in:
@ -3,6 +3,7 @@ from typing import Optional
|
||||
|
||||
import aiofiles
|
||||
import nonebot.plugin
|
||||
from nonebot.adapters import satori
|
||||
|
||||
from liteyuki.utils.base.data import LiteModel
|
||||
from liteyuki.utils.base.data_manager import GlobalPlugin, Group, User, group_db, plugin_db, user_db
|
||||
@ -95,16 +96,23 @@ def get_plugin_session_enable(event: T_MessageEvent, plugin_name: str) -> bool:
|
||||
Returns:
|
||||
bool: 插件当前状态
|
||||
"""
|
||||
if event.message_type == "group":
|
||||
group_id = str(event.group_id)
|
||||
if isinstance(event, satori.event.Event):
|
||||
if event.guild is not None:
|
||||
message_type = "group"
|
||||
else:
|
||||
message_type = "private"
|
||||
else:
|
||||
message_type = event.message_type
|
||||
if message_type == "group":
|
||||
group_id = str(event.guild.id if isinstance(event, satori.event.Event) else event.group_id)
|
||||
if group_id not in __group_data:
|
||||
group: Group = group_db.where_one(Group(), "group_id = ?", group_id, default=Group(group_id=group_id))
|
||||
__group_data[str(event.group_id)] = group
|
||||
__group_data[str(group_id)] = group
|
||||
|
||||
session = __group_data[group_id]
|
||||
else:
|
||||
# session: User = user_db.first(User(), "user_id = ?", event.user_id, default=User(user_id=str(event.user_id)))
|
||||
user_id = str(event.user_id)
|
||||
user_id = str(event.user.id if isinstance(event, satori.event.Event) else event.user_id)
|
||||
if user_id not in __user_data:
|
||||
user: User = user_db.where_one(User(), "user_id = ?", user_id, default=User(user_id=user_id))
|
||||
__user_data[user_id] = user
|
||||
@ -132,7 +140,8 @@ def set_plugin_session_enable(event: T_MessageEvent, plugin_name: str, enable: b
|
||||
|
||||
"""
|
||||
if event.message_type == "group":
|
||||
session = group_db.where_one(Group(), "group_id = ?", str(event.group_id), default=Group(group_id=str(event.group_id)))
|
||||
session = group_db.where_one(Group(), "group_id = ?", str(event.group_id),
|
||||
default=Group(group_id=str(event.group_id)))
|
||||
else:
|
||||
session = user_db.where_one(User(), "user_id = ?", str(event.user_id), default=User(user_id=str(event.user_id)))
|
||||
default_enable = get_plugin_default_enable(plugin_name)
|
||||
|
16
liteyuki/plugins/liteyuki_satori_user_info/__init__.py
Normal file
16
liteyuki/plugins/liteyuki_satori_user_info/__init__.py
Normal file
@ -0,0 +1,16 @@
|
||||
from nonebot.plugin import PluginMetadata
|
||||
from .auto_update import *
|
||||
|
||||
__author__ = "expliyh"
|
||||
__plugin_meta__ = PluginMetadata(
|
||||
name="Satori 用户数据自动更新(临时措施)",
|
||||
description="",
|
||||
usage="",
|
||||
type="application",
|
||||
homepage="https://github.com/snowykami/LiteyukiBot",
|
||||
extra={
|
||||
"liteyuki": True,
|
||||
"toggleable" : True,
|
||||
"default_enable" : True,
|
||||
}
|
||||
)
|
16
liteyuki/plugins/liteyuki_satori_user_info/auto_update.py
Normal file
16
liteyuki/plugins/liteyuki_satori_user_info/auto_update.py
Normal file
@ -0,0 +1,16 @@
|
||||
from liteyuki.utils import satori_utils
|
||||
from nonebot.message import event_preprocessor
|
||||
# from nonebot_plugin_alconna.typings import Event
|
||||
from liteyuki.utils.base.ly_typing import T_MessageEvent
|
||||
from liteyuki.utils import satori_utils
|
||||
from nonebot.adapters import satori
|
||||
from nonebot_plugin_alconna.typings import Event
|
||||
|
||||
|
||||
@event_preprocessor
|
||||
async def pre_handle(event: Event):
|
||||
print("UPDATE_USER")
|
||||
if isinstance(event, satori.MessageEvent):
|
||||
if event.user.name is not None:
|
||||
await satori_utils.user_infos.put(event.user)
|
||||
print(event.user)
|
@ -4,7 +4,7 @@ from nonebot import require
|
||||
from nonebot.message import event_postprocessor
|
||||
|
||||
from liteyuki.utils.base.data import Database, LiteModel
|
||||
from liteyuki.utils.base.ly_typing import v11
|
||||
from liteyuki.utils.base.ly_typing import v11, satori
|
||||
|
||||
from .common import MessageEventModel, msg_db
|
||||
|
||||
@ -36,3 +36,26 @@ async def onebot_v11_event_monitor(bot: v11.Bot, event: v11.MessageEvent):
|
||||
message_type=event.message_type,
|
||||
)
|
||||
msg_db.save(mem)
|
||||
|
||||
|
||||
async def satori_event_monitor(bot: satori.Bot, event: satori.MessageEvent):
|
||||
if event.guild is not None:
|
||||
event: satori.MessageEvent
|
||||
group_id = str(event.guild.id)
|
||||
else:
|
||||
group_id = ""
|
||||
|
||||
mem = MessageEventModel(
|
||||
time=int(time.time()),
|
||||
bot_id=bot.self_id,
|
||||
adapter="satori",
|
||||
group_id=group_id,
|
||||
user_id=str(event.user.id),
|
||||
|
||||
message_id=str(event.message.id),
|
||||
|
||||
message=event.message,
|
||||
message_text=event.message.content,
|
||||
message_type=event.message_type,
|
||||
)
|
||||
msg_db.save(mem)
|
||||
|
@ -52,7 +52,6 @@ def get_uni_set() -> set:
|
||||
async def pre_handle(event: Event):
|
||||
try:
|
||||
user_id = str(event.get_user_id())
|
||||
|
||||
except:
|
||||
return
|
||||
|
||||
|
Reference in New Issue
Block a user