From 9fe80eaf6409116c4d6ee4522968a7321be07190 Mon Sep 17 00:00:00 2001 From: TyperBody Date: Wed, 9 Sep 2026 23:37:51 +0800 Subject: [PATCH] newplatfrom --- src/langbot/pkg/platform/sources/espl.png | Bin 0 -> 121343 bytes src/langbot/pkg/platform/sources/espl.py | 587 +++++++++++++++++++++ src/langbot/pkg/platform/sources/espl.yaml | 83 +++ 3 files changed, 670 insertions(+) create mode 100644 src/langbot/pkg/platform/sources/espl.png create mode 100644 src/langbot/pkg/platform/sources/espl.py create mode 100644 src/langbot/pkg/platform/sources/espl.yaml diff --git a/src/langbot/pkg/platform/sources/espl.png b/src/langbot/pkg/platform/sources/espl.png new file mode 100644 index 0000000000000000000000000000000000000000..83a5554e3b49b25599b76aa44515efe0c98f92e2 GIT binary patch literal 121343 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

2_W_B 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

-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 Ve<-y!n=lE!wzzD2sm2WT;6HgtOTPdB literal 0 HcmV?d00001 diff --git a/src/langbot/pkg/platform/sources/espl.py b/src/langbot/pkg/platform/sources/espl.py new file mode 100644 index 000000000..e08ed3485 --- /dev/null +++ b/src/langbot/pkg/platform/sources/espl.py @@ -0,0 +1,587 @@ +"""ESPL V3 adapter — WebSocket server for E-SP-Line2's Adapter Gateway (接入器). + +LangBot acts as a server-mode WebSocket endpoint. E-SP-Line2's adapter (接入器) +in **client mode** connects to this endpoint (or a reverse proxy forwards it) +and exchanges e-commerce messages: + +* **Inbound** — E-SP-Line2 broadcasts ``message.received`` envelopes to every + connected adapter client. This adapter converts each envelope into a LangBot + ``FriendMessage`` / ``GroupMessage`` event (the ``conversation_id`` maps to + the LangBot launcher/session id) and fires it into the normal pipeline. +* **Outbound** — every ``reply_message`` / ``reply_message_chunk`` the pipeline + emits is converted into an ESPL v3 outbound ``message`` frame + (``command_type: send_text``) and sent back over the WebSocket that carries + the matching conversation. + +Design notes: + +* Listens on ``ws://:/ws`` (default ``ws://127.0.0.1:8000/ws``). + In E-SP-Line2 create a **client-mode** 接入器 with ``ws_url`` pointing here. +* Supports multiple simultaneous E-SP-Line2 connections. Each connection is + identified by its ``adapter_id`` (from the ``key``/path) so outbound replies + route back to the correct connection. +* Heartbeats: responds to ``ping`` frames with ``pong``; the E-SP-Line2 + gateway also sends server pings that we answer automatically via the + websockets library. +* The ``conversation_id`` from the inbound envelope is used as the LangBot + launcher id so each e-commerce conversation maps 1:1 to an isolated LangBot + session. Replies are routed back to the same ``conversation_id``. +* ``instance_id`` is captured from the inbound envelope and stashed on the + event's ``source_platform_object``. + +See docs/user-guide/adapter-gateway.md in the E-SP-Line2 repo for the full +ESPL v3 protocol reference. +""" + +from __future__ import annotations + +import asyncio +import json +import logging +import time +import typing +import uuid +from datetime import datetime + +import pydantic +import websockets + +import langbot_plugin.api.definition.abstract.platform.adapter as abstract_platform_adapter +import langbot_plugin.api.entities.builtin.platform.message as platform_message +import langbot_plugin.api.entities.builtin.platform.events as platform_events +import langbot_plugin.api.entities.builtin.platform.entities as platform_entities +import langbot_plugin.api.definition.abstract.platform.event_logger as abstract_platform_logger + +logger = logging.getLogger(__name__) + +# Default listen host / port (E-SP-Line2 client-mode 接入器 connects here). +_DEFAULT_HOST = '127.0.0.1' +_DEFAULT_PORT = 8000 +# Default heartbeat ping interval (seconds). +_DEFAULT_HEARTBEAT_INTERVAL = 30 +# Max inbound frame size (1MB, matches E-SP-Line2 gateway). +_MAX_MESSAGE_SIZE = 1 * 1024 * 1024 + + +class _EsplConnection: + """A single connected E-SP-Line2 adapter gateway client. + + Holds the WebSocket plus the routing info needed to reply. + """ + + def __init__(self, ws, adapter_id: str = ''): + self.ws = ws + self.adapter_id = adapter_id + self.send_lock = asyncio.Lock() + + async def send_frame(self, frame: dict) -> None: + async with self.send_lock: + await self.ws.send(json.dumps(frame, ensure_ascii=False)) + + +class EsplAdapter(abstract_platform_adapter.AbstractMessagePlatformAdapter): + """ESPL V3 WebSocket server adapter (LangBot is the server).""" + + bot_uuid: str = pydantic.Field(default='', exclude=True) + + listeners: dict[ + typing.Type[platform_events.Event], + typing.Callable[[platform_events.Event, abstract_platform_adapter.AbstractMessagePlatformAdapter], None], + ] = pydantic.Field(default_factory=dict, exclude=True) + + # WebSocket server state (excluded from pydantic serialization). + server: typing.Any = pydantic.Field(default=None, exclude=True) + running: bool = pydantic.Field(default=False, exclude=True) + connections: dict[str, '_EsplConnection'] = pydantic.Field(default_factory=dict, exclude=True) + inbound_tasks: set[asyncio.Task] = pydantic.Field(default_factory=set, exclude=True) + heartbeat_task: asyncio.Task | None = pydantic.Field(default=None, exclude=True) + + model_config = pydantic.ConfigDict(arbitrary_types_allowed=True) + + def __init__(self, config: dict, logger: abstract_platform_logger.AbstractEventLogger, **kwargs): + super().__init__(config=config, logger=logger, **kwargs) + self.bot_account_id = 'espl' + self.listeners = {} + self.server = None + self.running = False + self.connections = {} + self.inbound_tasks = set() + self.heartbeat_task = None + + # -- framework hooks ------------------------------------------------------ + + def set_bot_uuid(self, bot_uuid: str) -> None: + """Called by the bot manager so the adapter knows its own bot uuid.""" + object.__setattr__(self, 'bot_uuid', bot_uuid) + + def get_launcher_id(self, event: platform_events.MessageEvent) -> str: + """Map an inbound event to a LangBot launcher id. + + We use the e-commerce ``conversation_id`` (stashed on the sender id at + inbound time) so each conversation maps 1:1 to an isolated LangBot + session. + """ + if isinstance(event, platform_events.GroupMessage): + return str(event.sender.group.id) + return str(event.sender.id) + + def register_listener( + self, + event_type: typing.Type[platform_events.Event], + func: typing.Callable[ + [platform_events.Event, abstract_platform_adapter.AbstractMessagePlatformAdapter], typing.Awaitable[None] + ], + ): + self.listeners[event_type] = func + + def unregister_listener( + self, + event_type: typing.Type[platform_events.Event], + func: typing.Callable[ + [platform_events.Event, abstract_platform_adapter.AbstractMessagePlatformAdapter], typing.Awaitable[None] + ], + ): + self.listeners.pop(event_type, None) + + async def is_muted(self, group_id: int) -> bool: + return False + + async def is_stream_output_supported(self) -> bool: + return False + + # -- server lifecycle ----------------------------------------------------- + + async def run_async(self): + """Start the WebSocket server and serve forever.""" + host = str(self.config.get('host', _DEFAULT_HOST)) + port = int(self.config.get('port', _DEFAULT_PORT)) + self.running = True + + self.server = await websockets.serve( + self._handle_connection, + host, + port, + ping_interval=None, # we manage heartbeats ourselves + max_size=_MAX_MESSAGE_SIZE, + ) + await self.logger.info(f'ESPL adapter listening on ws://{host}:{port}/ws') + + self.heartbeat_task = asyncio.create_task(self._heartbeat_loop()) + + try: + # Serve forever; run_async is expected to stay alive. + while self.running: + await asyncio.sleep(3600) + except asyncio.CancelledError: + raise + finally: + if self.server is not None: + self.server.close() + await self.server.wait_closed() + self.server = None + + async def kill(self) -> bool: + """Stop the server and close all connections.""" + self.running = False + if self.heartbeat_task is not None and not self.heartbeat_task.done(): + self.heartbeat_task.cancel() + self.heartbeat_task = None + for task in list(self.inbound_tasks): + if not task.done(): + task.cancel() + self.inbound_tasks.clear() + for conn in list(self.connections.values()): + try: + await conn.ws.close() + except Exception: + pass + self.connections.clear() + return True + + # -- connection handler --------------------------------------------------- + + async def _handle_connection(self, ws): + """Handle a new WebSocket connection from an E-SP-Line2 gateway client. + + The E-SP-Line2 client-mode adapter connects with ``?key=`` in the + query string. If the adapter has been configured with a non-empty + ``key``, this method **rejects** connections that do not present a + matching key (close code 1008 — policy violation). + + Note: websockets >= 14 removed the ``path`` / ``query_string`` + attributes from the connection object. The request path (including + the query string) is available via ``ws.request.path``. + """ + # In websockets >= 14 the request path (with query string) lives on + # ``ws.request.path`` (e.g. ``/ws?key=abc``). Fall back to the legacy + # ``ws.path`` / ``ws.query_string`` attributes for older versions. + request = getattr(ws, 'request', None) + if request is not None: + raw_path = str(getattr(request, 'path', '') or '') + else: + raw_path = str(getattr(ws, 'path', '') or '') + path, _, query = raw_path.partition('?') + + # ── Key authentication ────────────────────────────────────────── + expected_key = str(self.config.get('key') or '') + provided_key = self._extract_key(query) + if expected_key: + if not provided_key: + await self.logger.warning( + f'ESPL adapter key missing; closing connection from {raw_path}' + ) + await ws.close(1008, 'Unauthorized: key missing') + return + if provided_key != expected_key: + await self.logger.warning( + f'ESPL adapter key mismatch; closing connection from {raw_path}' + ) + await ws.close(1008, 'Unauthorized: invalid key') + return + + # ── Identify the connection for routing ───────────────────────── + adapter_id = self._extract_adapter_id(path, query) + + conn = _EsplConnection(ws, adapter_id=adapter_id) + conn_key = adapter_id or ('conn_' + uuid.uuid4().hex) + self.connections[conn_key] = conn + + await self.logger.info( + f'ESPL adapter client connected: adapter_id={adapter_id or "(client-mode, no adapter-id in path)"} ' + f'path={raw_path}' + ) + + # ── Send the connected handshake ──────────────────────────────── + try: + await conn.send_frame( + { + 'type': 'connected', + 'id': uuid.uuid4().hex, + 'timestamp': int(time.time() * 1000), + 'adapter_id': adapter_id or '', + 'gateway_version': 'v3', + 'session_id': conn_key, + 'adapter_name': self.config.get('name', 'ESPL'), + 'platform': self.config.get('platform', ''), + } + ) + except Exception as e: + await self.logger.warning(f'ESPL adapter handshake failed: {e}') + self.connections.pop(conn_key, None) + return + + # ── Read loop ─────────────────────────────────────────────────── + try: + async for raw in ws: + try: + frame = json.loads(raw) + except (json.JSONDecodeError, ValueError): + await self.logger.warning(f'ESPL adapter received non-JSON frame: {raw[:200]}') + continue + await self._handle_frame(conn, frame) + except websockets.exceptions.ConnectionClosed as e: + await self.logger.info(f'ESPL adapter client disconnected: {e.code} {e.reason}') + except asyncio.CancelledError: + raise + except Exception as e: + await self.logger.warning(f'ESPL adapter connection error: {e}') + finally: + self.connections.pop(conn_key, None) + + @staticmethod + def _extract_adapter_id(path: str, query: str) -> str: + """Extract the adapter id from the connection path. + + E-SP-Line2 client mode may connect to /ws/adapter-gateway/?key=... + or a custom path /custom?key=... The adapter id is extracted from the + path segment, NOT from the key query parameter. + """ + path_part = path.split('?', 1)[0] + if '/ws/adapter-gateway/' in path_part: + maybe_id = path_part.rsplit('/', 1)[-1] + if maybe_id and maybe_id not in ('ws', 'adapter-gateway'): + return maybe_id + # No adapter id in the path; return empty string (anonymous connection). + return '' + + @staticmethod + def _extract_key(query: str) -> str: + """Extract the ``key`` query parameter from the WebSocket query string. + + E-SP-Line2 client-mode adapter passes the access key as + ``?key=`` in the WebSocket URL (see ``client_connector.go`` + line 172-177). + """ + for pair in query.split('&'): + if '=' in pair: + k, v = pair.split('=', 1) + if k == 'key': + return v + return '' + + async def _handle_frame(self, conn: _EsplConnection, frame: dict) -> None: + """Handle a single inbound frame from an E-SP-Line2 gateway client.""" + msg_type = frame.get('type', '') + if msg_type == 'ping': + await conn.send_frame({'type': 'pong', 'timestamp': int(time.time() * 1000)}) + return + if msg_type == 'pong': + return + if msg_type == 'ack': + return + if msg_type == 'error': + await self.logger.warning(f'ESPL adapter gateway error: {frame.get("code")} {frame.get("message")}') + return + + # Inbound message envelope (message.received). + if frame.get('event_type') == 'message.received': + await self._handle_inbound_message(conn, frame) + return + + await self.logger.debug(f'ESPL adapter unhandled frame type: {msg_type}') + + def _start_inbound_task(self, coro) -> asyncio.Task | None: + self.inbound_tasks = {task for task in self.inbound_tasks if not task.done()} + task = asyncio.create_task(coro) + self.inbound_tasks.add(task) + + def task_done(done_task: asyncio.Task) -> None: + self.inbound_tasks.discard(done_task) + if not done_task.cancelled(): + done_task.exception() + + task.add_done_callback(task_done) + return task + + async def _handle_inbound_message(self, conn: _EsplConnection, envelope: dict) -> None: + """Convert a message.received envelope into a LangBot event and fire it.""" + payload = envelope.get('payload') or {} + if not isinstance(payload, dict): + await self.logger.warning('ESPL adapter inbound payload is not an object') + return + + conversation_id = str(payload.get('conversation_id') or '') + sender_id = str(payload.get('sender_id') or '') + sender_name = str(payload.get('sender_name') or 'User') + message_content = str(payload.get('message_content') or '') + instance_id = str(payload.get('instance') or payload.get('instance_id') or '') + platform = str(payload.get('platform_id') or envelope.get('platform') or '') + + if not conversation_id: + await self.logger.warning('ESPL adapter inbound message missing conversation_id') + return + + chain = self._build_message_chain(payload.get('message_chain'), message_content) + + # Stash routing context (instance_id, conversation_id, conn_key) on the + # event so outbound replies route back to the correct connection. + source_platform_object = { + 'instance_id': instance_id, + 'conversation_id': conversation_id, + 'platform': platform, + 'sender_id': sender_id, + '_conn': conn, + } + + session_type = str(payload.get('session_type') or 'person') + if session_type == 'group': + group = platform_entities.Group( + id=conversation_id, + name=str(payload.get('group_name') or conversation_id), + permission=platform_entities.Permission.Member, + ) + sender = platform_entities.GroupMember( + id=sender_id or conversation_id, + member_name=sender_name, + group=group, + permission=platform_entities.Permission.Member, + ) + event = platform_events.GroupMessage( + sender=sender, + message_chain=chain, + time=datetime.now().timestamp(), + source_platform_object=source_platform_object, + ) + else: + sender = platform_entities.Friend( + id=conversation_id, + nickname=sender_name, + remark=sender_name, + ) + event = platform_events.FriendMessage( + sender=sender, + message_chain=chain, + time=datetime.now().timestamp(), + source_platform_object=source_platform_object, + ) + + listener = self.listeners.get(type(event)) + if listener is None: + await self.logger.warning(f'ESPL adapter no listener for {type(event).__name__}') + return + + await self.logger.info( + f'ESPL adapter inbound: conversation={conversation_id} sender={sender_name} ' + f'content={message_content[:100]}' + ) + self._start_inbound_task(listener(event, self)) + + def _build_message_chain( + self, + message_chain: typing.Any, + fallback_text: str, + ) -> platform_message.MessageChain: + """Convert an ESPL message_chain into a LangBot MessageChain.""" + components: list[platform_message.MessageComponent] = [] + if isinstance(message_chain, list): + for elem in message_chain: + if not isinstance(elem, dict): + continue + elem_type = elem.get('type', '') + content = elem.get('content') + if elem_type == 'text': + text = '' + if isinstance(content, dict): + text = str(content.get('text', '')) + elif isinstance(content, str): + text = content + else: + text = str(elem.get('text', '')) + if text: + components.append(platform_message.Plain(text=text)) + elif elem_type == 'image': + url = '' + if isinstance(content, dict): + url = str(content.get('url', '')) + elif isinstance(content, str): + url = content + else: + url = str(elem.get('url', '')) + if url: + components.append(platform_message.Image(url=url)) + elif elem_type in ('item', 'product', 'goods'): + # E-commerce product card (e.g. 闲鱼 itemInfo). + # Render as a plain-text description so the product info + # (title/price) is not dropped downstream. + title = '' + price = '' + if isinstance(content, dict): + title = str(content.get('title') or '') + price = str(content.get('price') or '') + elif isinstance(content, str): + title = content + else: + title = str(elem.get('title') or '') + price = str(elem.get('price') or '') + product_text = title + if price: + product_text = f'{title} [价格: {price}]' if title else f'价格: {price}' + if product_text: + components.append(platform_message.Plain(text=product_text)) + if not components and fallback_text: + components.append(platform_message.Plain(text=fallback_text)) + return platform_message.MessageChain(components) + + # -- outbound ------------------------------------------------------------- + + async def send_message(self, target_type: str, target_id: str, message: platform_message.MessageChain) -> dict: + """Proactively push a message to a conversation (target_id == conversation_id).""" + return await self._emit_outbound(target_id, message) + + async def reply_message( + self, + message_source: platform_events.MessageEvent, + message: platform_message.MessageChain, + quote_origin: bool = False, + ) -> dict: + return await self._emit_outbound_from_event(message_source, message) + + async def reply_message_chunk( + self, + message_source: platform_events.MessageEvent, + bot_message, + message: platform_message.MessageChain, + quote_origin: bool = False, + is_final: bool = False, + ) -> dict: + # ESPL v3 has no streaming; send the whole chunk as a final message. + return await self._emit_outbound_from_event(message_source, message) + + async def _emit_outbound_from_event( + self, + message_source: platform_events.MessageEvent, + message: platform_message.MessageChain, + ) -> dict: + """Send a reply, routing back to the connection captured at inbound.""" + source = getattr(message_source, 'source_platform_object', None) or {} + conn = source.get('_conn') + conversation_id = str(source.get('conversation_id') or '') + instance_id = str(source.get('instance_id') or '') + sender_id = str(source.get('sender_id') or '') + if not conversation_id: + conversation_id = str(self.get_launcher_id(message_source)) + return await self._emit_outbound( + conversation_id, + message, + instance_id=instance_id, + sender_id=sender_id, + conn=conn, + ) + + async def _emit_outbound( + self, + conversation_id: str, + message: platform_message.MessageChain, + instance_id: str = '', + sender_id: str = '', + conn: _EsplConnection | None = None, + ) -> dict: + """Build and send an ESPL v3 outbound message frame.""" + if conn is None: + # Try to find a connection for this conversation by scanning. + if not self.connections: + await self.logger.warning('ESPL adapter no connections; dropping outbound message') + return {} + conn = next(iter(self.connections.values())) + + # Convert the LangBot message chain to ESPL chain elements. + chain = [] + for component in message: + if isinstance(component, platform_message.Plain): + chain.append({'type': 'text', 'content': {'text': component.text}}) + elif isinstance(component, platform_message.Image): + chain.append({'type': 'image', 'content': {'url': component.url or ''}}) + + frame = { + 'type': 'message', + 'id': 'out_' + uuid.uuid4().hex, + 'timestamp': int(time.time() * 1000), + 'payload': { + 'instance_id': instance_id, + 'command_type': 'send_text', + 'conversation_id': conversation_id, + 'target_id': sender_id or conversation_id, + 'sender_id': sender_id, + 'message_chain': chain, + }, + } + try: + await conn.send_frame(frame) + except Exception as e: + await self.logger.error(f'ESPL adapter failed to send outbound: {e}') + return {} + await self.logger.info(f'ESPL adapter outbound: conversation={conversation_id} chain={chain}') + return frame + + # -- heartbeat ------------------------------------------------------------ + + async def _heartbeat_loop(self) -> None: + """Periodically ping all connected clients to keep connections alive.""" + interval = int(self.config.get('heartbeat_interval', _DEFAULT_HEARTBEAT_INTERVAL)) + while self.running: + await asyncio.sleep(interval) + for conn in list(self.connections.values()): + try: + await conn.send_frame({'type': 'ping', 'timestamp': int(time.time() * 1000)}) + except Exception as e: + await self.logger.warning(f'ESPL adapter heartbeat to client failed: {e}') diff --git a/src/langbot/pkg/platform/sources/espl.yaml b/src/langbot/pkg/platform/sources/espl.yaml new file mode 100644 index 000000000..5ccbc5311 --- /dev/null +++ b/src/langbot/pkg/platform/sources/espl.yaml @@ -0,0 +1,83 @@ +apiVersion: v1 +kind: MessagePlatformAdapter +metadata: + name: espl + label: + en_US: ESPL V3 + zh_Hans: ESPL V3 + zh_Hant: ESPL V3 + ja_JP: ESPL V3 + description: + en_US: "LangBot acts as a WebSocket server. E-SP-Line2 creates a client-mode adapter (接入器) pointing its ws_url to this endpoint. Receives e-commerce messages (Taobao / Xianyu) as inbound events and sends AI replies back to the platform." + zh_Hans: "LangBot 作为 WebSocket 服务端。在 E-SP-Line2 中创建客户端模式接入器,将 ws_url 指向本端点即可接入。接收电商平台(淘宝/闲鱼)消息作为入站事件,并将 AI 回复发回平台。" + zh_Hant: "LangBot 作為 WebSocket 服務端。在 E-SP-Line2 中建立用戶端模式接入器,將 ws_url 指向本端點即可接入。接收電商平台(淘寶/閒魚)訊息作為入站事件,並將 AI 回覆發回平台。" + ja_JP: "LangBot が WebSocket サーバーとして動作します。E-SP-Line2 でクライアントモードのアダプター(接入器)を作成し、ws_url をこのエンドポイントに向けます。EC プラットフォーム(Taobao / Xianyu)のメッセージをインバウンドイベントとして受信し、AI 返信をプラットフォームに送り返します。" + icon: espl.png +spec: + categories: + - global + help_links: + zh: https://docs.langbot.app/zh/platforms/espl + en: https://docs.langbot.app/en/platforms/espl + ja: https://docs.langbot.app/ja/platforms/espl + config: + - name: host + label: + en_US: Listen Host + zh_Hans: 监听主机 + zh_Hant: 監聽主機 + ja_JP: リッスンホスト + description: + en_US: "Host to bind the WebSocket server. Set 0.0.0.0 when E-SP-Line2 is on another machine." + zh_Hans: "WebSocket 服务端绑定的主机。E-SP-Line2 在其他机器时设为 0.0.0.0。" + zh_Hant: "WebSocket 服務端綁定的主機。E-SP-Line2 在其他機器時設為 0.0.0.0。" + ja_JP: "WebSocket サーバーをバインドするホスト。E-SP-Line2 が別マシンの場合は 0.0.0.0 を設定します。" + type: string + required: true + default: "127.0.0.1" + - name: port + label: + en_US: Listen Port + zh_Hans: 监听端口 + zh_Hant: 監聽連接埠 + ja_JP: リッスンポート + description: + en_US: "Port to bind the WebSocket server. E-SP-Line2 client-mode adapter connects to ws://:/ws." + zh_Hans: "WebSocket 服务端绑定的端口。E-SP-Line2 客户端模式接入器连接 ws://:/ws。" + zh_Hant: "WebSocket 服務端綁定的連接埠。E-SP-Line2 用戶端模式接入器連接 ws://:/ws。" + ja_JP: "WebSocket サーバーをバインドするポート。E-SP-Line2 クライアントモードアダプターは ws://:/ws に接続します。" + type: integer + required: false + default: 8000 + - name: key + label: + en_US: Access Key + zh_Hans: 访问密钥 + zh_Hant: 訪問密鑰 + ja_JP: アクセスキー + description: + en_US: "Access key for authentication. E-SP-Line2 client-mode adapter passes this key as ?key= in the WebSocket URL. Leave empty to disable key validation (not recommended)." + zh_Hans: "访问密钥用于认证。E-SP-Line2 客户端模式接入器在 WebSocket URL 中携带 ?key= 传递此密钥。留空表示不验证密钥(不推荐)。" + zh_Hant: "訪問密鑰用於認證。E-SP-Line2 用戶端模式接入器在 WebSocket URL 中攜帶 ?key= 傳遞此密鑰。留空表示不驗證密鑰(不推薦)。" + ja_JP: "認証用のアクセスキー。E-SP-Line2 クライアントモードアダプターは WebSocket URL に ?key= としてこのキーを渡します。空の場合はキー検証を無効にします(非推奨)。" + type: string + required: false + default: "" + - name: heartbeat_interval + label: + en_US: Heartbeat Interval (seconds) + zh_Hans: 心跳间隔(秒) + zh_Hant: 心跳間隔(秒) + ja_JP: ハートビート間隔(秒) + description: + en_US: "How often to ping connected clients to keep the connection alive." + zh_Hans: "发送 ping 帧保持连接的间隔。" + zh_Hant: "發送 ping 幀保持連線的間隔。" + ja_JP: "接続を維持するためにクライアントに ping を送信する間隔。" + type: integer + required: false + default: 30 +execution: + python: + path: ./espl.py + attr: EsplAdapter