Quadnite-Bot/bot.js

35 lines
938 B
JavaScript

const { Telegraf } = require("telegraf");
const { BOT_API_KEY, FEEDBACK_ID, UGOKI_ROOT, RATE_TIMEFRAME, RATE_LIMIT } = process.env;
const fs = require("fs").promises;
const commands = require("./commands");
const axios = require("axios");
const roleplay = require("./static/roleplay.json");
const { limit } = require("@grammyjs/ratelimiter");
const bot = new Telegraf(BOT_API_KEY);
bot.catch((err) => console.log(err));
bot.use(limit({
// default config: 5 messages per 5 seconds
timeFrame: RATE_TIMEFRAME ?? 5000,
limit: RATE_LIMIT ?? 5,
onLimitExceeded: (ctx, next) => ctx.reply('Too many requests!'),
}))
const data = [
"questions",
"kys",
"insults",
"commands_list",
"words"
].map(file =>
fs.readFile("static/" + file + ".txt", "utf-8")
.then(list =>
list.split("\n")));
Promise.all(data)
.then(data =>
commands(bot, [...data, roleplay], FEEDBACK_ID, BOT_API_KEY, UGOKI_ROOT, axios));
bot.launch();