worldsleep `javascript:(function() {
let seenIds = new Set(); // Для отслеживания уникальности товаров по ID
let consoleUI = []; // Массив для хранения информации о товарах
// Функция для логирования в консоль
function logToConsole(data) {
console.table(data); // Логируем информацию в виде таблицы
console.log(`Найдено товаров: ${data.length}`);
}
// Функция для добавления столбца ID в таблицу на странице
function addIdColumnToPage(table) {
const headerRow = table.querySelector('thead tr');
if (headerRow) {
// Всегда добавляем новый столбец в заголовок
const idHeader = document.createElement('th');
idHeader.textContent = 'ID';
headerRow.appendChild(idHeader); // Добавляем новый столбец в заголовок
}
}
// Функция для извлечения числового значения из строки (возвращает 0, если не удается извлечь)
function extractNumericValue(str) {
const value = parseFloat(str.replace(/[^\d.-]/g, '').trim());
return isNaN(value) ? 0 : value; // Возвращаем 0, если значение не является числом
}
// Ищем таблицу на странице
const table = document.querySelector('.overflow-scroll.custom-scrollbar table');
if (!table) {
console.error('Таблица не найдена на странице');
return;
}
// Добавляем заголовок для нового столбца ID в таблицу
addIdColumnToPage(table);
// Ищем все строки таблицы с товарами
const tableRows = table.querySelectorAll('tbody tr');
tableRows.forEach(el => {
let price = 0;
let btc = 0;
let weight = '';
let link = el.querySelector('a'); // Извлекаем ссылку на товар
let productId = link ? link.href.split('/').pop() : 'Нет ID';
// Фильтрация ID: оставляем только цифры
const numericProductId = productId.replace(/\D/g, ''); // Убираем все символы, оставляя только цифры
// Если ID меньше 8 цифр или он уже был добавлен, пропускаем товар
if (numericProductId.length < 8 || !numericProductId || seenIds.has(numericProductId)) {
return; // Пропускаем товар с коротким или отсутствующим ID
}
// Добавляем ID товара в Set для проверки уникальности
seenIds.add(numericProductId);
// Получаем другие данные из таблицы (цена, вес и BTC)
const priceCell = el.querySelector('td:nth-child(4)');
if (priceCell) {
const priceText = priceCell.querySelector('span');
if (priceText) {
price = extractNumericValue(priceText.textContent); // Извлекаем цену
}
const btcText = priceCell.querySelector('.text-xs.text-default-150');
if (btcText) {
btc = extractNumericValue(btcText.textContent); // Извлекаем BTC
}
}
const weightCell = el.querySelector('td:nth-child(2)');
if (weightCell) {
weight = weightCell.textContent.trim();
}
// Добавляем информацию о товаре в массив для логирования
consoleUI.push({
id: numericProductId,
weight: weight || 'Не указано',
rub: price || 0, // Если цена не найдена, ставим 0
BTC: btc || 0, // Если BTC не найден, ставим 0
url: link ? link.href : 'Нет ссылки'
});
// Создаем новый столбец с ID
const newCell = document.createElement('td');
newCell.textContent = numericProductId; // Записываем ID в новый столбец
// Добавляем новый столбец в строку таблицы
el.appendChild(newCell);
});
// Логирование результатов в консоль
logToConsole(consoleUI);
})();
`