Learner account management: - learner-add.sh: create accounts with SSH, plugin skeleton - learner-remove.sh: remove accounts with optional archive - plugin-skeleton template: starter maubot plugin Testing: - flake.nix: add checks output for pre-deploy validation - smoke-test.sh: post-deploy service verification Documentation: - learner-onboarding.md: VS Code Remote-SSH setup guide - learner-admin.md: account management procedures Skills: - code-review.md: multi-lens code review skill - orch, worklog: symlinks to shared skills
22 lines
660 B
Python
22 lines
660 B
Python
from maubot import Plugin, MessageEvent
|
|
from maubot.handlers import command
|
|
|
|
|
|
class Bot(Plugin):
|
|
"""Hello world bot for USERNAME"""
|
|
|
|
@command.new("hello")
|
|
async def hello_command(self, evt: MessageEvent) -> None:
|
|
"""Respond to !hello command"""
|
|
await evt.reply(f"Hello from USERNAME's bot!")
|
|
|
|
@command.new("ping")
|
|
async def ping_command(self, evt: MessageEvent) -> None:
|
|
"""Respond to !ping command"""
|
|
await evt.reply("Pong!")
|
|
|
|
@command.new("whoami")
|
|
async def whoami_command(self, evt: MessageEvent) -> None:
|
|
"""Tell the user who they are"""
|
|
await evt.reply(f"You are {evt.sender}")
|