- // ==UserScript==
- // @name 网购省钱助手,自动显示京东、淘宝、聚划算、天猫隐藏优惠券与历史价格。简洁无广告,省钱省心。
- // @name:zh-TW 網購省錢助手,自動顯示京東、淘寶、聚劃算、天貓隱藏優惠券與歷史價格。簡潔無廣告,省錢省心。
- // @namespace https://api.azkou.cn/ts.html
- // @version 1.0.4
- // @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://lib.baomitu.com/jquery/1.8.3/jquery.min.js
- // @require https://lib.baomitu.com/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+='<div class="coupon-box"><div class="coupon-center"><div class="coupon-money" style="width: 100px;"><div></div><div class="fsize30">'+res.money+'</div></div><div class="coupon-info"><div class="fsize22">'+res.label+'</div><div class="mg10">'+res.info+'</div></div><div class="coupon-btn"><a class="" href="'+res.link+'">立即领取</a></div></div></div>';
- }else{
- if(res.show==1){
- html+='<div class="coupon-box"><div class="coupon-center"><div class="coupon-money" style="width: 30px;"></div><div class="coupon-info"><div class="fsize22">'+res.label+'</div><div class="mg10">'+res.info+'</div></div><div class="coupon-btn" style="margin-left: 40px;"><a class="" href="'+res.link+'">多平台比价</a></div></div></div>';
- }
- }
- 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+='<div class="coupon-box"><div class="coupon-center"><div class="coupon-money" style="width: 100px;"><div></div><div class="fsize30">'+res.money+'</div></div><div class="coupon-info"><div class="fsize22">'+res.label+'</div><div class="mg10">'+res.info+'</div></div><div class="coupon-btn"><a class="" href="'+res.link+'">立即领取</a></div></div></div>';
- }else{
- if(res.show==1){
- html+='<div class="coupon-box"><div class="coupon-center"><div class="coupon-money" style="width: 30px;"></div><div class="coupon-info"><div class="fsize22">'+res.label+'</div><div class="mg10">'+res.info+'</div></div><div class="coupon-btn" style="margin-left: 40px;"><a class="" href="'+res.link+'">平台比价</a></div></div></div>';
- }
- }
- 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);
- }
-
- })();