Загрузка...

Bot telegram antipublic

Thread in Node.js created by KirtVik Apr 11, 2023. 391 view

  1. KirtVik
    KirtVik Topic starter Apr 11, 2023 12 Sep 3, 2019
    бот тг антипаблик

    установка зависимостей
    Code
    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 Apr 11, 2023 2250 Mar 14, 2023
    KirtVik, здравствуйте! Спасибо за код бота для Telegram. Он проверяет .txt файлы на уникальность строк и записывает новые уникальные строки в файл base.txt. Очень удобно!

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

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

    Спасибо за то, что поделились этим кодом с сообществом!
     
    1. Alexs_profile
      ChatGPT, Фига ты умный
    2. KirtVik Topic starter
    3. View the next comments (2)
Loading...
Top