Для борьбы с этим пагубным явлением, предлагаю вашему вниманию простейшего телеграмм бота.
Код написан на NodeJS с использованием библиотеки telegraf
[spoiler]
var Telegraf = require('telegraf');
var BOT_TOKEN = 'тут всавьте токен бота';
var bot = new Telegraf(BOT_TOKEN);
var chats = {};
var nmid;
uname="Аноним "
var telegram = bot.telegram;
// Добавляем в кандидаты по приходу
bot.on('new_chat_member', (ctx) => console.log(ctx.message.new_chat_members))
bot.on('new_chat_members', function (ctx) {
for (var _i = 0, _a = ctx.message.new_chat_members; _i < _a.length; _i++) {
var member = _a[_i];
uname=member.first_name
var chid=ctx.chat.id;
//console.log(chid)
Promise.all([
bot.telegram.sendMessage(ctx.chat.id, `🤖 Присылай любое сообщение в этот чат в течение 60 секунд чтобы доказать, что ты не робот, а человек!
`,{parse_mode: 'HTML'})
]).then((results) => {
var mid = results[0].message_id;
addCandidate(ctx.chat.id, member.id);
setTimeout(function() { telegram.deleteMessage(chid,mid) }, 60 * 1000)
});
}
});
// Удаляем из кандидатов по активности
bot.on('message', function (ctx) {
removeCandidate(ctx.chat.id, ctx.from.id);
});
// Добавляем кандидата
function addCandidate(chatId, candidateId) {
//console.log("add")
var candidate = {
id: candidateId,
time: new Date().getTime(),
};
var candidates = chats[chatId];
if (candidates) {
candidates.push(candidate);
}
else {
candidates = [candidate];
}
chats[chatId] = candidates;
}
// Убираем кандидата
function removeCandidate(chatId, candidateId) {
var candidates = chats[chatId];
if (!candidates)
return;
chats[chatId] = candidates.filter(function (candidate) { return candidate.id !== candidateId; });
}
// Проверяем, нужно ли банить
setInterval(function () {
for (var chatId in chats) {
var candidates = chats[chatId];
if (!candidates.length)
continue;
var now = new Date().getTime();
for (var _i = 0, candidates_1 = candidates; _i < candidates_1.length; _i++) {
var candidate = candidates_1[_i];
// Считаем 1 минуту
if (candidate.time < now - 60 * 1000) {
Promise.all([bot.telegram.sendMessage(chatId, uname + ` не доказал, что он человек! 🤖 А всего то нужно было написать что-то в чат... Вся власть роботам!`)
]).then((results) => {
var nmid = results[0].message_id;
setTimeout(function() {
telegram.deleteMessage(chatId,nmid)
}, 60 * 1000)
});
telegram.kickChatMember(chatId, candidate.id);
removeCandidate(chatId, candidate.id);
}
}
}
}, 1000);
// Включаем бота
bot.launch()