-
Notifications
You must be signed in to change notification settings - Fork 0
/
initBot.ts
30 lines (21 loc) · 937 Bytes
/
initBot.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import { Bot } from "./deps.ts";
import publishQuote from "./publishQuote.ts";
import commands from "./commands/commands.ts";
import { ADMINS_IDS, BOT_TOKEN } from "./env.ts";
import callbacks from "./callbacks/callbacks.ts";
const bot = new Bot(BOT_TOKEN);
bot.catch = console.error;
export default bot;
commands(bot, "public");
bot.on("message", async (ctx, next) => {
const chatID = ctx.chat.id;
// Al administrador se le dejará tener acceso a los demás comandos
if (ADMINS_IDS.includes(chatID)) return next();
// A los usuarios normales se les enviará la frase actual ante cualquier mensaje desconocido.
// En cualquier otro tipo de chat que no sea privado, se enviará solo ante el comando /frase.
if (ctx.chat.type === "private" || /^\/frase/.test(ctx.message.text || ""))
await publishQuote({ chatID, chatType: ctx.chat.type }).catch(() => {});
});
callbacks(bot);
commands(bot, "admin");
bot.start();