mirror of
https://github.com/complexcaresolutions/telegram-media-bot.git
synced 2026-03-17 16:13:42 +00:00
feat: add /anleitung command with tenant list, replace /start and /help with shared guide
This commit is contained in:
parent
132acf0ae7
commit
f93fe9a6a0
1 changed files with 39 additions and 32 deletions
|
|
@ -202,28 +202,46 @@ async function processAlbum(
|
|||
}
|
||||
}
|
||||
|
||||
async function buildAnleitung(): Promise<string> {
|
||||
let tenantList = 'Tenants konnten nicht geladen werden\\.';
|
||||
try {
|
||||
const tenants = await payloadClient.listTenants();
|
||||
tenantList = tenants
|
||||
.map((t) => ` \`${t.id}\` \\— ${escapeMarkdown(t.name)}`)
|
||||
.join('\n');
|
||||
} catch {
|
||||
log.warn('Could not load tenants for Anleitung');
|
||||
}
|
||||
|
||||
return (
|
||||
`📷 *Payload Media Upload Bot \\— Anleitung*\n\n` +
|
||||
`*So funktioniert der Upload:*\n` +
|
||||
`1️⃣ Tenant wählen: /tenant antippen und Website auswählen\n` +
|
||||
`2️⃣ Bild senden: Einfach ein Foto in den Chat schicken\n` +
|
||||
`3️⃣ Fertig\\! Das Bild erscheint in der CMS Media\\-Bibliothek\n\n` +
|
||||
`💡 *Tipps:*\n` +
|
||||
`• Für *Originalqualität* das Bild als *Dokument* senden \\(📎 Büroklammer\\-Symbol\\)\n` +
|
||||
`• Mehrere Bilder als Album senden \\= Bulk\\-Upload\n` +
|
||||
`• Bildunterschrift wird als Alt\\-Text übernommen\n\n` +
|
||||
`🏢 *Verfügbare Tenants:*\n${tenantList}\n\n` +
|
||||
`*Befehle:*\n` +
|
||||
`/tenant \\— Tenant wechseln\n` +
|
||||
`/list \\— Letzte 5 Uploads anzeigen\n` +
|
||||
`/status \\— Bot\\- und API\\-Status\n` +
|
||||
`/anleitung \\— Diese Anleitung erneut anzeigen`
|
||||
);
|
||||
}
|
||||
|
||||
export function registerHandlers(bot: Bot<BotContext>): void {
|
||||
// /start command
|
||||
// /start command — Begrüßung mit Anleitung
|
||||
bot.command('start', async (ctx) => {
|
||||
let tenantLine: string;
|
||||
if (ctx.session.selectedTenantId !== null) {
|
||||
const tenantName = await getTenantName(ctx.session.selectedTenantId);
|
||||
ctx.session.selectedTenantName = tenantName;
|
||||
tenantLine = `Aktueller Tenant: *${escapeMarkdown(tenantName)}*`;
|
||||
} else {
|
||||
tenantLine = `⚠️ *Kein Tenant gewählt* \\- nutze /tenant`;
|
||||
}
|
||||
|
||||
const text =
|
||||
`\ud83d\udcf7 *Payload Media Bot*\n\n` +
|
||||
`Willkommen\\! ${tenantLine}\n\n` +
|
||||
`*Befehle:*\n` +
|
||||
`/tenant \\- Tenant wechseln\n` +
|
||||
`/list \\- Letzte 5 Medien anzeigen\n` +
|
||||
`/status \\- Bot\\-Status\n` +
|
||||
`/help \\- Hilfe\n\n` +
|
||||
`Sende einfach ein Bild oder Dokument zum Hochladen\\.`;
|
||||
const text = await buildAnleitung();
|
||||
await ctx.reply(text, { parse_mode: 'MarkdownV2' });
|
||||
});
|
||||
|
||||
// /anleitung command — Anleitung erneut anzeigen
|
||||
bot.command('anleitung', async (ctx) => {
|
||||
const text = await buildAnleitung();
|
||||
await ctx.reply(text, { parse_mode: 'MarkdownV2' });
|
||||
});
|
||||
|
||||
|
|
@ -289,20 +307,9 @@ export function registerHandlers(bot: Bot<BotContext>): void {
|
|||
await ctx.reply(text, { parse_mode: 'MarkdownV2' });
|
||||
});
|
||||
|
||||
// /help command
|
||||
// /help command — alias für /anleitung
|
||||
bot.command('help', async (ctx) => {
|
||||
const text =
|
||||
`\u2753 *Hilfe*\n\n` +
|
||||
`Dieser Bot lädt Bilder in die Payload CMS Media\\-Kollektion hoch\\.\n\n` +
|
||||
`*So geht's:*\n` +
|
||||
`1\\. Wähle einen Tenant mit /tenant\n` +
|
||||
`2\\. Sende ein Bild oder mehrere als Album\n` +
|
||||
`3\\. Der Bot lädt sie automatisch hoch\n\n` +
|
||||
`*Unterstützte Formate:*\n` +
|
||||
`jpg, jpeg, png, webp, avif, gif, svg\n\n` +
|
||||
`\ud83d\udca1 *Tipp:* Sende Bilder als *Dokument* \\(Büroklammer\\-Symbol\\), ` +
|
||||
`um die Originalqualität beizubehalten\\. Telegram komprimiert Fotos sonst automatisch\\.`;
|
||||
|
||||
const text = await buildAnleitung();
|
||||
await ctx.reply(text, { parse_mode: 'MarkdownV2' });
|
||||
});
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue