Extend !rooms help: dedicated help subcommand with full NL guide, richer help strings on all subcommands; v2.3.1

This commit is contained in:
Eddy de Vink 2026-09-05 00:26:33 +02:00
commit c73b5e53c7
3 changed files with 49 additions and 6 deletions

View file

@ -1,6 +1,6 @@
maubot: 0.1.0
id: nl.roomsoverview
version: 2.3.0
version: 2.3.1
license: MIT
modules:
- roomsoverview

Binary file not shown.

View file

@ -530,16 +530,52 @@ class RoomsOverviewPlugin(Plugin):
)
await evt.respond(content)
async def _send_help(self, evt: MessageEvent) -> None:
"""Uitgebreide Nederlandstalige handleiding voor !rooms."""
help_text = (
"**!rooms** — overzicht van de room-index\n\n"
"Toont alle rooms als kaarten met naam, ledental, omschrijving "
"en een directe join-link. Ruimtes met een eigen icoon tonen die "
"naast de naam.\n\n"
"**Basis:**\n"
"* `!rooms` — toon de volledige lijst (bij veel rooms verdeeld "
"over meerdere berichten)\n\n"
"**Subcommando's (moderator of hoger vereist):**\n"
"* `!rooms add <room-id of #alias>` — voeg een room toe aan de index\n"
"* `!rooms edit <room-id of #alias> <veld>=<waarde>` — wijzig een "
"veld van een room\n"
"* `!rooms remove <room-id of #alias>` — verwijder een room uit de index\n"
"* `!rooms refresh` — controleer of rooms nog bestaan en vul "
"ontbrekende avatars aan\n\n"
"**Veld bij edit:** `name` (naam), `topic` (omschrijving) of "
"`alias` (adres). Een lege waarde wist het veld.\n\n"
"**Voorbeelden:**\n"
"* `!rooms add #algemeen:mtux.nl`\n"
"* `!rooms edit #algemeen:mtux.nl name=Algemeen Overleg`\n"
"* `!rooms edit #algemeen:mtux.nl topic=` (wist de omschrijving)\n"
"* `!rooms remove #algemeen:mtux.nl`\n\n"
"Alleen moderators (macht ≥ 50) mogen rooms toevoegen, wijzigen "
"of verwijderen. Iedereen kan de lijst bekijken."
)
await evt.respond(help_text, markdown=True)
@command.new(
name="rooms",
help="Toon de room-index; subcommand: add, edit, remove, refresh",
help="Toon de room-index als kaarten; subcommands: add, edit, remove, refresh, help",
require_subcommand=False,
)
async def handle_rooms(self, evt: MessageEvent) -> None:
await evt.mark_read()
await self._send_list(evt)
@handle_rooms.subcommand(name="add", help="Voeg een room toe (moderator+)")
@handle_rooms.subcommand(name="help", help="Toon deze handleiding")
async def rooms_help(self, evt: MessageEvent) -> None:
await self._send_help(evt)
@handle_rooms.subcommand(
name="add",
help="Voeg een room toe aan de index: !rooms add <room-id of #alias> (moderator+)",
)
@command.argument("room", pass_raw=True, required=True)
async def add_room(self, evt: MessageEvent, room: str) -> None:
if not await self._is_mod(evt.room_id, evt.sender):
@ -585,7 +621,8 @@ class RoomsOverviewPlugin(Plugin):
@handle_rooms.subcommand(
name="edit",
help="Wijzig naam/topic/alias van een room (moderator+)",
help="Wijzig een veld van een room: !rooms edit <room-id of #alias> "
"<name|topic|alias>=<waarde> (moderator+)",
)
@command.argument("args", pass_raw=True, required=True)
async def edit_room(self, evt: MessageEvent, args: str) -> None:
@ -635,7 +672,10 @@ class RoomsOverviewPlugin(Plugin):
f"Room bijgewerkt: **{label}** — {field_name} is nu `{shown}`."
)
@handle_rooms.subcommand(name="remove", help="Verwijder een room (moderator+)")
@handle_rooms.subcommand(
name="remove",
help="Verwijder een room uit de index: !rooms remove <room-id of #alias> (moderator+)",
)
@command.argument("room", pass_raw=True, required=True)
async def remove_room(self, evt: MessageEvent, room: str) -> None:
if not await self._is_mod(evt.room_id, evt.sender):
@ -653,7 +693,10 @@ class RoomsOverviewPlugin(Plugin):
else:
await evt.reply(f"Room `{room_id}` stond niet in de index.")
@handle_rooms.subcommand(name="refresh", help="Valideer de index en vul avatars aan (moderator+)")
@handle_rooms.subcommand(
name="refresh",
help="Controleer of rooms bestaan en vul ontbrekende avatars aan (moderator+)",
)
async def refresh_index(self, evt: MessageEvent) -> None:
if not await self._is_mod(evt.room_id, evt.sender):
await evt.reply("Geen permissie: moderator of hoger vereist.")