花前省一省©--🔥优惠券+高额返现,省钱60%🔥,支持淘宝、天猫、京东、唯品会、考拉海购,配合APP扫码下单后即可获得返现!!! ~~超多平台支持,长期更新,放心使用。

在淘宝、天猫、京东、唯品会、考拉海购的【商品列表页】和【商品详情页】上显示优惠券详细信息及返现金额,无需进入商品详情页即可查看,商品详情页可直接领券,功能简单,显示直观,支持在商品详情页通过「花前省一省」APP扫码,直接在APP进入商品、领券及获得返现。

As of 2020-12-21. See the latest version.

// ==UserScript==
// @name         花前省一省©--🔥优惠券+高额返现,省钱60%🔥,支持淘宝、天猫、京东、唯品会、考拉海购,配合APP扫码下单后即可获得返现!!!   ~~超多平台支持,长期更新,放心使用。
// @namespace    cyzlizhe
// @version      4.2
// @description  在淘宝、天猫、京东、唯品会、考拉海购的【商品列表页】和【商品详情页】上显示优惠券详细信息及返现金额,无需进入商品详情页即可查看,商品详情页可直接领券,功能简单,显示直观,支持在商品详情页通过「花前省一省」APP扫码,直接在APP进入商品、领券及获得返现。
// @author       cyzlizhe
// @icon         https://s1.ax1x.com/2020/09/15/wybNRS.png
// @match        *://*.taobao.com/*
// @match        *://*.tmall.com/*
// @match        *://*.tmall.hk/*
// @match        *://*.liangxinyao.com/*
// @match        *://*.jd.com/* 
// @match        *://*.jd.hk/*
// @match        *://*.vip.com/*
// @match        *://*.kaola.com/*
// @match        *://*.suning.com/*
// @match        *://*.fengwd.com/*
// @exclude      *://login.taobao.com/*
// @exclude      *://pages.tmall.com/*
// @exclude      *://uland.taobao.com/*
// @require      https://cdn.bootcdn.net/ajax/libs/jquery/1.6.3/jquery.js
// @require      https://cdn.bootcss.com/jquery.qrcode/1.0/jquery.qrcode.min.js
// @require      https://cdn.bootcdn.net/ajax/libs/apexcharts/3.9.0/apexcharts.min.js
// @require      https://cdn.bootcdn.net/ajax/libs/xlsx/0.16.7/xlsx.core.min.js
// @require      https://greasyfork.org/scripts/415153-jquery-re/code/jquery-re.js?version=864346
// @require      https://greasyfork.org/scripts/415390-foo1/code/foo1.js?version=871074
// @run-at       document-start
// @grant        GM_xmlhttpRequest
// @grant        GM_setValue
// @grant        GM_getValue
// @connect     gwdang.com
// @connect     youyizhineng.top
// @note    2020年11月26日12:46:33 优化响应速度
// @note    2020年11月24日11:45:42 新增考拉海购搜索结果页显示返现额度
// @note    2020年11月23日11:08:55 优化淘宝查券速度
// @note    2020年11月12日14:52:46 服务器性能提升,优化查券速度
// @note    2020年11月5日10:46:11  唯品会页面异常修复
// @note    2020年10月30日14:14:54 准被适配考拉海购
// @note    2020年10月28日18:47:22 新增考拉海购详情页支持
// @note    2020年10月27日08:49:59 支持京东国际的预售页面
// @note    2020年10月26日09:53:53 修复页面图片显示异常
// @note    2020年10月25日17:17:19 新增双11领超级红包接口
// @note    2020年10月16日11:23:12 优化京东查券体验
// @note    2020年10月12日10:37:32 解决历史价格一直验证失败的bug,若一直验证失败,可以打开购物党独立验证窗口。
// @note    2020年9月29日09:42:51 接口调整。
// @note    2020年9月28日15:31:39 增加唯品会支持,修复京东图书详情页优惠券返现不出现的bug。
// @note    2020年9月27日09:46:31 增加京东拼购页面的支持。
// @note    2020年9月25日09:23:38 修复京东商品搜索页返现金额显示不正确的bug,修复京东商品返现二维码扫码后找不到商品的bug。
// @note    2020年9月23日09:54:58 京东支持历史价格查询了,优化界面,自动隐藏需要验证和没有历史数据的商品趋势图
// @note    2020年9月22日08:51:05 修复淘宝主页异常显示,修复在无历史价格时仍旧提示验证,修复验证窗口在某种情况下无法关闭,开始适配京东历史价格
// @note    2020年9月21日08:43:03 修复历史价格不显示的bug,调用购物党接口,增加验证环节,验证后可自动刷新显示。
// @note    2020年9月18日18:03:50 新增历史价格显示(目前只支持淘宝),点击可以隐藏/显示,修复京东详情页,价格出来的慢时候代码报错
// @note    2020年9月17日12:49:27 修复部分页面下优惠券会出现两个的问题。
// @note    2020年9月16日15:05:21 修复京东列表页懒加载后隐藏标签无效的bug,修复部分阿里健康大药房不显示优惠券的bug
// @note    2020年9月15日16:05:04 新增对京东新款,京东优评页面的支持,部分界面调整
// @note    2020年9月14日17:32:30 更新,修复部分页面不显示的bug,修复返现金额显示不准确。
// @note    2020年9月13日22:57:15 更新,新增京东优惠券及返现的支持,修复上一版中天猫超市优惠券查询无反应的bug。
// @note    2020年9月10日11:37:20 更新,修复返现金额查询时间长的bug,京东的查券返现功能正在适配中。
// ==/UserScript==

