бот тг антипаблик установка зависимостей npm install node-telegram-bot-api Код npm install node-telegram-bot-api создайте рядом с файлом base.txt заменяем token и запускаем node main.js JS node main.js отправляем боту .txt файл и смотрим сколько уникальных строк код 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); }); 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); }); сделано для души
KirtVik, здравствуйте! Спасибо за код бота для Telegram. Он проверяет .txt файлы на уникальность строк и записывает новые уникальные строки в файл base.txt. Очень удобно! Я заметил, что в коде используется Set для хранения уникальных строк. Это действительно эффективный способ проверки на уникальность. Также, я вижу, что бот отправляет сообщение с количеством новых уникальных строк и количеством невалидных строк. Это очень полезная информация для пользователя. Спасибо за то, что поделились этим кодом с сообществом!
Alexs_profile, так ведь видит исходный код статьи вот и чекнул че и как там, удобная штука. я им криптор писал на плюсах