mirror of
https://github.com/langbot-app/LangBot.git
synced 2026-10-30 20:35:22 +08:00
60 lines
2.2 KiB
Python
60 lines
2.2 KiB
Python
# 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)
|