(function () {
    "use strict";
    if (!(location.href.indexOf('fengwd.com') > 0)) {
        // Your code here...
        var style = document.createElement("link");
        style.href = "https://www.youyizhineng.top/query_coupon/query_coupon.css";
        style.rel = "stylesheet";
        style.type = "text/css";
        document.getElementsByTagName("head").item(0).appendChild(style);

        style = document.createElement("link");
        style.href = "https://www.youyizhineng.top/query_coupon/coupon_style.css";
        style.rel = "stylesheet";
        style.type = "text/css";
        document.getElementsByTagName("head").item(0).appendChild(style);

        var obj = {};
        var query_item_list = '';
        var query_data_list_back = '';
        var check_url = '';
        var stop = '';
        var options = {
            title: { // 显示折现图的title
                text: '花前省一省-商品历史价格走势图',
                fontSize: '12px'
            },
            markers: {
                size: 0,
                colors: ['#fbb5b0'],
            },
            chart: {
                height: 200,
                width: "100%",
                type: "area",
                animations: {
                    initialAnimation: {
                        enabled: false
                    }
                }
            },
            series: [
                {
                    name: "价格",
                    data: []
                }
            ],
            xaxis: {
                type: "datetime",
                labels: {
                    datetimeFormatter: {
                        year: 'yyyy',
                        month: 'MM \-yy',
                        day: 'yyyy-MM-dd',
                        hour: 'HH:mm'
                    }
                }
            },
            stroke: {
                curve: 'smooth',
                width: [0.5, 0.5, 0.5]
            },
            colors: ['#F44336'],
            dataLabels: {
                enabled: false,
                style: {
                    colors: ['#000000']
                }
            },
            tooltip: {
                x: {
                    format: 'yyyy-MM-dd'
                },
                y: [{
                    formatter: function (y) {
                        if (typeof y !== "undefined") {
                            return y.toFixed(0) + "元";
                        }
                        return y;
                    }
                }]
            }
        }
        var chart;
        //列表页面操作
        obj.initSearchHtml = function (selectorList) {
            setInterval(function () {
                selectorList.forEach(function (selector) {
                    obj.initSearchItemSelector(selector);
                });
            }, 1000);
        };

        obj.initSearchItemSelector = function (selector) {
            $2(selector).each(function () {
                obj.initSearchItem(this);
            });
        };

        obj.initSearchItem = function (selector) {
            var $this = $2(selector);
            var nid;
            if ($this.hasClass("tb-cool-box-already")) {
                return;
            } else {
                $this.addClass("tb-cool-box-already");
            }
            if (obj.site_type() == "taobao_lst_page") {
                nid = $this.attr("data-id");
                if (!obj.isVailidItemId(nid)) {
                    nid = $this.attr("data-itemid");
                }

                if (!obj.isVailidItemId(nid)) {
                    if ($this.attr("href")) {
                        nid = location.protocol + $this.attr("href");
                    } else {
                        var $a = $this.find("a");
                        if (!$a.length) {
                            return;
                        }

                        nid = $a.attr("data-nid");
                        if (!obj.isVailidItemId(nid)) {
                            if ($a.hasClass("j_ReceiveCoupon") && $a.length > 1) {
                                nid = location.protocol + $2($a[1]).attr("href");
                            } else {
                                nid = location.protocol + $a.attr("href");
                            }
                        }
                    }
                }
            }
            else if (obj.site_type() == "jingdong_lst_page") {
                nid = $this.attr("data-sku");
                if (typeof (nid) == "undefined") {
                    nid = $this.find('.price').attr("data-skuid");
                }
                if (!obj.isVailidItemId(nid)) {
                    nid = $this.find(".p-operate").find("a").attr("skuid");
                }
            }
            else if (obj.site_type() == "vip_list_page") {
                nid = $this.attr("data-product-id");
                if (typeof (nid) == "undefined") {
                    nid = $this.find('.c-goods-item__sale-price').html().split("</span>")[1];
                }
                if (!obj.isVailidItemId(nid)) {
                    // nid = $this.find(".p-operate").find("a").attr("skuid");
                }
            }
            else if (obj.site_type() == "kaola_list_page") {
                nid = $this.find('a').eq(0).attr("href").split("/product/")[1].split(".")[0];
            }

            if (obj.isValidNid(nid)) {
                obj.appenBasicQueryHtml($this, nid);
            }
        };
        //图片上显示提示图标
        obj.initSearchEvent = function () {
            $2(".tb-cool-box-area").live("click", function () {
                var Show_hide_div_id = $2(this).attr("name");
                var a = document.getElementsByName(Show_hide_div_id)[0].style.opacity;
                for (let index = 0; index < document.getElementsByName(Show_hide_div_id).length; index++) {
                    if (a == "" || a == "1") {
                        document.getElementsByName(Show_hide_div_id)[index].style.opacity = "0.2";
                    } else {
                        document.getElementsByName(Show_hide_div_id)[index].style.opacity = "1";
                    }
                }
            });
            $2(".tb-cool-box-area-rm").live("click", function () {
                var Show_hide_div_id = $2(this).attr("name");
                var a = document.getElementsByName(Show_hide_div_id)[0].style.opacity;
                for (let index = 0; index < document.getElementsByName(Show_hide_div_id).length; index++) {
                    if (a == "" || a == "1") {
                        document.getElementsByName(Show_hide_div_id)[index].style.opacity = "0.2";
                    } else {
                        document.getElementsByName(Show_hide_div_id)[index].style.opacity = "1";
                    }
                }
            });
        };

        obj.basicQuery = function () {
            setInterval(function () {
                $2(".tb-cool-box-wait").each(function () {
                    obj.basicQueryItem(this);
                });
            }, 300);
        };

        obj.basicQuery_list = function () {
            setInterval(function () {
                if ($2(".tb-cool-box-wait").length > 0) {
                    query_item_list = query_item_list.substr(0, query_item_list.length - 1);
                    obj.update_list_data(query_item_list);
                    query_item_list = '';
                }
                if ($2(".tb-cool-box-wait-rm").length > 0 && query_data_list_back != '') {
                    $2(".tb-cool-box-wait-rm").each(function () {
                        obj.basicQueryListItem(this, query_data_list_back, 'refresh_cashback');
                    });
                    query_data_list_back = '';
                }
            }, 500);
        };


        obj.update_list_data = function (query_item_list) {
            if (query_item_list == '') {
                return;
            }
            var operate = '';
            if (obj.site_type() == "jingdong_lst_page") {
                operate = "quert_list_jd";
            } else if (obj.site_type() == "vip_list_page") {
                operate = "quert_list_vip";
            } else if (obj.site_type() == "taobao_lst_page") {
                operate = "quert_list_tb";
            } else if (obj.site_type() == "kaola_list_page") {
                operate = "kaola_list";
            }
            var url =
                "https://www.youyizhineng.top/query_coupon/query_coupon_new.php?operate=" + operate + "&itemid_list=" +
                query_item_list;
            // console.log(url);
            $2.getJSON(url, function (data) {
                // console.log(data);
                $2(".tb-cool-box-wait").each(function () {
                    obj.basicQueryListItem(this, data, '');
                });
                query_data_list_back = data;
            });
        }


        obj.appenBasicQueryHtml = function (selector, nid) {
            if (obj.site_type() == "jingdong_lst_page" || obj.site_type() == "vip_list_page" || obj.site_type() == "taobao_lst_page" || obj.site_type() == "kaola_list_page") {
                query_item_list = query_item_list + nid + ",";
            }

            selector.append(
                '<div class="tb-cool-box-area tb-cool-box-wait"  data-nid="' + nid + '"  name="c_div_' +
                nid +
                '"><a class="tb-cool-box-info tb-cool-box-info-default" title="点击查询">查询中...</a></div>'
            );
            selector.append(
                '<div class="tb-cool-box-area-rm tb-cool-box-wait-rm"  data-nid="' + nid + '"  name="r_div_' +
                nid +
                '"><a class="tb-cool-box-info tb-cool-box-info-default" title="点击查询">查询中...</a></div>'
            );
        };

        obj.basicQueryItem = function (selector) {
            var $this = $2(selector);
            var url;
            $this.removeClass("tb-cool-box-wait");

            var nid = $this.attr("data-nid");
            url =
                "https://www.youyizhineng.top/query_coupon/query_coupon_new.php?operate=quert_single&itemid=" +
                nid;

            var xhr1 = new XMLHttpRequest();//第一步:新建对象
            xhr1.open('GET', url, true);//第二步:打开连接  将请求参数写在url中
            xhr1.send();//第三步:发送请求  将请求参数写在URL中
            /**
             * 获取数据后的处理程序
             */
            xhr1.onreadystatechange = function () {
                if (xhr1.readyState == 4 && xhr1.status == 200) {
                    var res = xhr1.responseText;//获取到json字符串,解析
                    var data = JSON.parse(res);

                    if (data.couponmoney != 0 || data.return_money_rate != 0) {
                        obj.showBasicQueryFind($this, data.couponmoney, data.return_money_rate, data.url2, '');
                    } else {
                        obj.showBasicQueryEmpty($this);
                    }
                }
            }
        };
        obj.basicQueryListItem = function (selector, data, flag) {
            if (flag == 'refresh_cashback') {
                var $this = $2(selector).prev();
            } else {
                var $this = $2(selector);
            }
            var url;
            var each_couponmoney;
            var each_return_money_rate;
            var each_return_money;
            var each_url2;
            if ($this.hasClass("tb-cool-box-wait")) {
                $this.removeClass("tb-cool-box-wait");
            } else {
                return;
            }
            // $this.next().removeClass("tb-cool-box-wait-rm");

            var nid = $this.attr("data-nid");
            if (typeof (data[nid]) == "undefined") {
                each_couponmoney = 0;
                each_return_money_rate = 0;
                each_url2 = '';
            }
            else {
                each_couponmoney = data[nid].couponmoney;
                each_return_money_rate = data[nid].return_money_rate;
                if (obj.site_type() == "vip_list_page" || obj.site_type() == "kaola_list_page") {
                    each_return_money = data[nid].return_money;
                }
                each_url2 = data[nid].url2;
            }

            if (each_couponmoney != 0 || each_return_money_rate != 0) {
                obj.showBasicQueryFind($this, each_couponmoney, each_return_money_rate, each_url2, each_return_money)
            } else {
                obj.showBasicQueryEmpty($this);
            }
        };

        obj.showBasicQueryFind = function (selector, couponMoney, rm_Money, url2, return_money) {
            var price;
            if (selector.find(".tb-cool-box-info-find").length > 0) {
                return;
            }
            if (couponMoney == "0") {
                selector.html(
                    '<a target="_blank" class="tb-cool-box-info tb-cool-box-info-find" title="显示/隐藏">无券</a>'
                );
            } else {
                selector.html(
                    '<a target="_blank" class="tb-cool-box-info tb-cool-box-info-find" title="显示/隐藏">有券(减' +
                    couponMoney +
                    "元)</a>"
                );
            }

            var url = location.href;
            if (url.indexOf("//s.taobao.com/search") > 0 || url.indexOf("//s.taobao.com/list") > 0) {
                price = selector.prev().find("strong").html();
                if (url2 != '') {
                    selector.prev().find(".J_ClickStat").attr("href", url2);
                    selector.prev().prev().find(".pic").find("a").attr("href", url2);
                }
            }
            else if (url.indexOf("//list.tmall.com/search_product.htm") > 0) {
                price = selector.prev().find("em").attr('title');
                if (price > 0) {
                    price = selector.prev().find("em").attr('title');
                    if (url2 != '') {
                        selector.prev().find(".productTitle").find("a").attr("href", url2);
                        selector.prev().find(".productImg").attr("href", url2);
                    }
                }
                else {
                    price = selector.prev().find(".item-price").find("strong").html();
                }
            }
            else if (url.indexOf("//list.tmall.hk/search_product.htm") > 0) {
                price = selector.prev().find("em").attr('title');
                if (url2 != '') {
                    selector.prev().find(".productTitle").find("a").attr("href", url2);
                    selector.prev().find(".productImg").attr("href", url2);
                }
            }
            else if (url.indexOf("//maiyao.liangxinyao.com/shop/view_shop.htm") > 0) {
                price = selector.prev().prev().find(".c-price").html();
                if (price > 0) {
                    price = selector.prev().prev().find(".c-price").html();
                    if (url2 != '') {
                        selector.prev().prev().find("a").attr("href", url2);
                        selector.prev().prev().prev().find("a").attr("href", url2);
                    }
                }
                else {
                    price = selector.prev().find(".c-price").html();
                    if (url2 != '') {
                        selector.prev().find("a").attr("href", url2);
                        selector.prev().prev().find("a").attr("href", url2);
                    }
                }
            }
            else if (url.indexOf("//search.jd.com/Search") > 0 || url.indexOf("//list.jd.com/list.html") > 0) {
                price = selector.prev().find(".p-price").find("i").html();
                if (price > 0) {
                    price = selector.prev().find(".p-price").find("i").html();
                }
            }
            else if (url.toLowerCase().indexOf("//search.jd.hk/search".toLowerCase()) > 0) {
                price = selector.prev().find(".price").find("span").html().split('>')[2];
            }
            else if (url.toLowerCase().indexOf("//www.jd.com/xinkuan".toLowerCase()) > 0) {
                price = selector.prev().find(".price").find("strong").html().split('¥')[1];
                if (price == "暂无报价") {
                    return;
                }
            }

            if (obj.site_type() != "vip_list_page" && obj.site_type() != "kaola_list_page") {
                var rm_Money_clc = Math.round(Math.floor((price - couponMoney) * rm_Money * 1000) / 10) / 100;
            } else {
                var rm_Money_clc = Math.floor(return_money * 100) / 100;
            }

            if (rm_Money_clc < 0) {
                rm_Money_clc = Math.round(Math.floor(price * rm_Money * 1000) / 10) / 100;
            }

            if (rm_Money_clc != 0) {
                selector.next().html(
                    '<a target="_blank" class="tb-cool-box-info tb-cool-box-info-find-rm" title="使用APP「花前省一省」扫码宝贝详情页二维码可得返现">返现(约' +
                    rm_Money_clc +
                    "元)</a>"
                );
            }
            else {
                selector.next().html(
                    '<a target="_blank" class="tb-cool-box-info tb-cool-box-info-find" title="显示/隐藏">无返现</a>'
                );
            }
        };

        obj.isNumber = function (val) {
            var regPos = /^\d+(\.\d+)?$/; //非负浮点数
            var regNeg = /^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$/; //负浮点数
            if (regPos.test(val) || regNeg.test(val)) {
                return true;
            } else {
                return false;
            }
        }
        obj.showBasicQueryEmpty = function (selector) {
            // selector.addClass("tb-cool-box-info-translucent");
            selector.html(
                '<a href="javascript:void(0);" class="tb-cool-box-info tb-cool-box-info-empty" style="opacity:0.5;" title="切换透明度">暂无优惠</a>'
            );
            selector
                .next()
                .html(
                    '<a href="javascript:void(0);" class="tb-cool-box-info tb-cool-box-info-empty" style="opacity:0.5;" title="切换透明度">暂无返现</a>'
                );
        };

        obj.site_type = function () {
            var url = location.href;
            if (
                url.indexOf("//item.taobao.com/item.htm") > 0 ||
                url.indexOf("//detail.tmall.com/item.htm") > 0 ||
                url.indexOf("//chaoshi.detail.tmall.com/item.htm") > 0 ||
                url.indexOf("//detail.tmall.hk/hk/item.htm") > 0 ||
                url.indexOf("//detail.liangxinyao.com/item.htm") > 0 ||
                url.indexOf("//detail.tmall.hk/item.htm") > 0
            ) {
                return "taobao_details_page";
            } else if (
                url.indexOf("//maiyao.liangxinyao.com/shop/view_shop.htm") > 0 ||
                url.indexOf("//list.tmall.com/search_product.htm") > 0 ||
                url.indexOf("//s.taobao.com/search") > 0 ||
                url.indexOf("//list.tmall.hk/search_product.htm") > 0
            ) {
                return "taobao_lst_page";
            }
            else if (
                url.indexOf("//search.jd.com/Search") > 0 ||
                url.indexOf("//search.jd.hk/search") > 0 ||
                url.indexOf("//www.jd.com/xinkuan") > 0 ||
                url.indexOf("//list.jd.com/list.html") > 0 ||
                url.indexOf("//search.jd.hk/Search") > 0
            ) {
                return "jingdong_lst_page";
            }
            else if (
                url.indexOf("//item.jd.hk") > 0 ||
                url.indexOf("//pcitem.jd.hk") > 0 ||
                url.indexOf("//item.jd.com") > 0
            ) {
                return "jingdong_details_page";
            }
            else if (
                url.indexOf("//category.vip.com/suggest.php") > 0 ||
                url.indexOf("//list.vip.com") > 0
            ) {
                return "vip_list_page";
            }
            else if (
                url.indexOf("//detail.vip.com") > 0
            ) {
                return "vip_detail_page";
            }
            else if (
                url.indexOf("//m.vip.com/product") > 0
            ) {
                return "vip_detail_page_m";
            }
            else if (
                url.indexOf("//goods.kaola.com/product") > 0
            ) {
                return "kaola_detail_page";
            }
            else if (
                url.indexOf("//search.kaola.com/search.html") > 0
            ) {
                return "kaola_list_page";
            }
            else if (
                url.indexOf("//product.suning.com") > 0
            ) {
                return "suning_detail_page";
            }
        }
        obj.isDetailPageTaoBao = function (url) {
            if (
                url.indexOf("//item.taobao.com/item.htm") > 0 ||
                url.indexOf("//detail.tmall.com/item.htm") > 0 ||
                url.indexOf("//chaoshi.detail.tmall.com/item.htm") > 0 ||
                url.indexOf("//detail.tmall.hk/hk/item.htm") > 0
            ) {
                return true;
            } else {
                return false;
            }
        };

        obj.DetailPageTB_or_TM_or_JD = function () {

            var url = location.href;
            if (url.indexOf("//item.taobao.com/item.htm") > 0 || url.indexOf("//detail.liangxinyao.com/item.htm") > 0) {
                return 1;
            }
            else if (url.indexOf("//detail.tmall.com/item.htm") > 0) {
                return 2;
            }
            else if (url.indexOf("//item.jd.com") > 0) {
                return 3;
            }
        };


        obj.isVailidItemId = function (itemId) {
            if (!itemId) {
                return false;
            }

            var itemIdInt = parseInt(itemId);
            if (itemIdInt == itemId && itemId > 10000) {
                return true;
            } else {
                return false;
            }
        };

        obj.isValidNid = function (nid) {
            if (!nid) {
                return false;
            } else if (nid.indexOf("http") >= 0) {
                if (
                    obj.isDetailPageTaoBao(nid) ||
                    nid.indexOf("//detail.ju.taobao.com/home.htm") > 0
                ) {
                    return true;
                } else {
                    return false;
                }
            } else {
                return true;
            }
        };

        obj.getprice = function (selector) {
            if (!nid) {
                return false;
            } else if (nid.indexOf("http") >= 0) {
                if (
                    obj.isDetailPageTaoBao(nid) ||
                    nid.indexOf("//detail.ju.taobao.com/home.htm") > 0
                ) {
                    return true;
                } else {
                    return false;
                }
            } else {
                return true;
            }
        };

        obj.get_tb_price = function (price_str) {
            var price = '';
            if (price_str != null) {
                if (price_str.indexOf("-") > 0) {
                    price = price_str.split("-")[0];
                }
                else {
                    price = price_str;
                }
            }
            return price;
        };

        obj.get_data = function () {
            var operate = '';
            if (obj.site_type() == "taobao_details_page") {
                if (location.href.indexOf('ali_trackid=2:') > 0) {
                    return;
                }
                operate = "get_info_tb";
                
            }
            else if (obj.site_type() == "jingdong_details_page") {
                if (location.href.length > 70) {
                    return;
                }
                operate = "get_info";
            } else if (obj.site_type() == "vip_detail_page") {
                if (location.href.indexOf("wq=1") > 0) {
                    return;
                }
                operate = "get_info_vip&vip_type=1";
            } else if (obj.site_type() == "vip_detail_page_m") {
                var arry_url_tmp = location.href.split('m.vip.com/product');
                window.location.href = arry_url_tmp[0] + 'detail.vip.com/detail' + arry_url_tmp[1];
                stop = '1';
                return;
            } else if (obj.site_type() == "kaola_detail_page") {
                if (location.href.indexOf("?__") > 0) {
                    return;
                }
                operate = "get_info_kaola";
            }
            var url =
                "https://www.youyizhineng.top/query_coupon/query_coupon_new.php?operate=" + operate + "&data_i=" +
                encodeURIComponent(location.href);
            $2.ajax({
                url: url,
                async: false,
                timeout: 500,
                // dataType: "json",
                success: function (data) {
                    try {
                        var data_tmp = JSON.parse(data);
                        if (obj.site_type() == "taobao_details_page") {
                            if (data_tmp.data_ii > 0) {
                                return;
                            }
                        }

                        if (data_tmp.data_i != null) {
                            window.location.href = data_tmp.data_i;
                            stop = '1';
                        }
                    } catch {

                    }
                }
            })
        };

        obj.generate_trend_data = function (all_begin_time, all_line) {

            if (all_line.length > 0) {
                for (let index = 0; index < all_line.length; index++) {
                    var data_tmp = {};
                    var newTime = new Date(all_begin_time);
                    newTime = newTime.setDate(newTime.getDate() + index);
                    newTime = new Date(newTime);

                    var newTime_d = (newTime.getMonth() + 1).toString().padStart(2, '0') + "-" + newTime.getDate().toString().padStart(2, '0') + "-" + newTime.getFullYear() + " GMT";
                    data_tmp["x"] = newTime_d;
                    data_tmp["y"] = all_line[index];
                    options.series[0].data.push(data_tmp);
                }
            }
        };
        obj.query_trend_data = function () {
            //获得价格波动var url = location.href;
            var gwdUrl = "https://browser.gwdang.com/extension/price_towards?url=" + encodeURIComponent(location.href);
            GM_xmlhttpRequest({
                url: gwdUrl,
                method: 'GET',
                timeout: 10000,
                headers: {
                    'Content-Type': 'application/json',
                    'Accept': 'application/json',
                    'Cache-Control': 'public'
                },
                onload: function (res) {
                    //loadingMask.parentNode.removeChild(mask);
                    const json = JSON.parse(res.responseText);
                    const data = json;
                    if (data.is_ban == null) {
                        // console.log(typeof (data.store));
                        var all_line;
                        var all_begin_time;
                        if ($2("#float_div").css("display") == "block") {
                            location.reload();
                        }
                        if (typeof (data.store) != "undefined" && data.store[0].all_line != null) {
                            all_begin_time = data.store[0].all_line_begin_time;
                            all_line = data.store[0].all_line;
                            if (all_line.length != 0) {
                                obj.generate_trend_data(all_begin_time, all_line);
                            } else {
                                options.title.text = "花前省一省-本商品暂无历史数据";
                            }
                        }
                        else {
                            options.title.text = "花前省一省-本商品暂无历史数据";
                        }
                        // console.log(check_url);
                    } else {
                        options.title.text = "本次需要验证:【点击上方按钮进行验证】";
                        check_url = data.action.to;
                    }
                }
            });
        }
        obj.add_iframe = function () {
            if (options.title.text == "花前省一省-本商品暂无历史数据") {
                $2(".image-status").attr("title", "历史数据加载成功");
                $2(".image-status").attr("src", "https://s1.ax1x.com/2020/10/26/BnYQkn.png");

                $2(".status-span").html("经查询,本商品暂无历史数据");
                $2("#coupon-wrap-trend").css("display", "none");
            }
            else if (options.series[0].data.length > 0) {
                $2(".image-status").attr("title", "历史数据加载成功");
                $2(".image-status").attr("src", "https://s1.ax1x.com/2020/10/26/BnYQkn.png");
            } else {
                //在chart上提示显示文字
                $2(".trend-div").append('<span class="cover-chart-span">21321321321</span>');

                $2(".image-status").attr("title", "需要验证");
                $2(".image-status").attr("src", "https://s1.ax1x.com/2020/10/26/BnYkfP.gif");
                $2(".image-status").css("cursor", "pointer");
                $2("#coupon-wrap-trend").css("display", "none");

                $2(".status-span").html("← 点击左侧按钮验证");
                $2("body").append('<div id="float_div" class="frame_div"></div>');
                document.getElementById("float_div").style.left = (window.screen.width - 800) / 2 + "px";
                document.getElementById("float_div").style.top = (window.screen.height - 500) / 2 + "px";
                $2("#float_div").append('<iframe id="iframe_check" src="" ></iframe>');
                $2("#iframe_check").attr("src", check_url);
                $2("#iframe_check").attr("scrolling", "no");
                $2("#float_div").append('<div class="cover"><img src="https://s1.ax1x.com/2020/09/23/wjSB4K.png" alt="未命名1600825169" border="0"><br>验证后将自动刷新,若一直验证失败,<a style="color:red" target="_blank"  href="' + check_url + '">点击此处</a>在独立页面中验证后关闭即可</div>');
                $2(".image-status").click(function (event) {
                    $2("#float_div").css("display", "none");
                    if ($2("#float_div").css("display") == "block") {
                        $2("#float_div").css("display", "none");
                    } else {
                        $2("#float_div").css("display", "block");
                        var w_check = setInterval(function () {
                            obj.query_trend_data();
                            if (options.series[0].data.length > 0) {
                                // console.log(options);
                                $2("#float_div").css("display", "none");
                                chart = new ApexCharts(document.querySelector("#chart"), options);
                                chart.render();
                                clearInterval(w_check);
                            }
                        }, 1000);
                    }
                });
                //关闭按钮
                $2("#float_div").append('<img class="cover-close" src="https://s1.ax1x.com/2020/10/26/BnYYXF.png" ></img>');
                $2(".cover-close").click(function (event) {
                    $2("#float_div").css("display", "none");
                });
            }


            $2("#trend_click").click(function (event) {
                $2("#coupon-wrap-qr").css("display", "none");
                if ($2("#coupon-wrap-trend").css("display") == "block") {
                    $2("#coupon-wrap-trend").css("display", "none");
                } else {
                    $2("#coupon-wrap-trend").css("display", "block");
                }
            });
        }

        obj.close = function () {
            window.close();
        }
        obj.generateCouponArea = function () {
            var productId = '';
            var operate = '';
            var singleOrlist = '';
            if (obj.site_type() == "taobao_details_page") {
                operate = 'quert_single';
                singleOrlist = 'itemid';
                obj.get_data();
                if (stop == '1') {
                    return;
                }
                var params = location.search.split("?")[1].split("&");
                for (var index in params) {
                    if (params[index].split("=")[0] == "id") {
                        productId = params[index].split("=")[1];
                        break;
                    }
                }
            }
            else if (obj.site_type() == "jingdong_details_page") {
                operate = 'quert_single_jd';
                singleOrlist = 'itemid';
                //get data
                obj.get_data();
                if (stop == '1') {
                    return;
                }
                productId = location.href.split("//")[1].split("/")[1].split(".")[0];
            }
            else if (obj.site_type() == "vip_detail_page" || obj.site_type() == "vip_detail_page_m") {
                operate = 'quert_list_vip';
                singleOrlist = 'itemid_list';
                //get data
                obj.get_data();
                if (stop == '1') {
                    return;
                }
                productId = location.href.split("-")[location.href.split("-").length - 1].split(".")[0];
            }
            else if (obj.site_type() == "kaola_detail_page") {
                operate = 'kaola_single';
                singleOrlist = 'itemid_list';
                //get data
                obj.get_data();
                if (stop == '1') {
                    return;
                }
                productId = location.href.split("/product/")[1].split(".")[0];
            }

            obj.query_trend_data();
            var url = "https://www.youyizhineng.top/query_coupon/query_coupon_new.php?operate=" + operate + "&" + singleOrlist + "=" + productId;

            var xhr = new XMLHttpRequest();//第一步:新建对象
            xhr.open('GET', url, true);//第二步:打开连接  将请求参数写在url中
            xhr.send();//第三步:发送请求  将请求参数写在URL中
            /**
             * 获取数据后的处理程序
             */
            xhr.onreadystatechange = function () {
                if (xhr.readyState == 4 && xhr.status == 200) {
                    var res = xhr.responseText;//获取到json字符串,解析
                    var data;
                    if (obj.site_type() == "taobao_details_page") {
                        data = JSON.parse(res);
                    }
                    else if (obj.site_type() == "jingdong_details_page" || obj.site_type() == "vip_detail_page" || obj.site_type() == "vip_detail_page_m" || obj.site_type() == "kaola_detail_page") {
                        var data_tmp = JSON.parse(res);
                        data = data_tmp[productId];
                    }
                    var couponArea;
                    if (data.couponmoney == 0) {
                        couponArea =
                            '<div class="coupon-wrap"><div class="stamp stamp04">' +
                            '<div class="par"><sub class="sign">¥</sub><span style="font-size:20px">暂无隐藏优惠券</span><p></p></div>' +
                            "<i></i></div></div>";
                    } else {
                        var howToGetCoupons = '直接领券';
                        if (obj.site_type() == "taobao_details_page") {
                            // howToGetCoupons = '扫码领券';
                        }
                        couponArea =
                            '<div class="coupon-wrap"><div class="stamp stamp04">' +
                            '<div class="par"><sub class="sign">¥</sub><span>' +
                            data.couponmoney +
                            "</span><p>" +
                            data.couponexplain +
                            "</p></div>" +
                            '<div class="copy">优惠券<p>' +
                            data.couponstarttime +
                            "<br>" +
                            data.couponendtime +
                            // '</p><a onmouseover=alert(1) onmouseout=alert(2) href="' +
                            '</p><a href="' +
                            data.url1 +
                            '">' + howToGetCoupons + '</a></div>' +
                            "<i></i></div></div>";
                    }

                    if (data.return_money_rate == 0) {
                        couponArea =
                            couponArea +
                            '<div class="coupon-wrap-rm"><div class="rm-div">' +
                            '<span>暂无返现</span>' +
                            '<div class="rm-btn" id="a_click">其他功能</div>' +
                            '</div></div>' +
                            '<div class="coupon-wrap-rm"><div class="rm-div">' +
                            '<div class="trend-btn" id="trend_click">历史价格走势<img class="trend-btn-img" src="https://s1.ax1x.com/2020/10/26/BnY0t1.png" alt=""></div>' +
                            '<img class="image-status">' +
                            '<em class="status-span"></em>' +
                            '</div></div>' +
                            '<div id="coupon-wrap-qr" class="coupon-wrap-qr"><div class="qr-code-div">' +
                            '<img class="qr-img" src="https://s1.ax1x.com/2020/10/26/BnY7jS.png"></img>' +
                            '<span class="title">「花前省一省」是一款领券返现的APP,支持淘宝、天猫、京东、拼多多、唯品会等等主流平台~还有点外卖领券返现,电影票优惠购,全网vip视频免费看等功能,让您花钱之前,再省一省</span>' +
                            '<span class="foot" style="height:20px">扫码下载,支持IOS和安卓,也可在各大应用市场下载</span>' +
                            '</div></div>' +
                            '<div id="coupon-wrap-trend" class="coupon-wrap-price"><div class="trend-div">' +
                            '<div id="chart"></div>' +
                            '</div></div>';
                    } else {
                        couponArea =
                            couponArea +
                            '<div class="coupon-wrap-rm"><div class="rm-div" style="width:600px">' +
                            '<span id="rm_money">返现查询中...</span>' +
                            '<div class="rm-btn" id="a_click">点击领取返现</div>' +
                            '</div></div>' +
                            '<div class="coupon-wrap-rm"><div class="rm-div">' +
                            '<div class="trend-btn" id="trend_click">历史价格走势<img class="trend-btn-img" src="https://s1.ax1x.com/2020/10/26/BnY0t1.png" alt=""></div>' +
                            '<img  class="image-status" >' +
                            '<em class="status-span"></em>' +
                            '</div></div>' +
                            '<div id="coupon-wrap-qr" class="coupon-wrap-qr"><div class="qr-code-div">' +
                            '<div id="qrcode"></div><span class="title">获得返现只需三步~</br></br>①应用商店下载APP:花前省一省</br>②使用APP主页扫一扫功能扫左侧生成的商品码</br>③在APP上领券下单,确认收货后返现将进入app账户余额~</br><br>花前省一省--花钱之前,再省一省</span>' +
                            '<span class="foot" style="height:20px">支持IOS和安卓,各大应用市场均有下载</span>' +
                            '</div></div>' +
                            '<div id="coupon-wrap-trend" class="coupon-wrap-price"><div class="trend-div">' +
                            '<div id="chart"></div>' +
                            '</div></div>';
                    }

                    var ls = setInterval(function () {
                        if ($2(".coupon-wrap").length == 0) {
                            if (obj.site_type() == "taobao_details_page") {
                                if ($2(".tm-fcs-panel").length > 0) {
                                    $2(".tm-fcs-panel").after(couponArea);
                                } else if ($2("ul.tb-meta").length > 0) {
                                    $2("ul.tb-meta").after(couponArea);
                                }
                                var qr_code_text = obj.DetailPageTB_or_TM_or_JD() + '//' + productId;
                            } else if (obj.site_type() == "jingdong_details_page") {
                                if (location.href.indexOf('//item.jd.com') > 0) {
                                    if ($2(".summary-first").length > 0) {
                                        $2(".summary-first").after(couponArea);
                                    }
                                    else if ($2("#summary").length > 0) {
                                        $2("#summary").after(couponArea);
                                    }
                                    else if ($2("#pingou").length > 0) {
                                        $2("#pingou").after(couponArea);
                                    }
                                } else if (location.href.indexOf('//item.jd.hk') > 0) {
                                    if ($2(".summary-first").length > 0) {
                                        $2(".summary-first").after(couponArea);
                                    }
                                    else if ($2("#summary").length > 0) {
                                        $2("#summary").after(couponArea);

                                    }
                                    else if ($2("#summary-wrap").length > 0) {
                                        $2("#summary-wrap").after(couponArea);

                                    }
                                    else if ($2(".summary").length > 0) {
                                        $2(".summary").after(couponArea);

                                    }
                                } else if (location.href.indexOf('//pcitem.jd.hk') > 0) {
                                    if ($2(".summary").length > 0) {
                                        $2(".summary").after(couponArea);
                                    }
                                }
                                var qr_code_text = obj.DetailPageTB_or_TM_or_JD() + '//' + productId;
                            } else if (obj.site_type() == "vip_detail_page" || obj.site_type() == "vip_detail_page_m") {
                                if ($2("#J-pi-price-box").length > 0) {
                                    $2("#J-pi-price-box").after(couponArea);
                                }
                                var qr_code_text = location.href + "/--/vipvip";
                            } else if (obj.site_type() == "kaola_detail_page") {
                                if ($2(".m-price-wrap").length > 0) {
                                    $2(".m-price-wrap").after(couponArea);
                                }
                                var qr_code_text = location.href + "/--/kaola";
                            }
                            $2(".coupon-wrap").eq(0).before(data.html);
                            $2("#qrcode").qrcode({ width: 150, height: 150, text: qr_code_text });
                            $2("#a_click").click(function (event) {
                                $2("#coupon-wrap-trend").css("display", "none");
                                if ($2("#coupon-wrap-qr").css("display") == "block") {
                                    $2("#coupon-wrap-qr").css("display", "none");
                                } else {
                                    $2("#coupon-wrap-qr").css("display", "block");
                                }
                            });

                            obj.add_iframe();
                            chart = new ApexCharts(document.querySelector("#chart"), options);
                            chart.render();

                            clearInterval(ls);
                            return;
                        }
                    }, 300);

                    setInterval(function () {
                        var rm = '0';
                        var price = '0';
                        if (obj.site_type() == "taobao_details_page") {
                            var price_str = '';
                            if ($2(".tm-price-panel").find(".tm-price").length > 0) {
                                var price_str = $2(".tm-price-panel").find(".tm-price").html();
                            } else if ($2("#J_StrPrice").find(".tb-rmb-num").length > 0) {
                                var price_str = $2("#J_StrPrice").find(".tb-rmb-num").html();
                            }
                            var price = obj.get_tb_price(price_str);

                            var price_prompt_str = '';
                            if ($2(".tm-promo-price").find(".tm-price").length > 0) {
                                price_prompt_str = $2(".tm-promo-price").find(".tm-price").html();
                            } else if ($2("#J_PromoPriceNum").length > 0) {
                                price_prompt_str = $2("#J_PromoPriceNum").html();
                            }
                            var price_prompt = obj.get_tb_price(price_prompt_str);
                            if (price != null) {
                                if (price_prompt != null && price_prompt != '') {
                                    rm = Math.round(Math.floor((price_prompt - data.couponmoney) * data.return_money_rate * 1000) / 10) / 100;
                                    if (rm < 0) {
                                        rm = Math.round(Math.floor(price_prompt * data.return_money_rate * 1000) / 10) / 100;
                                    }
                                }
                                else {
                                    rm = Math.round(Math.floor((price - data.couponmoney) * data.return_money_rate * 1000) / 10) / 100;
                                    if (rm < 0) {
                                        rm = Math.round(Math.floor(price * data.return_money_rate * 1000) / 10) / 100;
                                    }
                                }


                            }
                        }
                        else if (obj.site_type() == "jingdong_details_page") {
                            if (location.href.indexOf('//item.jd.com')) {
                                if ($2("#summary-price").find("#jd-price").length > 0) {
                                    price = $2("#summary-price").find("#jd-price").html().split("</span>")[1];
                                } else if ($2(".p-price").find("span").eq(1).length > 0) {
                                    price = $2(".p-price").find("span").eq(1).html();
                                }
                            } else {
                                price = $2(".p-price").find("span").eq(1).html();
                            }

                            if (price > 0) {
                                rm = Math.round(Math.floor((price - data.couponmoney) * data.return_money_rate * 1000) / 10) / 100;
                                if (rm < 0) {
                                    rm = Math.round(Math.floor(price * data.return_money_rate * 1000) / 10) / 100;
                                }
                            }
                        }
                        if (obj.site_type() == "vip_detail_page" || obj.site_type() == "vip_detail_page_m" || obj.site_type() == "kaola_detail_page") {
                            if ($2("#rm_money").length > 0) {
                                $2("#rm_money").html("返现约为:" + Math.floor(data.return_money * 100) / 100 + "元");
                            }
                        }
                        else if (rm > 0) {
                            var str = '返现约为:' + rm + '元'
                            $2("#rm_money").html(str);
                        }
                    }, 300);
                }
            };
        };


        if (obj.site_type() == "taobao_details_page") {
            obj.generateCouponArea();
        } else if (obj.site_type() == "taobao_lst_page") {
            if (document.title.indexOf("天猫超市") > 0) {
                // return;
            }
            var selectorList = [];
            var url = location.href;
            if (
                url.indexOf("//s.taobao.com/search") > 0 ||
                url.indexOf("//s.taobao.com/list") > 0
            ) {
                selectorList.push(".items .item");
            } else if (url.indexOf("//list.tmall.com/search_product.htm") > 0) {
                selectorList.push(".product");
                selectorList.push(".chaoshi-recommend-list .chaoshi-recommend-item");
            } else if (url.indexOf("//list.tmall.hk/search_product.htm") > 0) {
                selectorList.push("#J_ItemList .product");
            } else if (url.indexOf("//maiyao.liangxinyao.com/shop/view_shop") > 0) {
                selectorList.push("#J_ShopSearchResult .item");
            }
            if (selectorList && selectorList.length > 0) {
                obj.initSearchHtml(selectorList);
                obj.initSearchEvent();
                obj.basicQuery_list();
            }
        } else if (obj.site_type() == "jingdong_details_page") {
            obj.generateCouponArea();
        } else if (obj.site_type() == "jingdong_lst_page") {
            var selectorList_jd = [];
            selectorList_jd.push(".gl-item");
            selectorList_jd.push(".sku-detail");
            obj.initSearchHtml(selectorList_jd);
            obj.initSearchEvent();
            obj.basicQuery_list();
        } else if (obj.site_type() == "vip_list_page") {
            var selectorList_vip = [];
            selectorList_vip.push(".c-goods-item");
            obj.initSearchHtml(selectorList_vip);
            obj.initSearchEvent();
            obj.basicQuery_list();
        } else if (obj.site_type() == "vip_detail_page" || obj.site_type() == "vip_detail_page_m") {
            obj.generateCouponArea();
        } else if (obj.site_type() == "kaola_detail_page") {
            obj.generateCouponArea();
        }

        $2(document).ready(function () {
            if (obj.site_type() == "kaola_list_page") {
                var selectorList_kaola = [];
                selectorList_kaola.push(".goods.colorsku");
                obj.initSearchHtml(selectorList_kaola);
                obj.initSearchEvent();
                obj.basicQuery_list();
            }
        });
    }
})();