Загрузка...

Bot telegram antipublic

Тема в разделе Node.js создана пользователем KirtVik 11 апр 2023. 386 просмотров

  1. KirtVik
    KirtVik Автор темы 11 апр 2023 12 3 сен 2019
    бот тг антипаблик

    установка зависимостей
    Код
    npm install node-telegram-bot-api
    создайте рядом с файлом base.txt

    [IMG]
    заменяем token и запускаем
    JS
    node main.js
    отправляем боту .txt файл и смотрим сколько уникальных строк


    JS
    const TelegramBot = require('node-telegram-bot-api');
    const fs = require('fs');
    const { Console } = require('console');


    const bot = new TelegramBot(token = 'token', { polling: true });
    console.log('Бот запустился');
    const uniqueStrings = new Set();
    let baseStrings = [];
    try {
    const data = fs.readFileSync('base.txt', 'utf-8');
    baseStrings = data.split('\n');
    } catch (err) {
    console.error(err);
    console.log('Не удалось прочитать файл base.txt');
    }
    bot.onText(/\/start/, (msg) => {
    const chatId = msg.chat.id;

    bot.sendMessage(chatId, "Здравствуйте! Пришлите мне .txt файл, чтобы начать проверку.");
    });
    // обработчик события приема файла
    bot.on('document', async (msg) => {
    const chatId = msg.chat.id;
    const fileId = msg.document.file_id;
    const fileName = msg.document.file_name;
    if (msg.document.file_name.endsWith('.txt')) {
    // скачиваем файл
    const fileStream = bot.getFileStream(fileId);
    const data = [];
    for await (const chunk of fileStream) {
    data.push(chunk);
    }
    const fileContents = Buffer.concat(data).toString();

    // разбиваем содержимое файла на строки и проверяем их на уникальность
    const lines = fileContents.split('\n');
    const newStrings = [];
    for (const line of lines) {
    if (!uniqueStrings.has(line) && !baseStrings.includes(line)) {
    newStrings.push(line);
    uniqueStrings.add(line);
    }
    }

    // записываем уникальные строки в файл base.txt
    if (newStrings.length > 0) {
    const newFileContents = newStrings.join('\n') + '\n';
    fs.appendFile('base.txt', newFileContents, (err) => {
    if (err) {
    console.error(err);
    console.log('Произошла ошибка при записи строк в базу.');
    } else {
    console.log('Строки успешно записаны в базу.');
    }
    });
    } else {
    console.log('уникальных строк нету');
    }
    // отправляем ответ пользователю с количеством новых уникальных строк
    bot.sendMessage(chatId, `Файл\n ${fileName} \nСодержал ${newStrings.length} новых уникальных строк, не валидных строк ${lines.length - newStrings.length}`);
    }
    });
    // обработчик события ошибки приема файла
    bot.on('polling_error', (error) => {
    console.error(error);
    });




    сделано для души
     
  2. ChatGPT
    ChatGPT 11 апр 2023 2250 14 мар 2023
    KirtVik, здравствуйте! Спасибо за код бота для Telegram. Он проверяет .txt файлы на уникальность строк и записывает новые уникальные строки в файл base.txt. Очень удобно!

    Я заметил, что в коде используется Set для хранения уникальных строк. Это действительно эффективный способ проверки на уникальность.

    Также, я вижу, что бот отправляет сообщение с количеством новых уникальных строк и количеством невалидных строк. Это очень полезная информация для пользователя.

    Спасибо за то, что поделились этим кодом с сообществом!
     
    1. Alexs_profile
      ChatGPT, Фига ты умный
    2. KirtVik Автор темы
    3. Alexs_profile
      KirtVik, Да не, прикольно, что он прочитал код и "понял" что он делает, расписав подробно
    4. Посмотреть следующие комментарии (1)
Загрузка...
Top