Greasy Fork is available in English.

磁力链接百度网盘补完

磁力链接、百度网盘补完

// ==UserScript==
// @name         磁力链接百度网盘补完
// @namespace    http://tampermonkey.net/
// @version      2.91
// @description  磁力链接、百度网盘补完
// @author       backrock12
// @include      https://*
// @include      http://*
// @grant        GM_registerMenuCommand
// @grant        GM_unregisterMenuCommand
// @grant        GM_xmlhttpRequest
// @grant        GM_setValue
// @grant        GM_getValue
// @grant        GM_addStyle
// @require      http://libs.baidu.com/jquery/2.0.0/jquery.min.js
// @exclude      /(^[^:\/#\?]*:\/\/([^#\?\/]*\.)?www\.gamersky\.com(:[0-9]{1,5})?\/.*$)/
// @exclude      /(^[^:\/#\?]*:\/\/([^#\?\/]*\.)?www\.baidu\.com(:[0-9]{1,5})?\/.*$)/
// @exclude      /(^[^:\/#\?]*:\/\/([^#\?\/]*\.)?www\.ciweimao\.com(:[0-9]{1,5})?\/.*$)/
// @exclude      /(^[^:\/#\?]*:\/\/([^#\?\/]*\.)?greasyfork\.org(:[0-9]{1,5})?\/.*$)/
// @exclude      /(^[^:\/#\?]*:\/\/([^#\?\/]*\.)?pan\.baiduwp\.com(:[0-9]{1,5})?\/.*$)/
// @exclude      *aliyundrive*
// @connect      baidu.com
// ==/UserScript==

