ReactBot/react.js

74 lines
2.4 KiB
JavaScript

const Discord = require("discord-user-bots");
const fs = require("fs/promises");
const exists = require("fs.promises.exists");
const { channels, emoji } = require("./config.json");
const pino = require("pino");
const logger = pino({
transport: {
target: "pino-pretty",
options: {
colorize: true,
translateTime: "HH:MM:ss dd.mm.yyyy",
},
},
});
(async () => {
const tokensFile = await fs.readFile("TOKENS.txt", "utf-8");
logger.warn("You should remove this after debug");
// logger.info(tokensFile);
const tokens = tokensFile.split("\n").filter(token => token.trim() !== "");
const clients = tokens.map((token) => {
logger.info(`Init ${token} client`)
return new Discord.Client(token)
});
// let users = JSON.parse(await fs.readFile("./users.json", "utf-8"));
clients.forEach((client) => {
client.on.ready = async () => {
// console.log(client);
// let user = users.find((user) => user.token === client.user.token);
// if (!user) {
// user = {
// username: generateUsername("", 0),
// avatar: `data:image/png;base64,${(
// await fs.readFile(`./avatars/seed0${client.user.id.slice(-3)}.png`)
// ).toString("base64")}`,
// token: client.user.token,
// };
// users.push(user);
// const response = await client.fetch_request("users/@me", {
// method: "PATCH",
// body: JSON.stringify({
// username: user.username,
// avatar: user.avatar,
// }),
// parse: true,
// });
// console.log(
// JSON.stringify({
// username: user.username,
// avatar: user.avatar.slice(0, 50),
// })
// );
// console.log(util.inspect(response, false, null, true));
// }
logger.info(
`${client.user.username}#${client.user.discriminator} (${client.user.id}) are ready to work!`
);
};
});
clients.forEach(async (client) => {
// console.log(client);
client.on.message_create = async (message) => {
if (channels.includes(message.channel_id)) {
logger.info(
`${client.user.username}#${client.user.discriminator} spotted message on ${message.channel_id}`
);
await client.add_reaction(message.id, message.channel_id, emoji);
logger.info(
`${client.user.username}#${client.user.discriminator} added reaction`
);
}
};
});
})();