Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Объявляем глобальную переменную для хранения сгенерированных номеров
- let allPhoneNumbers = [];
- // Функция для генерации последовательных номеров
- function generatePhoneNumbers(start, end) {
- let startNumber = parseInt(start, 10); // Преобразуем начальный номер в число
- let endNumber = parseInt(end, 10); // Преобразуем конечный номер в число
- let phoneNumbers = []; // Массив для хранения номеров
- while (startNumber <= endNumber) {
- phoneNumbers.push("7" + startNumber.toString()); // Добавляем номер в массив с кодом "7" в начале
- startNumber++;
- }
- return phoneNumbers;
- }
- // Обработчик кнопки "Сгенерировать"
- document.getElementById('generate').addEventListener('click', function() {
- let textareaContent = document.querySelector('.input').value; // Получаем содержимое textarea
- console.log("Содержимое input:", textareaContent); // Логируем содержимое textarea
- // Извлечение всех диапазонов номеров телефона
- let ranges = textareaContent.match(/<td class="nmtb__range\s*">([\s\S]*?)<\/td>/g);
- console.log("Найденные диапазоны:", ranges); // Логируем найденные диапазоны
- if (ranges) {
- allPhoneNumbers = []; // Очищаем массив перед генерацией
- // Проходим по каждому диапазону
- ranges.forEach(function(range) {
- console.log("Обрабатываем диапазон:", range); // Логируем текущий диапазон
- // Извлечение начального номера телефона
- let startPhoneMatch = range.match(/<span class="nmtb__range_pref">\+7<\/span>\s*\((\d{3})\)\s*(\d{3})-(\d{2})-(\d{2})/);
- console.log("Начальный номер:", startPhoneMatch); // Логируем найденный начальный номер
- if (!startPhoneMatch) {
- alert("Не удалось извлечь начальный номер телефона");
- return;
- }
- var startPhone = startPhoneMatch[1] + startPhoneMatch[2] + startPhoneMatch[3] + startPhoneMatch[4];
- // Извлечение конечного номера телефона
- let endPhoneMatch = range.match(/<span class="unc__note">\s*\+7\s*\((\d{3})\)\s*(\d{3})-(\d{2})-(\d{2})/);
- console.log("Конечный номер:", endPhoneMatch); // Логируем найденный конечный номер
- if (!endPhoneMatch) {
- alert("Не удалось извлечь конечный номер телефона");
- return;
- }
- var endPhone = endPhoneMatch[1] + endPhoneMatch[2] + endPhoneMatch[3] + endPhoneMatch[4];
- // Генерация номеров для этого диапазона
- let phoneNumbers = generatePhoneNumbers(startPhone, endPhone);
- console.log("Сгенерированные номера:", phoneNumbers); // Логируем сгенерированные номера
- allPhoneNumbers = allPhoneNumbers.concat(phoneNumbers); // Добавляем номера в общий массив
- });
- // Очищаем поле для результатов перед вставкой новых данных
- document.querySelector('.result').value = '';
- // Выводим первые 1000 номеров в поле "result"
- document.querySelector('.result').value = allPhoneNumbers.slice(0, 1000).join("\n");
- console.log("Номера для вывода в textarea:", allPhoneNumbers.slice(0, 1000)); // Логируем номера, которые будут выведены
- } else {
- alert("Не удалось найти диапазоны номеров");
- }
- });
- // Функция для генерации случайного имени файла
- function generateRandomFilename() {
- let chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
- let result = '';
- for (let i = 0; i < 10; i++) {
- result += chars.charAt(Math.floor(Math.random() * chars.length));
- }
- return result;
- }
- // Функция для отправки CSV файла на сервер
- function uploadFileToServer() {
- if (allPhoneNumbers.length === 0) {
- alert("Номера не сгенерированы");
- return;
- }
- // Генерация CSV-контента
- let csvContent = "phone\n" + allPhoneNumbers.join("\n");
- // Превращаем его в Blob-объект для отправки на сервер
- let blob = new Blob([csvContent], { type: "text/csv" });
- // Создаем форму для отправки данных на сервер
- let formData = new FormData();
- formData.append("file", blob, generateRandomFilename() + ".csv");
- // Отправляем AJAX-запрос для загрузки файла на сервер
- let xhr = new XMLHttpRequest();
- xhr.open("POST", "https://revival74.ru/phone/upload.php", true);
- // Добавляем индикатор загрузки
- document.querySelector('.icon').innerHTML = 'Загрузка...';
- xhr.onload = function() {
- console.log("Статус ответа:", xhr.status);
- console.log("Ответ сервера:", xhr.responseText);
- if (xhr.status === 200) {
- let response;
- try {
- response = JSON.parse(xhr.responseText); // Пробуем разобрать JSON-ответ
- console.log("Ответ сервера успешно разобран:", response);
- } catch (e) {
- console.error("Ошибка парсинга JSON:", e);
- document.querySelector('.icon').innerHTML = 'Ошибка при обработке ответа сервера';
- return;
- }
- if (response.status === "success") {
- // Выдаем ссылку на скачивание
- document.querySelector('.icon').innerHTML = `<a href="${response.file_url}">Скачать файл</a>`;
- } else {
- document.querySelector('.icon').innerHTML = `Ошибка: ${response.message}`;
- }
- } else {
- document.querySelector('.icon').innerHTML = 'Ошибка сети';
- }
- };
- xhr.onerror = function() {
- console.error("Ошибка при отправке запроса.");
- document.querySelector('.icon').innerHTML = 'Ошибка при загрузке файла';
- };
- xhr.send(formData);
- }
- // Обработчик кнопки "Скачать CSV"
- document.getElementById('upload').addEventListener('click', function() {
- uploadFileToServer(); // Отправляем запрос на сервер
- });
Advertisement
Add Comment
Please, Sign In to add comment