mirror of
https://github.com/complexcaresolutions/telegram-media-bot.git
synced 2026-03-17 18:33:43 +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 {
|
export function registerHandlers(bot: Bot<BotContext>): void {
|
||||||
// /start command
|
// /start command — Begrüßung mit Anleitung
|
||||||
bot.command('start', async (ctx) => {
|
bot.command('start', async (ctx) => {
|
||||||
let tenantLine: string;
|
const text = await buildAnleitung();
|
||||||
if (ctx.session.selectedTenantId !== null) {
|
await ctx.reply(text, { parse_mode: 'MarkdownV2' });
|
||||||
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\\.`;
|
|
||||||
|
|
||||||
|
// /anleitung command — Anleitung erneut anzeigen
|
||||||
|
bot.command('anleitung', async (ctx) => {
|
||||||
|
const text = await buildAnleitung();
|
||||||
await ctx.reply(text, { parse_mode: 'MarkdownV2' });
|
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' });
|
await ctx.reply(text, { parse_mode: 'MarkdownV2' });
|
||||||
});
|
});
|
||||||
|
|
||||||
// /help command
|
// /help command — alias für /anleitung
|
||||||
bot.command('help', async (ctx) => {
|
bot.command('help', async (ctx) => {
|
||||||
const text =
|
const text = await buildAnleitung();
|
||||||
`\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\\.`;
|
|
||||||
|
|
||||||
await ctx.reply(text, { parse_mode: 'MarkdownV2' });
|
await ctx.reply(text, { parse_mode: 'MarkdownV2' });
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue