您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
на сайте ленты пересчитывает вес продукта и цену в цену за кг
// ==UserScript== // @name New Userscript // @namespace http://tampermonkey.net/ // @version 2024-11-08-New // @description на сайте ленты пересчитывает вес продукта и цену в цену за кг // @author You // @match https://lenta.com/* // @icon https://www.google.com/s2/favicons?sz=64&domain=lenta.com // @grant none // @require http://code.jquery.com/jquery-latest.js // @license MIT // ==/UserScript== (function() { 'use strict'; // a.product-card p.card-name_content // a.product-card div.product-price span.main-price // setInterval(function() { console.log('SCRIPT STARTS HERE'); if (window.location.href.indexOf('product') > -1) { console.log('SINGLE PRODUCT PAGE'); let product = document.querySelector('div.product-page_info-block'); let productTitleElem = product.querySelector('h1 span.product-package'); product.title = productTitleElem.innerText; let productPriceElem = product.querySelector('div.product-price span.main-price'); product.price = productPriceElem.innerText; let pricesDivElem = product.querySelector('div.product-price div.old-price-product'); let condition = false; let titleStr = product.title; let priceStr = product.price; let regexp = /\d+Л|\d+L|\d+Мл|\d+МЛ|\d+мл|\d+л|\d+l|\d+Г|\d+Кг|\d+КГ|\d+кг|\d+г/g; condition = regexp.test(titleStr); if (condition) { let match = titleStr.match(regexp); if (/\d+Мл|\d+МЛ|\d+мл|\d+Кг|\d+КГ|\d+кг/g.test(titleStr)) { //console.log('кг или мл'); } else if (/\d+Л|\d+L|\d+л|\d+l/g.test(titleStr)) { //console.log(match); if (/\d+ ₽|\d+₽/g.test(priceStr)) { console.log(titleStr); console.log(priceStr); //let matchPrc = priceStr.match(/\d+, \d+₽|\d+, \d+ ₽|\d+,\d+₽|\d+,\d+ ₽/g); let matchPrc = priceStr.match(/(\d+\s)*\d+(,)*\s*\d*/g); let price = matchPrc[0]; price = price.replace(/\₽|\ ₽/g, ''); price = price.replace(/\s+/, ''); price = price.replace(', ', '.'); price = price.replace(',', '.'); price = parseFloat(price); let quantity = titleStr.match(/(\d+.|\d+,)*\s*\d+Л|(\d+.|\d+,)*\s*\d+л|(\d+.|\d+,)*\s*\d+L|(\d+.|\d+,)*\s*\d+l/g); quantity = quantity[0]; quantity = quantity.replace(/\s+/, ''); quantity = quantity.replace(',', '.'); quantity = parseFloat(quantity); console.log(quantity + ' литров'); console.log(' за ' + price + ' рублей'); let priceof = price / quantity; priceof = parseInt(priceof); console.log(priceof + ' руб за литр'); pricesDivElem.innerText = ''; pricesDivElem.appendChild(document.createTextNode(priceof + ' руб за литр')); } } else if (/\d+Г|\d+г/g.test(titleStr)) { //console.log(match); if (/\d+ ₽|\d+₽/g.test(priceStr)) { console.log(titleStr); console.log(priceStr); //let matchPrc = priceStr.match(/\d+, \d+₽|\d+, \d+ ₽|\d+,\d+₽|\d+,\d+ ₽/g); let matchPrc = priceStr.match(/(\d+\s)*\d+(,)*\s*\d*/g); let price = matchPrc[0]; price = price.replace(/\₽|\ ₽/g, ''); price = price.replace(/\s+/, ''); price = price.replace(', ', '.'); price = price.replace(',', '.'); price = parseFloat(price); let quantity = titleStr.match(/(\d+.|\d+,)*\s*\d+Г|(\d+.|\d+,)*\s*\d+г/g); quantity = quantity[0]; quantity = quantity.replace(/\s+/, ''); quantity = quantity.replace(',', '.'); quantity = parseFloat(quantity); console.log(quantity + ' грамм'); console.log(' за ' + price + ' рублей'); let priceof = price / quantity * 1000; priceof = parseInt(priceof); console.log(priceof + ' руб за кг'); pricesDivElem.innerText = ''; pricesDivElem.appendChild(document.createTextNode(priceof + ' руб за кг')); } } } } let products = document.querySelectorAll('a.product-card'); for (let i = 0; i < products.length; i++) { //console.log(products[i]); let titleElem; let condition2 = true; if (window.location.href.indexOf('catalog') > -1) { console.log('CATALOG PAGE'); try { titleElem = products[i].querySelector('p[class=card-name_package]'); products[i].title = titleElem.innerText; } catch (err) { let condition2 = false; products[i].title = ''; } } else if (window.location.href.indexOf('product') > -1) { console.log('SINGLE PRODUCT PAGE'); try { titleElem = products[i].querySelector('p[class=card-name_package]'); products[i].title = titleElem.innerText; } catch (err) { let condition2 = false; products[i].title = ''; } } else { console.log('MAIN PAGE'); try { titleElem = products[i].querySelector('p[class*=card-name]'); products[i].title = titleElem.innerText; } catch (err) { let condition2 = false; products[i].title = ''; } } let priceElem = products[i].querySelector('div.product-price span.main-price'); products[i].price = priceElem.innerText; let pricesDivElem = products[i].querySelector('div.product-price'); //console.log(titleElem); //console.log(priceElem); let condition = false; let titleStr = products[i].title; let priceStr = products[i].price; //let regexp = /\d+Л|\d+Мл|\d+МЛ|\d+мл|\d+л|\d+Г|\d+Кг|\d+КГ|\d+кг|\d+г/g; let regexp = /\d+Л|\d+L|\d+Мл|\d+МЛ|\d+мл|\d+л|\d+l|\d+Г|\d+Кг|\d+КГ|\d+кг|\d+г/g; condition = regexp.test(titleStr); console.log(titleStr); console.log(priceStr); if (condition && condition2) { let match = titleStr.match(regexp); if (/\d+Мл|\d+МЛ|\d+мл|\d+Кг|\d+КГ|\d+кг/g.test(titleStr)) { //console.log('кг или мл'); } else if (/\d+Л|\d+L|\d+л|\d+l/g.test(titleStr) && !products[i]['not-firstly']) { //console.log(match); if (/\d+ ₽|\d+₽/g.test(priceStr)) { console.log(titleStr); console.log(priceStr); //let matchPrc = priceStr.match(/\d+, \d+₽|\d+, \d+ ₽|\d+,\d+₽|\d+,\d+ ₽/g); let matchPrc = priceStr.match(/(\d+\s)*\d+(,)*\s*\d*/g); let price = matchPrc[0]; price = price.replace(/\₽|\ ₽/g, ''); price = price.replace(/\s+/, ''); price = price.replace(', ', '.'); price = price.replace(',', '.'); price = parseFloat(price); let quantity = titleStr.match(/(\d+.|\d+,)*\s*\d+Л|(\d+.|\d+,)*\s*\d+л|(\d+.|\d+,)*\s*\d+L|(\d+.|\d+,)*\s*\d+l/g); quantity = quantity[0]; quantity = quantity.replace(/\s+/, ''); quantity = quantity.replace(',', '.'); quantity = parseFloat(quantity); console.log(quantity + ' литров'); console.log(' за ' + price + ' рублей'); let priceof = price / quantity; priceof = parseInt(priceof); console.log(priceof + ' руб за литр'); pricesDivElem.appendChild(document.createTextNode(priceof + ' руб за литр')); products[i]['not-firstly'] = true; } } else if (/\d+Г|\d+г/g.test(titleStr)) { //console.log(match); if (/\d+ ₽|\d+₽/g.test(priceStr) && !products[i]['not-firstly']) { console.log(titleStr); console.log(priceStr); //let matchPrc = priceStr.match(/\d+, \d+₽|\d+, \d+ ₽|\d+,\d+₽|\d+,\d+ ₽/g); let matchPrc = priceStr.match(/(\d+\s)*\d+(,)*\s*\d*/g); let price = matchPrc[0]; price = price.replace(/\₽|\ ₽/g, ''); price = price.replace(/\s+/, ''); price = price.replace(', ', '.'); price = price.replace(',', '.'); price = parseFloat(price); let quantity = titleStr.match(/(\d+.|\d+,)*\s*\d+Г|(\d+.|\d+,)*\s*\d+г/g); quantity = quantity[0]; quantity = quantity.replace(/\s+/, ''); quantity = quantity.replace(',', '.'); quantity = parseFloat(quantity); console.log(quantity + ' грамм'); console.log(' за ' + price + ' рублей'); let priceof = price / quantity * 1000; priceof = parseInt(priceof); console.log(priceof + ' руб за кг'); pricesDivElem.appendChild(document.createTextNode(priceof + ' руб за кг')); products[i]['not-firstly'] = true; } } } } }, 2500); })();