feat: switch message platform adapters to sdk

This commit is contained in:
Junyan Qin
2025-06-16 13:18:59 +08:00
parent 62b2884011
commit a177786063
51 changed files with 361 additions and 1763 deletions
+13 -9
View File
@@ -4,18 +4,18 @@ import asyncio
import traceback
import datetime
from pkg.platform.adapter import MessagePlatformAdapter
from pkg.platform.types import events as platform_events, message as platform_message
import langbot_plugin.api.definition.abstract.platform.adapter as abstract_platform_adapter
from libs.official_account_api.oaevent import OAEvent
from libs.official_account_api.api import OAClient
from libs.official_account_api.api import OAClientForLongerResponse
from .. import adapter
from ..types import entities as platform_entities
import langbot_plugin.api.entities.builtin.platform.entities as platform_entities
import langbot_plugin.api.entities.builtin.platform.message as platform_message
import langbot_plugin.api.entities.builtin.platform.events as platform_events
from ...command.errors import ParamNotEnoughError
from ..logger import EventLogger
class OAMessageConverter(adapter.MessageConverter):
class OAMessageConverter(abstract_platform_adapter.AbstractMessageConverter):
@staticmethod
async def yiri2target(message_chain: platform_message.MessageChain):
for msg in message_chain:
@@ -33,7 +33,7 @@ class OAMessageConverter(adapter.MessageConverter):
return chain
class OAEventConverter(adapter.EventConverter):
class OAEventConverter(abstract_platform_adapter.AbstractEventConverter):
@staticmethod
async def target2yiri(event: OAEvent):
if event.type == 'text':
@@ -55,7 +55,7 @@ class OAEventConverter(adapter.EventConverter):
return None
class OfficialAccountAdapter(adapter.MessagePlatformAdapter):
class OfficialAccountAdapter(abstract_platform_adapter.AbstractMessagePlatformAdapter):
bot: OAClient | OAClientForLongerResponse
bot_account_id: str
message_converter: OAMessageConverter = OAMessageConverter()
@@ -116,7 +116,9 @@ class OfficialAccountAdapter(adapter.MessagePlatformAdapter):
def register_listener(
self,
event_type: type,
callback: typing.Callable[[platform_events.Event, MessagePlatformAdapter], None],
callback: typing.Callable[
[platform_events.Event, abstract_platform_adapter.AbstractMessagePlatformAdapter], None
],
):
async def on_message(event: OAEvent):
self.bot_account_id = event.receiver_id
@@ -147,6 +149,8 @@ class OfficialAccountAdapter(adapter.MessagePlatformAdapter):
async def unregister_listener(
self,
event_type: type,
callback: typing.Callable[[platform_events.Event, MessagePlatformAdapter], None],
callback: typing.Callable[
[platform_events.Event, abstract_platform_adapter.AbstractMessagePlatformAdapter], None
],
):
return super().unregister_listener(event_type, callback)