(function () {
  "use strict";
  var $ = $ || window.$;
  //   console.log("UrlLinePlugin");

  //延遲執行
  const await_url = [/tieba\.baidu\.com/, /xxgame\.net/];

  //字符串格式化方法
  String.prototype.UrlLineformat = function (args) {
    let result = this;
    if (arguments.length > 0) {
      if (arguments.length == 1 && typeof args == "object") {
        for (let key in args) {
          if (args[key] != undefined) {
            const reg = new RegExp("({" + key + "})", "g");
            result = result.replace(reg, args[key]);
          }
        }
      } else {
        for (let i = 0; i < arguments.length; i++) {
          if (arguments[i] != undefined) {
            const reg = new RegExp("({)" + i + "(})", "g");
            result = result.replace(reg, arguments[i]);
          }
        }
      }
    }
    return result;
  };

  $.fn.replaceText = function (search, replace, action, text_only) {
    return this.each(function () {
      var node = this.firstChild,
        val,
        new_val, // Elements to be removed at the end.
        remove = [];

      if (node) {
        do {
          if (node.nodeType === 3) {
            val = node.nodeValue;
            if (val && val.trim().length > 5) {
              if (!action && replace) {
                new_val = val.replace(search, replace);
              } else {

                const t = search.exec(val);
                // if (val.indexOf("baidu") > 0) {
                //   console.log(val);
                //   console.log(t);
                // }
                if (action && t && t.length > 0) new_val = action(node, val, t);
                else new_val = val;
              }
              if (new_val !== val) {
                if (!text_only && /</.test(new_val)) {
                  $(node).before(new_val);
                  remove.push(node);
                } else {
                  node.nodeValue = new_val;
                }
              }
            }
          }
        } while ((node = node.nextSibling));
      }
      remove.length && $(remove).remove();
    });
  };

  //默认配置参数  default settings
  const default_settings = {
    magnetfilter:
      /((\u672c\u7ad9\u6682?\u4e0d\u63d0\u4f9b(\u6587\u4ef6)?\u4e0b\u8f7d))|(不提供(文件)?下载)/g,
    magnetPattern:
      /(magnet:\?)?(xt=)?(urn:btih:)?(?=.{0,31}[0-9])(?=.{0,31}[a-z])([0-9A-Z]{32,40})(?![:.\-\!\?a-z0-9])/gi,
    pixivurl:
      "<a href='https://www.pixiv.net/member_illust.php?mode=medium&illust_id={0}' target='_blank'>{1}</a>",
    bilibiliurl:
      "<a href='https://www.bilibili.com/video/av{0}/' target='_blank'>{1}</a>",
    magneturl:
      "<a href='magnet:?xt=urn:btih:{0}' target='_blank' urlline='true'>magnet:?xt=urn:btih:{1}</a>",
    baiduurl1:
      "<a href='https://pan.baidu.com/s/1{0}' target='_blank' urlline='true' urltype='head'>" +
      " https://pan.baidu.com/s/1{1} </a>",
    baiduurl2:
      "<a href='https://pan.baidu.com/s/1{0}?pwd={1}' target='_blank' urlline='true' >{2}</a>",
    baiduurl3:
      "<a href='https://pan.baidu.com/s/1{0}' target='_blank' urlline='true' urltype='tail' >{1}</a>",
    baiduurl4:
      "<a href='https://pan.baidu.com/s/1{0}?pwd={1}' target='_blank' urlline='true' urltype='head'> https://pan.baidu.com/s/1{2}?pwd={3} </a>",
    baiduPattern0:
      /((https?:\/\/)?pan\.baidu\.com\/s\/1([a-zA-Z0-9_\-]{5,22})|(https?:\/\/)?pan\.baidu\.com\/share\/init\?surl=([a-zA-Z0-9_\-]{5,22})|[^a-zA-Z]s\/1([a-zA-Z0-9_\-]{5,22})|\bs\/1([a-zA-Z0-9_\-]{5,22}))/,
    baiduPattern1: /(https?:\/\/)?pan\.baidu\.com\/s\/1([a-zA-Z0-9_\-]{5,22})/,
    baiduPattern2:
      /(https?:\/\/)?pan\.baidu\.com\/share\/init\?surl=([a-zA-Z0-9_\-]{5,22})/,
    baiduPattern3: /\/?s\/1([a-zA-Z0-9_\-]{5,22})/,
    baiduPattern4: /\/?s?\/?1([a-zA-Z0-9_\-]{5,22})(?!\.)/,
    baiduPattern5: /(神秘代码)1([a-zA-Z0-9_\-]{5,22})/,
    common_reg1:
      /\s*(提取密碼|提取密码|提取码|提取碼|提取|密碼|密码|百度|百度云|云盘|yun|通关口令|本帖隐藏的内容)[::]?\s*(<[^>]+>)?\s*([0-9a-zA-Z]{4,})\s*/,
    common_reg2:
      /\s*(百度网盘密码|提取密碼|提取密码|提取码|提取碼|提取|密碼|密码|百度|百度云|云盘|yun|通关口令|本帖隐藏的内容)[::]?\s*/,
    common_reg3: /\s*(<[^>]+>)?\s*([0-9a-zA-Z]{4,})\s*/,
    common_reg4: /[::]?\s*(<[^>]+>)?\s*([0-9a-zA-Z]{4,8})/,
    common_r: "\\s*({0})[::]?\\s*(<[^>]+>)?\\s*([0-9a-zA-Z]{4,})\\s*",
    url_reg: /(http|https):\/\/(www.)?(\w+(\.)?)+/,
    Pwnum: 5,
    defaults_ULSetting: {
      Magnet_mk: true,
      Baidu_mk: true,
      CHeck_mk: true,
      Desc_mk: true,
      Log_mk: true,
      DescUrl: [],
      Pwlist: [],
    },
  };

  function FormatGet(key) {
    if (key == "DownUrl") {
      if (!arguments[3]) {
        return default_settings.baiduurl1.UrlLineformat(
          arguments[2],
          arguments[2]
        );
      } else {
        return default_settings.baiduurl2.UrlLineformat(
          arguments[2],
          arguments[3],
          arguments[3]
        );
      }
    } else if (key == "Url") {
      return default_settings.baiduurl3.UrlLineformat(
        arguments[0],
        arguments[1]
      );
    } else if (key == "baiduurl4") {
      if (!arguments[2]) {
        return default_settings.baiduurl1.UrlLineformat(
          arguments[1],
          arguments[1]
        );
      } else {
        return default_settings.baiduurl4.UrlLineformat(
          arguments[1],
          arguments[2],
          arguments[1],
          arguments[2]
        );
      }
    }
  }

  function SettingCheck(key, value) {
    if (key == "baiduPattern0") {
      return default_settings.baiduPattern0.test(value);
    } else if (key == "common_reg2") {
      return default_settings.common_reg2.test(value);
    }
  }

  function SettingGet(key, value) {
    let ss;
    if (key == "common_reg4") {
      return (ss = default_settings.common_reg4.exec(value)) && 3 === ss.length
        ? ss[2]
        : null;
    } else if (key == "common_reg3") {
      return (ss = default_settings.common_reg3.exec(value)) && 3 === ss.length
        ? ss[2]
        : null;
    } else if (key == "common_reg1") {
      return (ss = default_settings.common_reg1.exec(value)) && 4 === ss.length
        ? ss[3]
        : null;
    } else if (key == "baiduPattern0") {
      ss = default_settings.baiduPattern0.exec(value);
      return ss[3] ? ss[3] : ss[5] ? ss[5] : ss[6] ? ss[6] : ss[7];
    } else if (key == "baiduPattern4") {
      return (ss = default_settings.baiduPattern4.exec(value)) &&
        2 === ss.length
        ? ss[1]
        : null;
    }
  }

  function Getnextnode(node, isDesc_Mk) {
    let loopnum = default_settings.Pwnum;
    let bnode;
    if (isDesc_Mk) {
      bnode = node == node.previousSibling ? null : node.previousSibling;
    } else {
      bnode = node == node.nextSibling ? null : node.nextSibling;
    }
    if (!bnode)
      bnode = isDesc_Mk
        ? node.parentNode.previousSibling
        : node.parentNode.nextSibling;
    while (node && !bnode && loopnum >= 0) {
      bnode = isDesc_Mk ? node.previousSibling : node.nextSibling;
      node = node.parentNode;
      loopnum--;
      if (!bnode && bnode.length < 4) bnode = null;
    }
    return bnode;
  }

  function FindNextPw(node, Pid, isDesc_Mk = null) {
    let loopnum = default_settings.Pwnum;
    let isreg2 = false;
    let re = false;
    $(node).attr("urltype", "head");
    isDesc_Mk = isDesc_Mk;
    let bnode = Getnextnode(node, isDesc_Mk);
    if (bnode) {
      do {
        let bh = bnode.nodeValue ? bnode.nodeValue : bnode.outerHTML;
        let bt = bnode.nodeValue ? bnode.nodeValue : bnode.innerText;
        if (bnode && bt) {
          if (SettingCheck("baiduPattern0", bt)) break;
          let pw = SettingGet("common_reg1", bt);
          if (isreg2) pw = SettingGet("common_reg3", bt);
          if (pw != null && pw.length > 0 && pw.length < 8) {
            let retext = FormatGet("DownUrl", "", Pid, pw);
            let h = bh.replace(pw, retext);
            $(bnode).replaceWith(h);
            re = true;
            break;
          } else {
            if (SettingCheck("common_reg2", bt)) isreg2 = !isreg2;
          }
        }
        bnode = Getnextnode(bnode, isDesc_Mk);
        if (!bnode) break;
        if (!bt) {
          loopnum--;
        }
      } while (loopnum >= 0);
    }
    $(node).attr("urlline", re);
    $(node).attr("target", "_blank");
    return re;
  }

  function ReplaceorPw(node, e, n) {
    let Pid = SettingGet("baiduPattern0", n[0]);
    if (!Pid) return e;
    let retext = FormatGet("DownUrl", n[0], Pid);
    let v = e.replace(n[0], retext);
    let pw = SettingGet("common_reg1", e);
    let ischeck = false;
    let s;
    if (!pw) {
      s = e.substring(e.indexOf(Pid) + Pid.length);
      if (SettingCheck("baiduPattern0", s)) {
        ischeck = true;
      } else {
        pw = SettingGet("common_reg4", s);
      }
    }
    if (pw) {
      let retext2 = FormatGet("DownUrl", "", Pid, pw);
      v = v.replace(pw, retext2);
    } else {
      FindNextPw(node, Pid);
    }
    if (ischeck) {
      v = ReplaceorPw(node, v, [s]);
    }
    return v;
  }

  function UrlLinePlugin(options) {
    this.settings = $.extend({}, default_settings, options);
    this._defaults = default_settings;
    this.init();
  }

  let ULSetting;
  let Desc_Mk = false;
  let MenuID, setupID;

  UrlLinePlugin.prototype = {
    init: function () {
      //   console.log("init");
      let gm_Setting = GM_getValue("UrlLineSetting");

      ULSetting = $.extend({}, default_settings.defaults_ULSetting, gm_Setting);
      //   console.log(ULSetting);

      if (ULSetting.Desc_mk) {
        if (ULSetting.DescUrl && ULSetting.DescUrl.length > 0) {
          let DescTxt = `(${ULSetting.DescUrl.join("|")})`;
          if (DescTxt) {
            let DescUrlReg = new RegExp(DescTxt);
            if (DescUrlReg.test(location.href)) Desc_Mk = true;
          }
        }
      }

      addMenu(Desc_Mk);
      function addMenu(mk) {
        if (setupID) {
          if (ULSetting.Desc_mk) GM_unregisterMenuCommand(MenuID);
          GM_unregisterMenuCommand(setupID);
        }
        if (mk) {
          if (ULSetting.Desc_mk)
            MenuID = GM_registerMenuCommand("取消反向查找", OffDescUrl);
          setupID = GM_registerMenuCommand("设置", opensetup);
        } else {
          if (ULSetting.Desc_mk)
            MenuID = GM_registerMenuCommand("设置反向查找", OnDescUrl);
          setupID = GM_registerMenuCommand("设置", opensetup);
        }
      }

      function OnDescUrl() {
        let urls = location.href.match(default_settings.url_reg);
        if (urls) {
          if (!ULSetting.DescUrl) {
            ULSetting.DescUrl = [urls[0]];
          } else {
            ULSetting.DescUrl = ULSetting.DescUrl.concat(urls[0]);
          }
          GM_setValue("UrlLineSetting", ULSetting);
          Desc_Mk = true;
          addMenu(Desc_Mk);
          //   console.log(ULSetting);
        } else {
          console.log("OnDescUrl 获取URL失敗");
        }
      }

      function OffDescUrl() {
        let urls = location.href.match(default_settings.url_reg);
        if (urls) {
          let index = ULSetting.DescUrl.indexOf(urls[0]);
          if (index > -1) {
            ULSetting.DescUrl.splice(index, 1);
            GM_setValue("UrlLineSetting", ULSetting);
            Desc_Mk = false;
            addMenu(Desc_Mk);
          }
          //   console.log(ULSetting);
        } else {
          console.log("OffDescUrl 获取URL失敗");
        }
      }

      function opensetup() {
        let content = document.createElement("div");
        document.body.appendChild(content);
        content.outerHTML = `
                  <div id="ULPContent">
                  <div
                    style="color:#000000;font-size: 14px; width:250px;/*height:300px;*/position:fixed;left:50%;top:50%;margin-top:-50px;margin-left:-180px;z-index:100000;background-color:#ffffff;border:1px solid #afb3b6;opacity:0.95;filter:alpha(opacity=95);box-shadow:5px 5px 20px 0px#000;">
                    <div style="text-align:center">
                      <h3>设置</h3>
                    </div>
                    <div>
                      <div style="float: left;margin: 5px 0px 0px 10px;width: 85px;">magnet链接</div>
                      <div style="float: left;margin: 5px 0px 0px 5px;width: 140px;text-align: center;"><input id="Magnet_mk"
                          type="checkbox"></div>
                    </div>
 
                    <div>
                      <div style="float: left;margin: 5px 0px 0px 10px;clear: left;width: 85px;">百度网盘链接</div>
                      <div style="float: left;margin: 5px 0px 0px 5px;width: 140px;text-align: center;"><input id="Baidu_mk"
                          type="checkbox"></div>
                    </div>
                    <div>
                      <div style="float: left;margin: 5px 0px 0px 10px;clear: left;width: 85px;">检测链接状态</div>
                      <div style="float: left;margin: 5px 0px 0px 5px;width: 140px;text-align: center;"><input id="CHeck_mk"
                          type="checkbox"></div>
                    </div>
                    <div>
                    <div style="float: left;margin: 5px 0px 0px 10px;clear: left;width: 85px;">记录提取码</div>
                    <div style="float: left;margin: 5px 0px 0px 5px;width: 140px;text-align: center;"><input id="Log_mk"
                        type="checkbox"></div>
                    </div>
                    <div>
                      <div style="float: left;margin: 5px 0px 0px 10px;clear: left;width: 85px;">反向查找</div>
                      <div style="float: left;margin: 5px 0px 0px 5px;width: 140px;text-align: center;"><input id="Desc_mk"
                          type="checkbox"></div>
                    </div>
                    <div>
                      <div style="float: left;margin: 5px 0px 0px 10px;clear: left;width: 85px;">反向查找URL</div>
                      <div style="float: left;margin: 5px 0px 0px 5px;width: 140px;text-align: center;"><input id="DescUrl"
                          type="text" value="">
                      </div>
                    </div>
                    <div>
                      <div style="float: left;margin: 10px 0px 10px 10px;clear: left;width: 100px;text-align: center;">
                        <button id="btsvae">Save</button>
                      </div>
                      <div style="float: left;margin: 10px 0px 10px 10px;width: 100px;text-align: center;">
                        <button id="btcolse">Close</button>
                      </div>
                    </div>
                  </div>
                </div>
                  `;

        $("#Magnet_mk").prop("checked", ULSetting.Magnet_mk);
        $("#Baidu_mk").prop("checked", ULSetting.Baidu_mk);
        $("#CHeck_mk").prop("checked", ULSetting.CHeck_mk);
        $("#Desc_mk").prop("checked", ULSetting.Desc_mk);
        $("#DescUrl").val(ULSetting.DescUrl.join("|"));
        $("#Log_mk").prop("checked", ULSetting.Log_mk);

        $("#btcolse").click(function () {
          $("#ULPContent").css("display", "none");
          $("#ULPContent").remove();
        });

        $("#btsvae").click(function () {
          ULSetting.Magnet_mk = $("#Magnet_mk").prop("checked");
          ULSetting.Baidu_mk = $("#Baidu_mk").prop("checked");
          ULSetting.CHeck_mk = $("#CHeck_mk").prop("checked");
          ULSetting.Desc_mk = $("#Desc_mk").prop("checked");
          ULSetting.DescUrl = $("#DescUrl").val().split("|");
          ULSetting.Log_mk = $("#Log_mk").prop("checked");

          GM_setValue("UrlLineSetting", ULSetting);
          $("#ULPContent").css("display", "none");
          $("#ULPContent").remove();
        });
      }
    },
    Star: function () {
      const t = this;
      //   console.log("star");

      let isawait = false;
      for (let index = 0; index < await_url.length; index++) {
        if (await_url[index].test(location.href)) isawait = true;
      }

      if (isawait) {
        setTimeout(function () {
          console.log("await");
          t.StarReplace.call(t);
        }, 2000);
      } else {
        t.StarReplace.call(t);
      }

      document.addEventListener("keydown", function (e) {
        /* CTR + Z */
        if (e.keyCode == 90 && e.ctrlKey) {
          t.StarReplace.call(t);
        } else if (e.keyCode == 88 && e.ctrlKey) {
          t.BaiduFilter(t);
        }
      });
    },
    StarReplace: function () {
      const obj = this;
      if (ULSetting.Magnet_mk) obj.MagnetReplace(obj);
      if (ULSetting.Baidu_mk) obj.BaiduReplace(obj);
      if (ULSetting.CHeck_mk) obj.BaiduCHeckStatus();
    },

    MagnetReplace: function (obj) {
      try {
        obj._subMagnetReplace(obj);
      } catch (err) {
        console.log("Magnet replace Error:" + err.message);
      }
    },

    BaiduReplace: function (obj) {
      try {
        if (/pan\.baidu\.com/.test(location.href)) {
          obj.BaiduPassword();
          obj.AddPWButton();
          setTimeout(function () {
            let g = $(".K5a8Tu");
            // console.log(g);
            if (g) g.hide();
          }, 100);
        } else {
          obj._subBaiduReplace();
        }
      } catch (err) {
        console.log("baidu replace Error:" + err.message);
      }
    },
    BaiduPassword: function () {
      //console.log("baiduPassword");
      // $(".file-name").css('white-space','inherit');
      $("[class*='global-icon-16']").css("float", "left");

      let url = location.href;
      if (location.hash) {
        url = location.href.substring(0, location.href.indexOf("#"));
      }

      let pwinput = $(".QKKaIE");
      if (!pwinput)
        pwinput = $(":contains('请输入提取码'):last").nextAll("input");
      if (!pwinput)
        pwinput = $(":contains('请输入提取码'):last").next().find("input");
      let pwbtn = $("a:contains('提取文件')");
      if (!pwbtn)
        pwinput = $("#submitBtn");

      pwbtn.click(function () {
        let pw = pwinput.val();
        if (pw) {
          let err = $("div:contains('提取码错误')");
          if (err.length > 0) return;
          let pwmap = new Map();
          if (ULSetting.Pwlist) pwmap = new Map(ULSetting.Pwlist);
          pwmap.set(url, pw);
          ULSetting.Pwlist = [...pwmap];
          GM_setValue("UrlLineSetting", ULSetting);
        }
      });

      if (pwbtn.length > 0) {
        //填寫密碼
        if (location.hash && location.hash.length == 5) {
          pwinput.val(location.hash.slice(1, 5));
          setTimeout(function () {
            pwbtn.click();
          }, 50);
        } else {
          if (ULSetting.Pwlist) {
            let pwmap = new Map(ULSetting.Pwlist);
            let pw = pwmap.get(url);
            if (pw) {
              pwinput.val(pw);
              setTimeout(function () {
                pwbtn.click();
              }, 50);
            }
          }
        }
      }
    },
    _subMagnetReplace: function () {

      const mlist = $("body *")
        .not("script")
        .not("a")
        .not("style")
        .not("meta")
        .not("input")
        .not("img")
        .not("title")
        .not("head")
        .not('iframe *')
        .not('video *')
        .not("link");
      mlist.replaceText(default_settings.magnetfilter, "");
      function magnetReplacer(match, p1, p2, p3, p4) {
        let value = match
          .replace("magnet:?", "")
          .replace("xt=", "")
          .replace("urn:btih:", "");
        return default_settings.magneturl.UrlLineformat(value, match);
      }
      $("body *")
        .not("script")
        .not("a")
        .not("style")
        .not("meta")
        .not("input")
        .not("img")
        .not("title")
        .not("head")
        .not('iframe *')
        .not('video *')
        .not("link")
        .not("a[urlline='true']")
        .replaceText(default_settings.magnetPattern, magnetReplacer);
      console.log(location.href + "is magnet replace");
    },

    _subBaiduReplace: function (obj) {
      function subpw() {
        let h = $(this).attr("href");
        if (SettingCheck("baiduPattern0", h)) {
          let Pid = SettingGet("baiduPattern0", h);
          FindNextPw(this, Pid);
        } else {
          if (/\.bdimg.com/.test(h)) {
            let t = $(this).text();
            if (SettingCheck("baiduPattern0", t)) {
              let tPid = SettingGet("baiduPattern0", t);
              FindNextPw(this, tPid);
            }
          }
        }
      }

      function subpwauto() {
        // console.log("subpwauto");
        if ($(this).attr("urlline") == true) {
          return;
        }
        let h = $(this).attr("href");
        if (h == "javascript:;") return;

        if (SettingCheck("baiduPattern0", h)) {
          let Pid = SettingGet("baiduPattern0", h);
          if (!FindNextPw(this, Pid, false)) {
            FindNextPw(this, Pid, true);
          }
        } else {
          if (/\.bdimg.com/.test(h)) {
            let t = $(this).text();
            if (SettingCheck("baiduPattern0", t)) {
              let tPid = SettingGet("baiduPattern0", t);
              if (!FindNextPw(this, tPid, false)) {
                FindNextPw(this, tPid, true);
              }
            }
          }
        }
      }

      let wlist = $("body *")
        .not("script")
        .not("a")
        .not("style")
        .not("meta")
        .not("input")
        .not("img")
        .not("title")
        .not("head")
        .not('iframe *')
        .not('video *')
        .not("link");


      // wlist = wlist.filter(function () {
      //   console.log('filter')
      //   const aa = $(this).attr("class");
      //   if (aa && aa.indexOf('bpx-') > -1) {
      //     console.log($(this).attr("class"))
      //     console.log($(this).contents().find('iframe').length)


      //     if (self.frameElement) {
      //       console.log(self.frameElement.tagName);
      //     }
      //     return false;
      //   }
      //   return $(this).closest('iframe').length === 0;
      // });
      //   console.log(wlist);

      wlist.replaceText(
        default_settings.baiduPattern0,
        function (match, p1, p2, p3) {
          // console.log(match);
          let Pid = SettingGet("baiduPattern0", match);
          return FormatGet("Url", Pid, match);
        },
        ReplaceorPw
      );

      $("a[urlline!='true']").each(subpwauto);
      //$("a").click(subpwauto);
      console.log(location.href + "is baidu replace");
    },

    BaiduFilter: function (obj) {
      let r = window.getSelection();
      if (r.rangeCount > 0) {
        for (let i = 0; i < r.rangeCount; i++) {
          let s = r.getRangeAt(i);
          let seltext = s.toString();
          console.log("Selection" + seltext);
          let filtertext = seltext.replace(
            /([\u4e00-\u9fa5]|[::??!!])+/,
            ""
          );
          let Pid, purl, pw;
          if (SettingCheck("baiduPattern0", filtertext)) {
            Pid = SettingGet("baiduPattern0", filtertext);
          }
          if (!Pid) Pid = SettingGet("baiduPattern4", filtertext);

          if (Pid) {
            let lasttext = $.trim(
              filtertext.substring(filtertext.indexOf(Pid) + Pid.length)
            );
            if (lasttext) {
              pw = SettingGet("common_reg1", lasttext);
              if (!pw) pw = SettingGet("common_reg4", lasttext);
            }
            purl = FormatGet("baiduurl4", Pid, pw);
          }

          if (purl) {
            let a = $(purl)[0];
            try {
              s.insertNode(a);
              let span = $('<span style="color:#A9A9A9"></span>')[0];
              s.surroundContents(span); //将创建的元素环绕在光标选中的文字周围
              s.collapse(false);
              console.log("Selection Success" + s);
            } catch (e) {
              console.log("Selection Error" + e.message);
            }
          }
        }
      }
    },

    AddPWButton: function () {
      //   console.log("AddPWButton");

      //       $("div.slide-show-right").css("width", "500px");
      //       let Pbutton = $('<span class="g-dropdown-button"></span>');
      //       let button_a = $(
      //         '<a class="g-button g-button-blue" data-button-id="b200" data-button-index="200" href="javascript:void(0);"></a>'
      //       );
      //       let button_a_span = $(
      //         '<span class="g-button-right"><em class="icon icon-download" title="跳转到PanDownload"></em><span class="text" style="width: 60px;">PanDown</span></span>'
      //       );
      //       let Pbutton_span = $(
      //         '<span class="menu" style="width:auto;z-index:41"></span>'
      //       );

      //       button_a.append(button_a_span);
      //       Pbutton.append(button_a).append(Pbutton_span);
      //       Pbutton.click(function() {
      //         let url = window.location.href;
      //         url = url.replace("baidu.com", "baiduwp.com");
      //         window.open(url, "_blank");
      //       });
      //       $("div.module-share-top-bar div.bar div.x-button-box").append(Pbutton);
      //Pbutton.insertBefore($("a:contains('请输入提取码')"));

      setTimeout(noad, 500);
      setTimeout(noad, 1000);
      setTimeout(noad, 3000);

      function noad() {
        $("#web-multi-bottom > a:nth-child(2)").css("display", "none");
        $("#web-right-view").css("display", "none");
        $(".gOIbzPb").css("display", "none");
        $(".vyQHNyb").css("display", "none");
        $(".app-download").css("display", "none");
        $(".KQcHyA").css("display", "none");
        $(".share-center").css("display", "none");
        $("#web-single-bottom").css("display", "none");
        $(".phone-banner").css("display", "none");

        $("body > div").css("background-image", "")
        $(".mainContent").css("background-image", "")

        $(".business-ad-content").css("display", "none");
        $(".btn-img-tips").css("display", "none");


        const styletext = '#init-new > div { top: 50%;left: 50%;transform: translate(-50%, -50%); }';
        GM_addStyle(styletext)
        // console.log("noad");
      }
    },
    BaiduCHeckStatus: function () {
      //$("a[urlline]").each(function () {
      $("a[urltype='head']").each(function () {
        let h = $(this).attr("href");
        httpcheck(h, this);
      });
      console.log(location.href + "is BaiduCHeckStatus");

      let pageTexts = [
        { key: "链接不存在", status: "isDisabled" },
        { key: "页面不存在", status: "isDisabled" },
        { key: "无法访问", status: "isDisabled" },
        { key: "已过期", status: "isDisabled" },
        { key: "你来晚了", status: "isDisabled" },
        { key: "请输入提取码", status: "isLock" },
        { key: "失效时间", status: "isOk" },
        { key: "过期时间", status: "isOk" },
      ];

      const css =
        `.UL_ico_isLock{
                  background: transparent url("data:image/png;base64,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") center left no-repeat;
                  padding-left: 20px;
                  background-size:18px 18px;}` +
        `.UL_ico_isOk{
                  background: transparent url("data:image/png;base64,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") center left no-repeat;
                  padding-left: 20px;
                  background-size:16px 16px;}` +
        `.UL_ico_isDisabled{
                  background: transparent url("data:image/png;base64,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") center left no-repeat;
                  padding-left: 20px;
                  background-size:16px 16px;}` +
        `.UL_ico_isUnknown{
                  background: transparent url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAMAAACahl6sAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAANlBMVEUAAAD/jwD7iwD9iwD/jQL/jAL/jAH+jAH+jAH+jAH+jAH9iwD8igD/hwD/igD8jAD+jAH///9Amn3zAAAAEHRSTlMAEEBwj5+vv8/f74BgIDBQKYtp5AAAAAFiS0dEEeK1PboAAAAHdElNRQfjBxEQKzajbeTmAAAHgUlEQVR42t1d64KzKgxcvCJY9f2f9qvrcWstQSEToGf+b90hFxISws+PDFRV103Tdr3WgzHDoPuuba0dq4fQB/EMptm22iw0+u7JJ/e/eUFitnq5iaGZVe7/102isl45OGXTzLn/7RMiSLzITLn/+x3qvj65oW0BHkDN0bI4ohvz0qgaBIsNbTZPpiqmSn2oWBaxPHUKSyMPFVUL0FgxJKWi7CBD4xdNMh6zJI0VaaQy9cI0ntDym6QCOlwfpPWrktaqPxhJ/Zq6VDRWaLHApU6jVS/UIjRUm5jGE71AypLOOo4wcPeVXK12YNVLJbXydyDVK49a7TCw+H7OpVY7QFtKNvN4AWIodW4WKyyfR5Obw4aWSSPHLuhGz+OR0e2eof8nPDhMyuLB0K5i7IPJpBB/dUQXw6OI/eOMiAy4SB4R0cqYPy6BMJlK5bEsQbGwEjoQRcCE5CeFbSDvCHDChRr6jttBfcEGsuGmmZRsIBtumknRBrLhlpkUbiAbbpjJo3QD2XB9cAesfgxd2zR1PY7W/rbXIIlcJicz6DtNPX1a5DQ2sHW6CFUU4ihOW5/gH5g66oXnsvwP2Gv1rSzAEL3nKuyt0DQ3qzMzP/30LRhXg7uAKsDE1bCB/m3mFhJa9huZBkl+jmnpETVl3soZ6md5lh5Vx5hYa0ecCPME0sTVY1gRKiESlpzjD/45Dsb5VdbacA7LGY7YKZKRwWNg1fkYeYPLcTEEwqzyMYzTIRJOtMitjFVIkTBsjltN4ijXh0gYAjH85heGcp1FwjA4/xG5mqa5uryjEO9pTl9XjLCXtnQ1t3+/O7TeSCxaJKe8hKFZZNL50WznCyrjizHvngbsyle4wnRN7jfxK/m2kI94HlTK6c7R6J0z3tyP9seIewMjUDIbwugWYxMhrrKQARS1ecbr1mErmeJ5LG7HWoX+wY9C/AsMzSJ8lkfEVH9M/P/Q3vnsFdy7oU9PqAQ1fif7+0WGVIn19XpzYgNlRN+7bnECX6et++MEwtwZarFvZZxDB6fp+leGiM0YjRa7kTAOHdzbgj9OIPwDYzkN30TcRIaIvwHoBcdEnC7oYmUIiXAOg2v2LzhDxotzJaIAyClddlwTWasI9RntxY5AdPiwT+o4JhIFYh9hrecaVHMCrRgQmsX7N9bF4RzMxX4z3LAuULN/IRhUDxyvTcGyfyEUVELJOf1YNreV4FrhAVRexazCGq63CAWlWEyBLAvr3CEcrZIRyBqkMA6Qg0FWtdgCefrCdE7L0If2/KJ7nY5ITxd9AQ0wFtC0cQumpotafMVac6s0nfwecfwoxAbQJSHiEwfockeXYmPXvsE6oEsqfYKN3dsSwWt9OCwWK5+5A+OtlFaoDspBOkIx3nlNuLuaRpiIV62QdwMN48j1BlqveUC1WpSIt2MIfNVGkojvQpQCX0Uzgl7LxwN+Q36QI+LpGEKL45eI2IZYpRPHsm6IUiEK3WkjclGzFwsaqY1Q6GJ5L3aRlSreCmlAK0WEOBiF5B5uIkIZIuF7xZKGRuro191qI3dAYFE3X86IqPYyvydUHnHm6IIHHQ9Ox8HFDye0kPXIVChGUWk1S0tttItLIIK1sV5McV1EBGtjq7cXcVvOpgDB09lRSuDORgJBp7V6exn/21bTGZJjun6dZNZxZhhsClDgIJdQbC0cQkFKSmyRXfIeDjz+iyO+3kj2xqmvN5L9fODrjWTPGb7eSP5C7S83kldv4Zcbyet8IGkbBx6HtPqrdesYaX/FUBcKx/b8r/Zbb+ccckVq3TWNbQWL4O/90EJZ6GG2CGDshhvvFz9EdOvUuSEzdf58wVZgvT5L7BK57vkSBz7ecrUKCGjwx1fgW4nz9Bcu+M9KJXqx3Pd2IEOWjnDc8QJ/gug0A5uJq3SMFQl1pxrsHp2X7qAiIceKQ7/iblCHioTsboKmDO7lghoiORsBaSTUjQHkN0giSLlT+osUCdkeC8wY6DF0wNUiiQC3RM87BbgyHNmSiYsctaetDZe8U8NSgHVE78AimOCpW+u44NQ/sBxn74QCw1LFq1G5sBVzv3eE81mXE6Rg9u6qh+JmO1+P7sPZ+6dXAc6ovjGaDLe/n3NE4GM/t54mAB7d9K+FUyOwV+TeTEhsFtfasZpH2yNr03dHk6W80ReF2y9WJ7pAFouAtzvS3t8NRMjQVPhhBxBhs/vKNRMT+KR7sUyCn4QptPYT8UhPcY8/RfIokknkdOTinHAXO423MCY6eqpwWU+qxPMoiwmHR0naxX6VthDfFemvjiii4wbAo4igHvCI64rccRfuzfm8L3SFxrs+iF1Wu4GePzv8iGyGYtFvzedRL6Ra5VQvsFplUy+4Wv2pV9LQqw9/Kuc+Ug6xkhLHhlTPg3cy1nEEakiOD1rAWTkgrV/SWpWIihHzVW4qQgqWUBqSVDLQkKAy5KGxAtiVbPoxG41NLJAQrM8njBcmrooNNx61TIS5iY7CdDMVIIwD1NgEZyymG4uRxYnM1YTyI4m6TBI7HmtR3Wc0RndNffmwVTF4zNa2bd/rYSVlzKD7rmufDKQs4h89eeDtxFSp0gAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxOS0wNy0xN1QxNjo0Mzo1NCswODowMPtsUcAAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTktMDctMTdUMTY6NDM6NTQrMDg6MDCKMel8AAAAAElFTkSuQmCC") center left no-repeat;
                  padding-left: 20px;
                  background-size:16px 16px;}`;

      GM_addStyle(css)

      // let ulbody = document.getElementsByTagName("body")[0];
      // if (!ulbody) return;
      // let ulstyle = document.createElement("style");
      // ulstyle.innerHTML = css;
      // ulbody.appendChild(ulstyle);

      function httpcheck(url, ele) {
        GM_xmlhttpRequest({
          url: url,
          method: "GET",
          headers: { "Content-Type": "application/x-www-form-urlencoded" },
          onload: function (response) {
            if (response.status == 200 || response.status == "200") {
              let responseText = response.responseText;
              let status;
              if (!responseText) {
                //为空,地址出现了重定向 或 其它情况
                status = "isUnknown";
              } else {
                responseText = responseText
                  .replace(/\s+/g, "")
                  .substring(0, 14999);
                console.log(responseText);
                status = "isUnknown";
                for (let index = 0; index < pageTexts.length; index++) {
                  const element = pageTexts[index];
                  if (responseText.indexOf(element.key) != -1) {
                    status = element.status;
                    break;
                  }
                }
              }
              ele.classList.add("UL_ico_" + status);
            }
          },
        });
      }
    },
  };

  const e = new UrlLinePlugin();
  e.Star();
})();