Files

60 lines
2.2 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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)