Greasy Fork is available in English.
Onlinetrade - Поиск товара на других сайтах
// ==UserScript== // @name Onlinetrade Product Search // @name:ru Onlinetrade Поиск товаров // @namespace https://github.com/AlekPet/Onlinetrade-Product-Search // @version 0.3.3 // @description Onlinetrade - Product search on other sites // @description:ru Onlinetrade - Поиск товара на других сайтах // @copyright 2021, AlekPet // @author AlekPet // @license MIT; https://raw.githubusercontent.com/AlekPet/Onlinetrade-Product-Search/master/LICENSE // @icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAAF8WlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNi4wLWMwMDIgNzkuMTY0NDYwLCAyMDIwLzA1LzEyLTE2OjA0OjE3ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjEuMiAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDIxLTAyLTA5VDA5OjU2OjE3KzAzOjAwIiB4bXA6TWV0YWRhdGFEYXRlPSIyMDIxLTAyLTA5VDA5OjU2OjE3KzAzOjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAyMS0wMi0wOVQwOTo1NjoxNyswMzowMCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDphMTcwZTVhYi1mMTVlLTg2NDYtOWJkZi04MThmNTUwMjVkMmEiIHhtcE1NOkRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDpjN2IxYmEwOC1iMmU2LTAzNDAtYWJkZS1mY2EwYmI1MGEyMDIiIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpmNmNiNGI1NC05NTc2LWRiNDAtODVmNi1hNTg0NDM4YjI0YzgiIGRjOmZvcm1hdD0iaW1hZ2UvcG5nIiBwaG90b3Nob3A6Q29sb3JNb2RlPSIzIiBwaG90b3Nob3A6SUNDUHJvZmlsZT0ic1JHQiBJRUM2MTk2Ni0yLjEiPiA8eG1wTU06SGlzdG9yeT4gPHJkZjpTZXE+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJjcmVhdGVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOmY2Y2I0YjU0LTk1NzYtZGI0MC04NWY2LWE1ODQ0MzhiMjRjOCIgc3RFdnQ6d2hlbj0iMjAyMS0wMi0wOVQwOTo1NjoxNyswMzowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKFdpbmRvd3MpIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDphMTcwZTVhYi1mMTVlLTg2NDYtOWJkZi04MThmNTUwMjVkMmEiIHN0RXZ0OndoZW49IjIwMjEtMDItMDlUMDk6NTY6MTcrMDM6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCAyMS4yIChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5+sHWnAAAUzklEQVRo3s1ZB3Rc5ZW+r0/RFI1mRqNqWZJluRsXLDdEYrCBBJwlOEtJgJQDi2PibBJylrSz2c0m2YWTTV0O5SSbhd1sNqEFAiEYY0xwwR3bkiVZVrPaSNPre/PKfv+TbGwIQWSTs3lw/c88vfLde7/b/uG2bdtGf+zBcRxZlkWGYZCu6+fXaVmhqurGTCZzRS6Xi2ia1grhcI6YlEoltpo4N8Tz/DHIq/j8dLFY7GHPvPDYsGEDffCDHyQ8h0zTvOhvIv2JD0EQNgPEFyYnJ9cxIOXl5RQOh9macbvdTEkDyrHFGYvFpLGxsVl9fX2zBgcHr8Pt90FegPwz5OWZvE/8EwJfCGDfGR8fv1IURZo/f36yrq6uAOAiT5yLF3jHtMtEtkBMKGjBomoildIHBwbo6NGj7t27d2/C45g8g2s+i0vOMKuze/5sCgDwXbDmv4Eu1Nrammpubi65nE5vOpXyM2DxRILi4+OkZXO4WGDcI0lW+HBVhMKRiBAKVCirVq6kNWvWlNrb2ws7d+50vfbaa9cC/AZQ6xafz/cUVnortf7PCjCr4ME/GhkZ2ep0Os2NGzfG/Xjb8PCwBGtSz8kOOjsybKVKpaLudhUEWTF1tSiyWBFk2XB0npScpZKrPlIlLlq0mJrntkitLS3SvNZ5+vLlyxMPP/xweaFQeBI0+zbec68sywR6XuQNkWn2x4LH8RNQ5vZQKJRsa2sT4YHgvn376NjBg9TR1UV6OBTzLl0UDc2eXfDWVBdkr1ezNE3gVU2yTEPIxOJCYmDAcXxw0HX0macD9bu8vms2b7bmNDWJa1evLg8Gg9kHH3xQwDP/DvFTs2XLlluZ8iwBnFNCwItpmpMzFqY0OP9dgP+bmpqa8bVr10pDg4Pe/Xv30wvP/pq6UqlExQeu6Zp3y039tavb4u5wuAjikyGKRTNYEVfra0f0yvCE0twU9a1f1x+44v29jtZ544ODZ0t7fvlkeS6dFRrntlg1kUpl6SXLip2dndqRI0dWgkKLli1b9nQ+nzfOG3L79u3v2fqSJH0E4H8OtmTWrVtHp3t6PPv27KMXdrysS5cs6l/2qU/0eSORUm5iUtbyOYvzedKl2upRraoyanq9OcPhVC0eQWwYPItkwzQFieMlB8cJk795sens17952Ry5rP6ez22T/W6HNDoxmfnqV77iSKfT0tatWx9evHjx3aCVygz5nhWA5f3ZbDYKV/IIuOzI8Fnf7t17rede3FVcfkUl/76PXZXNZ0tUnIzJkidgVjbPsTyR8rzh96Y5XubE1LBEuXGeeIlDSFomWdCErBLPG7og6I5wsCCND1U/cOe/BnlzYf4rn/u02yWL3OuHDuXuu+8+N0vF995779cdDsc/oS6UbAq9R+7/GBlnycqVK9NI6P59+w9az/7mpdKiy8P04Y9dqpTGhlyUGHOF3aqyYEGVo6GpzhGkvCeciwcrtXwwlBkoD+X6/SE95a/Q4v4KNQGJ+UPFyUAoHw36xnojAafp3nDjKu6VZ3fIp0/G9ba1q7hIKKRoup45cfy4Eo1G565evXocAX1MuPTSS+30NBOBy5rj8fhDkUjEaGxslI4dPSI88+tdJW+9pd92V5szEc1xhQKRL+inpvnV5C4PU4l8ZFpI/4JCluREJdXwvUSGhKImOkgXFYiDNCbClOQKJkmoHsuuWqL91xOHJpwlRZ7X0iSFgkFuz969hKLnXbBggYnkEednCn66ZfgyaxMAPj8+NiodPnzSSqpRY/PNS5V8Bq1BUSdfuYPmzK8kpyKRoRkkgacKxCFMrQpbBWFacN7+u0AyVhnf2fUS1kIsQ+5gUA9u/8Srz+3ancoWCla4okK+4ooriowJKHg1SKtX8iwtzUSggCOZTH60srLSKnO7pTN9/XT0WIe+dE2lVFtXLqSTRVJkkRrmhGzwFsDLokSy7MJ5J8RBiuImB87ZCgE0A84UkXnOVgCBzPL6lKCaawNnXeUf2nxybPnigwde2sk5yty0YsUKgQXvgQMHmtCu+GasAMr5NSgqItyWR/A4TnX2Wpy7ZK5Y2yhmE3lYjqihwU/BgItKqmEr4xF18phJkvUMObQslZXYZ53KBJHczOKWQG5UZq9DIJfEFODIiVUBfZwiRyAYCaLICx/efLhjoD9X0DQzEg4rS5cu1YAnhB5K4Fmf8W7C6IPisQkZiDwej4k4oNNnhvTqJg+Fq/wUjWmUI4VUxUOprGGD4TiZzo7nKDbUQ65sH/GJPsoPd5HXSCH14NoiR16JI63I0+AETzmsDHwe502To3SBo4msQFIs7nWvWTUwVh05M9HXzwX8fq5l7ly7DiAWgvwF7e8fFFi91e/3E9IXH41OUDIdt+obvKKJHDiStEjylFGsKNFwzAItOBqMcVTUeYoCRDwrApRAqRz6IHTDHUMWWgLkUB0gJol0jafJNDIrcRTLctQ/ydFwkrODXzE0kUPuyjbPHkqcHeZkh4MioDFTAB6on5EHmKD6hVwuF4GAQiyeJCQUNGIeLp/TSAbnlzQ5qcZn2ZU6p3KUhVxaz1ODHwpkAAQ8J1j29DgqOV7vkYgSGRRFnF7dQNQa5Gzuy1B+AtczCjUFoSQJlmDqol4ViSU0zbAEwYQXJKYA0nk5P0P+u+CFAGukQCU5V1ANXrQ4p1Pk9ZJJgiKjLkmwqglvceRRCDTiqGsMYNIcBaCsghiJZ4lCLqLGAFFBJQriM8c8MkLUO8GxqkY6rF7jJ0IOoIE4FEe7yaFocsGKnKUoJcYvZB+B0RlGLbM7w3c7EAMeKOCa7ss5tagiKnROYtkGFGqIILMAod+wyCujWsPaTSGOJlNE5QBfD0BmiWh+hKjWB8ujq9YB1ufA38qJzsITFW6ys1EFlJIAOgeKpSH2AGaaPO90aBbPY+wzkcAEE+0Mm+gkkXV273awtHVuZMQEQk6Uc4fDaalqiRxuF1X5eTsLSQDkhfU13SIfgFe6LHKCIjxshMRDKBE2cK/DHglsK4c98ASUYsk9g5ioxHckMXKBQmV4VslgMxBnIVglRRREDjUChrSZw3DNSAEYPYl5NYObPHCd4SlzCmreMgp5zQqEOG4YNEmDLrVlyFYAPwmLNgQsO8t0xYgYY+eCz2fhkTyQNocJgU8UzRNVwQMmlO9NECHNkwOguyegKJQJeZk3LYSOxXo+oczhkHikXWCxW2pkxILILDsDBVRonUIMVFsclyv3lPmIU/R4vCi0tApCmqVZ0MftsGgAL3fC2pNZRCo8kCwCAOIC/R1Fc1NxEIbF0/g+hs/lADmBFb6lWN4kD9JUGvfkIE6FvRsdAM+bSirtljlUOvyfSbO7Sa6oqMiLTJuZDC+wfA+aqHlQwqyMhMnt8tPIYNzk1/OCWELBAnjUH3vNqSaFZGQV0SJZMlHUeEoiK/FQLADAMcYXZNQGeCIAymQQR/GsSW4n0rHAYgDgZeQfBh65FGiNYHSyNuLxcpZu0PDIiI2rqqoqOiMKTR/7ULqvSyQSWqiighrqqsXu4VEzg0hzeFxU4TTAXZ6CHovKXSwWTDsu6pAeXYJJIixX6WAtAzgOp7s41poTZVm8gHocAHO8SSXEWDVohXSE7xZlBEnjx8YDj###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 // @match *://www.onlinetrade.ru/* // @connect www.onlinetrade.ru // @run-at document-end // @grant GM_getValue // @grant GM_setValue // @grant GM_addStyle // @require https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js // ==/UserScript== (function() { 'use strict'; GM_addStyle(` .services_search_item_name { border: 1px solid silver; padding: 5px; background: #ffffffd1; box-shadow: 2px 2px 8px #77d2d299; transform: translate(-50%,0); transition: all .5s; font-size: 0.7em; width: 200px; color:#2b52e2; font-weight: bold; } .menu_cat{ overflow-y: auto; max-height: 350px; } .menu_cat > li { list-style: none; margin-bottom: 2px; background: linear-gradient(45deg, #77d2d299, transparent); border-radius: 0 8px 8px 0; padding: 5px; word-break: break-all; } .menu_cat > li:hover { transition: all .5s; background: linear-gradient(45deg, #9bffff99, transparent); font-size: 1.1em; } .menu_cat > li:first-child a{ color:#f76f6f; } .menu_cat_list{ margin-left: 0; display: inline-block; margin-top: 0.8%; } ul.services_list li { display: inline-block; padding: 2px; margin-bottom: 4px; font-size: 8px; cursor: pointer; user-select:none; } li.service_active{ background: #c2fb8fbf; border-left: 5px solid #09ff00; } .search_goods_button { margin-right: 8px; } .search_goods_button:before { background-position: -96px 0px; } .box_items { top: 20px; position: absolute; z-index: 14; } .menu_cat::-webkit-scrollbar { width: 10px; } .menu_cat::-webkit-scrollbar-button { } .menu_cat::-webkit-scrollbar-thumb { background: #ff8100; border-radius: 10px; box-shadow: 0 0 6px rgba(0,0,0,0.3); } .menu_cat::-webkit-scrollbar-track-piece { background: #d7d7d7; border-radius: 10px; box-shadow: inset 0 0 6px rgba(0,0,0,0.3); } `) const $ = window.jQuery, debug = true var services = { 'E-Katalog':{ s:'https://www.e-katalog.ru/ek-list.php?search_=' }, 'YAMarket':{ s:'https://market.yandex.ru/search?text=' }, 'OZON':{ s:'https://www.ozon.ru/search/?from_global=true&text=' }, 'Citilink':{ s:'https://www.citilink.ru/search/?text=' }, 'Onlinetrade':{ s:'https://www.onlinetrade.ru/sitesearch.html?query=' }, 'Dns-shop':{ s:'https://www.dns-shop.ru/search/?q=' } } // Functions function log(text, ...other){ if(debug){ let tip = other[0] in Object.keys(console)? other[0]: 'log' console[tip](text, ...other) } } // end - Functions function getListGoods(){ let self = this, list = $(".indexGoods__item"),//.not(".swiper-slide") past = $(".catalog__displayedItem__marksLine > .floatLeft") this.currentService = Object.keys(services)[0] if (past.length && /\.html.*$/i.test(location.href)){ log("Модуль поиска, активирован для отдного товара...") let name = $(".productPage__card > .name").text() || $(".productPage__card").children().eq(0).text(), button = $("<a class='ic__hasSet search_goods_button'><span class='box_items'></span></a>").css({'margin-left': '8px', height: '24px', 'margin-right': 0}), //$("<div>Goods Find</div>").css({"font": "bold 1em monospace","margin-left": "50px",'color': '#0053b9','float': 'right','cursor':'pointer'}) pastEl = button.find('.box_items') button.mouseenter(function(e){ self.make_menu(pastEl, name) }) button.mouseleave(function(e){ self.del_menu(pastEl) }) past.append(button) } if(list.length){ log("Модуль поиска, активирован для товаров...") list.each(function(indx, el){ if ($(el).find(".search_goods_button").length>0) return const name = $(el).find(".indexGoods__item__name").text(), button = $("<a class='ic__hasSet search_goods_button'><span class='box_items'></span></a>"), pastEl = button.find('.box_items'), managerTop = $(el).find(".indexGoods__item__manageTop") button.mouseenter(function(e){ self.make_menu(pastEl, name) }) button.mouseleave(function(e){ self.del_menu(pastEl) }) if(managerTop.length){ managerTop.children().first().before(button) } else { button.css({left: '50%', top: '-5%', display: 'block', 'z-index': '15','text-align':'left'}) $(el).append(button) } }) // Reviews let sort = $('<div>').css('float', 'right').html(`<select id='sorted_reviews'> <option value="none">Без сортировки</option> <option value="dup">Дата по возр.</option> <option value="dud">Дата по убыв.</option> <option value="sup">Рейтинг по возр.</option> <option value="sd">Рейтинг по убыв.</option> </select>`), select = null $('#tabs_feedbacks h3:eq(0)').append(sort) select = $('#sorted_reviews') sort.change(()=>{ const select_val = select.val() if(select_val == 'none') return let ritems = $('.reviewlist__item[itemprop]'), arr_feed = [], parent = ritems.parent().eq(0) ritems.each((idx,item)=>{ const $item = $(item) if($item.hasClass('noDisplay')) $item.removeClass('noDisplay') let feedback = $item.find('.feedbacksHeader_info') if(feedback.length){ let stars, opit, date if(feedback.length === 3) [stars, opit, date] = [...feedback.get()] if(feedback.length === 2) [stars, date] = [...feedback.get()] stars = stars.children[0].title.includes('Оценка') ? +stars.children[0].title.match(/(\d+)/g) : 0 let [_date, _time] = [...date.children[1].textContent.split(' ')] _date = _date.slice(0,10).split('.').reverse().join('-') _date = new Date(_date+' '+_time+':00') arr_feed.push({el:$item, stars: stars, date: _date}) } }) if(select_val == 'dup' || select_val == 'dud'){ arr_feed.sort(function(a,b) { var an = a.date, bn = b.date return an - bn; }); if(select_val == 'dud') arr_feed.reverse() } if(select_val == 'sup' || select_val == 'sd'){ arr_feed.sort(function(a,b) { var an = a.stars, bn = b.stars return an - bn; }); if(select_val == 'sd') arr_feed.reverse() } for(let i of arr_feed){ let el = i.el el.detach().appendTo(parent) } }) } } getListGoods.prototype.del_menu = function(el_past){ $(el_past).find(".services_search_item_name").remove() //let c = $(el_past).find('.menu_cat').get(0) //if(c) el_past.removeChild(c) } getListGoods.prototype.selectService = function(el, menu, params){ this.prevService.removeClass('service_active') this.prevService = el el.addClass('service_active') this.menu_update(menu, this.split_links(params.name)) } getListGoods.prototype.menu_update = function(menu, params){ menu.empty() $(params.items).each(function(indx,el){ let li = $("<li></li>"), a = $("<a></a>").attr({"href":el.href,"target":"_blank", "title":el.title}).text(el.name) li.append(a) menu.append(li) }) } getListGoods.prototype.make_menu = function(el_past, name){ const self = this this.prevService = null let services_search_item_name = $("<div class='services_search_item_name'></div>"), div_items = $("<div class='services_search'></div>"), ul = $("<ul class='services_list'></ul>"), menu = $("<ul class='menu_cat'></ul>"), params = self.split_links(name) if (el_past.parentNode && el_past.parentNode.className.indexOf('floatLeft')!=-1) services_search_item_name.addClass("menu_cat_list") for(let s in services){ const service = services[s] let li=$(`<li></li>`).attr('title', s).text(s).click(function(){ self.currentService = s self.selectService(li, menu, params) }) if(s == this.currentService && !li.hasClass('service_active')){ this.prevService = li li.addClass('service_active') } ul.append(li) } div_items.append(ul) self.menu_update(menu, params) services_search_item_name.append(div_items,menu) $(el_past).append(services_search_item_name) } getListGoods.prototype.srez = function(text, s=0, e=30){ return text.length>e?text.slice(s,e)+"...":text } getListGoods.prototype.split_links = function(name){ let alllinksOrig = name.split(" "), alllinks = [...alllinksOrig], params = {name:name, items:[]} while(alllinks.length){ let curPop = alllinks.join(' ') if(/(^\d{1}$)|\.{3}/i.test(curPop)) continue curPop = curPop.trim().replace(/,$/ig,'') params.items.push({'href':services[this.currentService].s+encodeURI(curPop),'name':this.srez(curPop,0, 200), 'title':curPop}) curPop = alllinks.pop() } let advVariants = alllinksOrig.map((item)=>({'href':services[this.currentService].s+encodeURI(item),'name':this.srez(item,0, 200), 'title':item})).filter((cv)=>{ for(let x of params.items) if(x.name == cv.name) return false return true }) params.items = [...params.items,...advVariants] return params } new getListGoods() })();