mirror of
https://github.com/LiteyukiStudio/LiteyukiBot.git
synced 2025-07-29 18:49:51 +00:00
⬇️
This commit is contained in:
@ -10,18 +10,23 @@ Copyright (C) 2020-2024 LiteyukiStudio. All Rights Reserved
|
||||
"""
|
||||
import asyncio
|
||||
|
||||
from nonebot import Bot, get_bot, on_message
|
||||
from nonebot import Bot, get_bot, on_message, get_driver
|
||||
from nonebot.plugin import PluginMetadata
|
||||
from nonebot.adapters.onebot.v11 import MessageEvent, Bot
|
||||
|
||||
from liteyuki import Channel
|
||||
from liteyuki.comm import get_channel
|
||||
from liteyuki.comm.storage import shared_memory
|
||||
from liteyuki.message.event import MessageEvent as LiteyukiMessageEvent
|
||||
|
||||
__plugin_meta__ = PluginMetadata(
|
||||
name="轻雪物流",
|
||||
name="轻雪push",
|
||||
description="把消息事件传递给轻雪框架进行处理",
|
||||
usage="用户无需使用",
|
||||
)
|
||||
|
||||
recv_channel = Channel[LiteyukiMessageEvent](name="event_to_nonebot")
|
||||
|
||||
|
||||
@on_message().handle()
|
||||
async def _(bot: Bot, event: MessageEvent):
|
||||
@ -34,15 +39,17 @@ async def _(bot: Bot, event: MessageEvent):
|
||||
user_id=str(event.user_id),
|
||||
session_id=str(event.user_id if event.message_type == "private" else event.group_id),
|
||||
session_type=event.message_type,
|
||||
receive_channel="event_to_nonebot"
|
||||
receive_channel=recv_channel,
|
||||
)
|
||||
shared_memory.publish("event_to_liteyuki", liteyuki_event)
|
||||
|
||||
|
||||
@shared_memory.on_subscriber_receive("event_to_nonebot")
|
||||
async def _(event: LiteyukiMessageEvent):
|
||||
bot: Bot = get_bot(event.bot_id)
|
||||
if event.message_type == "private":
|
||||
await bot.send_private_msg(user_id=int(event.session_id), message=event.data["message"])
|
||||
elif event.message_type == "group":
|
||||
await bot.send_group_msg(group_id=int(event.session_id), message=event.data["message"])
|
||||
@get_driver().on_bot_connect
|
||||
async def _():
|
||||
while True:
|
||||
event = await recv_channel.async_receive()
|
||||
bot: Bot = get_bot(event.bot_id) # type: ignore
|
||||
if event.message_type == "private":
|
||||
await bot.send_private_msg(user_id=int(event.session_id), message=event.data["message"])
|
||||
elif event.message_type == "group":
|
||||
await bot.send_group_msg(group_id=int(event.session_id), message=event.data["message"])
|
||||
|
Reference in New Issue
Block a user