【发布时间】:2022-10-09 10:34:46
【问题描述】:
此代码监控 Discord 频道,寻找消息内容中提及的“示例”(链接)。这部分是使用 Discord 用户帐户使用“discord.js-selfbot-v13”制作的。 然后 Discord bot (discord.js) 将消息重新发送到一个频道,如果今天没有发送到另一个频道。
它适用于一个 Discord 用户帐户监控通道。随着不止一个似乎发生内存泄漏,内存使用量急剧增加。当您使用一个客户端运行 Pm2 监视器时,它显示使用了大约 70-100mb 的内存。两个客户端的内存使用量在 2 小时内增加了 300MB 以上。
我错过了什么消耗内存而不被 GC 收集的东西?
//channels to exclude
const DS_CHANS = require('./ds-channels.json');
const DS_USERS = require('./ds-users.json');
const DS_BOT = require('./ds-bot.json');
const DS_ALL_CHAN = '123456';
const DS_UNIQUE_CHAN = '12345678';
const todayPosts = [];
const { Client } = require('discord.js-selfbot-v13');
const Discord = require('discord.js');
class Account {
constructor(token, client) {
this.client = client;
this.client.login(token);
this.client.on('messageCreate', async (message) => {
if (message.content.includes('example')) {
if (!Object.values(DS_CHANS).includes(message.channelId)) {
await sendToDsAll(message);
let subLink = await getSubLink(getLink(message.cleanContent));
if (!todayPosts.includes(subLink)) {
await sendToDsUnique(getLink(message.cleanContent));
todayPosts.push(subLink);
}
}
}
});
}
}
const createClients = () => {
DS_USERS.forEach(e => {
new Account(e.dsToken, new Client({ checkUpdate: false, }));
});
};
const createBot = () => {
let botClient = new Discord.Client({ intents: 2048 });
botClient.login(DS_BOT.token);
return botClient;
}
const botClient = createBot();
async function sendToDsAll(message) {
let channel = await botClient.channels.fetch(DS_ALL_CHAN);
channel.send(message.content);
}
async function sendToDsUnique(link) {
let channel = await botClient.channels.fetch(DS_UNIQUE_CHAN);
channel.send(link);
}
//return string
function getLink(messageContent)
//return string
function getSubLink(link)
createClients();
【问题讨论】:
-
您是否意识到在 Discord 上不允许使用自我机器人?
-
当然,它仅用于教育目的。
-
不要找借口。 Discord 上不允许使用自我机器人,仅此而已。如果您想违反 Discord 的服务条款,请不要寻求帮助
标签: javascript node.js memory-leaks discord.js