// ==UserScript== // @name 网购省钱助手,自动显示京东、淘宝、聚划算、天猫隐藏优惠券与历史价格。简洁无广告,省钱省心。 // @name:zh-TW 網購省錢助手,自動顯示京東、淘寶、聚劃算、天貓隱藏優惠券與歷史價格。簡潔無廣告,省錢省心。 // @namespace https://api.azkou.cn/ts.html // @version 1.0.3 // @description 网购省钱助手~ 自动显示京东(jd.com)、淘宝(taobao.com)、天猫(tmall.com)、聚划算、天猫超市、天猫国际(tmall.hk)、京东国际(jd.hk)、京东图书、京东大药房(yiyaojd.com)隐藏优惠券,让您开心购物。 // @description:zh-TW 網購省錢助手~ 自動顯示京東(jd.com)、淘寶(taobao.com)、天貓(tmall.com)、聚劃算、天貓超市、天貓國際(tmall.hk)、京東國際(jd.hk)、京東圖書、京東大藥房(yiyaojd.com)隱藏優惠券,讓您開心購物。 // @author 云溪 // @match *://*.taobao.com/* // @match *://*.tmall.com/* // @match *://chaoshi.detail.tmall.com/* // @match *://*.tmall.hk/* // @match *://*.liangxinyao.com/* // @match *://*.jd.com/* // @match *://*.jd.hk/* // @match *://*.yiyaojd.com/* // @match *://*.vip.com/* // @match *://*.vipglobal.hk/* // @exclude *://login.taobao.com/* // @exclude *://login.tmall.com/* // @exclude *://uland.taobao.com/* // @exclude *://pages.tmall.com/* // @exclude *://wq.jd.com/* // @connect azkou.cn // @require https://cdn.bootcdn.net/ajax/libs/jquery/1.8.3/jquery.min.js // @require https://cdn.bootcdn.net/ajax/libs/jquery.qrcode/1.0/jquery.qrcode.min.js // @antifeature referral-link 【应GreasyFork代码规范要求:含有优惠券查询功能的脚本必须添加此提示!在此感谢大家的理解...】 // @grant unsafeWindow // @grant GM_xmlhttpRequest // @grant GM_addStyle // @license AGPL // ==/UserScript== (function() { 'use strict'; let base={ href:location.href, css:`.coupon-box{margin-top:5px;align-items: center;background-image: linear-gradient(150deg, rgb(255, 153, 0), rgb(255, 102, 153));max-width: 380px;color: white;border-radius: 6px;} .coupon-center{display:flex;} .coupon-money{display: flex;align-items: center;justify-content: center;height:70px} .coupon-info{display: flex;flex-direction: column;justify-content: center;min-width: 170px;line-height: 20px;} .coupon-btn{justify-content: center;align-items: center;display: flex;height:70px} .coupon-btn a{display: flex;font-size: 20px;color: white;padding: 5px; } .coupon-btn a:hover{color:rgb(255,153,0)} .fsize30{font-size:30px} .fsize22{font-size:22px} .mg10{margin-top:10px} .mg20{margin-top:20px} `, warp:['.gl-warp >li','.mc .clearfix >li','#J-superkillGoodslist >li','.more2_list >li','.pd_common_wrap'], searchList:[], searchTempList:[], searchKey:0, num:5, getValue(name) { return GM_getValue(name); }, setValue(name, value) { GM_setValue(name, value); }, sleep(time){ return new Promise((resolve) => setTimeout(resolve, time)); }, getParam(name){ var reg = eval("/" + name + "/g"); var r = window.location.search.substr(1); var flag = reg.test(r); if (flag) { return true; } else { return false; } }, api:'https://api.azkou.cn/', tpi:'https://ts.azkou.cn/', post:async(url,data,headers) => { return new Promise((resolve, reject) => { GM_xmlhttpRequest({ method: "POST", url, data, headers, responseType:'json', onload: (res) => { resolve(res.response || res.responseText); }, onerror: (err) => { reject(err); }, }); }); }, addStyle(style){ GM_addStyle(style); }, removeClass(html){ let node_arr = html.split('|'); for (let i = 0; i < node_arr.length; i++) { $(node_arr[i]).remove(); } }, removeHtml(html){ base.removeClass(html); base.sleep(500).then(()=>{ base.removeClass(html); }) }, jumpUrl:(url)=>{ var form=null; if (document.getElementById('redirect_form')) { form = document.getElementById('redirect_form'); form.action = url; } else { form = document.createElement('form'); form.action =url; form.target = '_blank'; form.method = 'POST'; form.setAttribute("id", 'redirect_form'); document.body.appendChild(form); } form.submit(); form.action = ""; form.parentNode.removeChild(form); }, addClassHtml(warp,html){ let node_arr = warp.split('|'); for (let i = 0; i < node_arr.length; i++) { if($('div').is(node_arr[i])){ $(node_arr[i]).after(html); break; } } }, search(){ base.warp.forEach(function(item){ let list=$(item); list.map(function(key,items){ if($(items).attr('data-md5-value')!='yes'){ base.searchList.push(items); base.searchTempList.push(items); $(items).attr('data-md5-key',base.searchKey); $(items).attr('data-md5-value','yes'); base.searchKey++; } }) }) let requestTemp=base.searchTempList.splice(0,base.num); let requestList=[]; requestTemp.forEach(function(item,key){ let temp={}; temp['href']=$(item).find('a:first').attr('href'); temp['md5']=$(item).attr('data-md5-key'); requestList.push(temp); }) if(requestList.length>0){ base.post(`${base.api}?type=jdsearch&`,JSON.stringify({data:requestList}),{}).then((res)=>{ if(res.status==1){ res.data.map(function(item){ if(item.url){ $(base.searchList[item.md5]).find('a').bind("click", function(e) { e.preventDefault(); base.jumpUrl(item.url); }) } }) } }) } } } base.addStyle(base.css); if (base.href.indexOf("//item.taobao.com/item") != -1 || base.href.indexOf("//detail.tmall.com/item") != -1 || base.href.indexOf("//chaoshi.detail.tmall.com/item") != -1 || base.href.indexOf("//detail.tmall.hk/hk/item") != -1 || base.href.indexOf("//detail.tmall.hk/item") != -1) { $.getJSON(base.api+'?type=tbitem&url='+encodeURIComponent(base.href), function(res) { let html=''; if(res.status==1){ html+='
'+res.money+'
'+res.label+'
'+res.info+'
'; }else{ if(res.show==1){ html+='
'+res.label+'
'+res.info+'
'; } } if(res.shortUrl){ $("body").append(res.shortHtml); $(res.qcode).qrcode({render: "canvas", width: 160,height: 150,text: res.shortUrl}); } base.removeHtml(res.rwarp); base.sleep(500).then(()=>{ base.addClassHtml(res.warp,html); }) }) }else if (base.href.indexOf("item.jd") != -1 || base.href.indexOf("item.m.jd") != -1 || base.href.indexOf("//item.yiyaojd.com/") != -1 || base.href.indexOf("//e.jd.com/") != -1 || base.href.indexOf("//pro.jd.com/") != -1 || base.href.indexOf("//pro.m.jd.com/") != -1 || base.href.indexOf("//story.m.jd.com/") != -1 || base.href.indexOf("//prodev.m.jd.com/") != -1 || base.href.indexOf("//prodev.jd.com/") != -1) { if (!base.getParam('utm_campaign')) { $.getJSON(base.tpi+'?type=jditem&url='+encodeURIComponent(base.href), function(res) { if(res.data) window.location.href =res.data; }) } $.getJSON(base.api+'?type=jditem&url='+encodeURIComponent(base.href), function(res) { let html=''; if(res.status==1){ html+='
'+res.money+'
'+res.label+'
'+res.info+'
'; }else{ if(res.show==1){ html+='
'+res.label+'
'+res.info+'
'; } } if(res.shortUrl){ $("body").append(res.shortHtml); $(res.qcode).qrcode({render: "canvas", width: 160,height: 150,text: res.shortUrl}); } base.removeHtml(res.rwarp); if($('div').is(res.warp)){ $(res.warp).after(html); }else{ $('.summary-top').after(html); } }) }else if (base.href.indexOf("jingfen.jd") != -1){ $.getJSON(base.api+'?type=jingfen&url='+encodeURIComponent(base.href), function(res) { base.sleep(500).then(()=>{ base.removeHtml(res.rwarp); $(res.warp).append(res.shortHtml); $(res.qcode).qrcode({render: "canvas", width: 160,height: 150,text: res.shortUrl}); }) }) }else if (base.href.indexOf("jd") != -1 || base.href.indexOf("m.jd") != -1){ setInterval(base.search, 300); } })();