# Auto generated by LangBot Plugin SDK. # Please refer to https://langbot.app/docs/en/plugin/dev/tutor.html for more details. from __future__ import annotations from typing import AsyncGenerator from langbot_plugin.api.definition.components.command.command import Command from langbot_plugin.api.entities.builtin.command.context import ExecuteContext, CommandReturn class ScheCommand(Command): """ Command to list all scheduled notifications for the current session. Usage: !sche """ def __init__(self): super().__init__() @self.subcommand( name="", help="List all scheduled notifications", usage="sche", aliases=["s"], ) async def list_notifications(self, context: ExecuteContext) -> AsyncGenerator[CommandReturn, None]: """List all scheduled notifications for current session""" # Get language setting config = self.plugin.get_config() language = config.get("language", "zh_Hans") # Get the full session identity from the trusted session: a target id # alone is shared by other bots and by the person/group namespaces. session = context.session session_key = self.plugin.session_key( session.bot_uuid, session.launcher_type.value, str(session.launcher_id) ) # Get scheduled events from plugin scheduled_events = await self.plugin.get_scheduled_events(session_key) if not scheduled_events or len(scheduled_events) == 0: if language == "en_US": reply = '[Notify] No scheduled notifications' else: reply = '[Notify] 没有计划中的提醒' else: if language == "en_US": reply = '[Notify] Scheduled notifications:\n' else: reply = '[Notify] 计划中的提醒:\n' index = 1 for event in scheduled_events: reply += f'#{index} {event["time"]}:{event["message"]}\n' index += 1 yield CommandReturn(text=reply)