import { buildTable } from '../../util/table.js'; import { authorizeGroup, getCommandArguments, splitArgs } from './command-utils.js'; // /listapp — Java ListAppCommand. Two tables (Apple / Google) of tracked apps. export function createListAppCommand(store) { return async (msg, sender) => { if (!(await authorizeGroup(msg.chat.id, store, sender))) return; if (splitArgs(getCommandArguments(msg.text)).length !== 0) { await sender.sendMessage(msg.chat.id, 'Invalid arguments'); return; } try { const group = await store.group.getGroup(msg.chat.id); const out = 'Apple Apps\n' + formatAppTable(group.appleApps) + '\nGoogle Apps\n' + formatAppTable(group.googleApps); await sender.sendMessage(msg.chat.id, out); } catch { await sender.sendMessage(msg.chat.id, 'Internal server error'); } }; } function formatAppTable(apps) { if (apps.length === 0) return '(none)\n'; const rows = apps.map((a, i) => [String(i + 1), a.appId, a.country]); return `
${buildTable(['#', 'AppId', 'Country'], rows)}
\n`; }