磁力链接百度网盘补完

磁力链接、百度网盘补完

  1. // ==UserScript==
  2. // @name 磁力链接百度网盘补完
  3. // @namespace http://tampermonkey.net/
  4. // @version 2.91
  5. // @description 磁力链接、百度网盘补完
  6. // @author backrock12
  7. // @include https://*
  8. // @include http://*
  9. // @grant GM_registerMenuCommand
  10. // @grant GM_unregisterMenuCommand
  11. // @grant GM_xmlhttpRequest
  12. // @grant GM_setValue
  13. // @grant GM_getValue
  14. // @grant GM_addStyle
  15. // @require http://libs.baidu.com/jquery/2.0.0/jquery.min.js
  16. // @exclude /(^[^:\/#\?]*:\/\/([^#\?\/]*\.)?www\.gamersky\.com(:[0-9]{1,5})?\/.*$)/
  17. // @exclude /(^[^:\/#\?]*:\/\/([^#\?\/]*\.)?www\.baidu\.com(:[0-9]{1,5})?\/.*$)/
  18. // @exclude /(^[^:\/#\?]*:\/\/([^#\?\/]*\.)?www\.ciweimao\.com(:[0-9]{1,5})?\/.*$)/
  19. // @exclude /(^[^:\/#\?]*:\/\/([^#\?\/]*\.)?greasyfork\.org(:[0-9]{1,5})?\/.*$)/
  20. // @exclude /(^[^:\/#\?]*:\/\/([^#\?\/]*\.)?pan\.baiduwp\.com(:[0-9]{1,5})?\/.*$)/
  21. // @exclude *aliyundrive*
  22. // @connect baidu.com
  23. // ==/UserScript==
  24.  
  25. (function () {
  26. "use strict";
  27. var $ = $ || window.$;
  28. // console.log("UrlLinePlugin");
  29.  
  30. //延遲執行
  31. const await_url = [/tieba\.baidu\.com/, /xxgame\.net/];
  32.  
  33. //字符串格式化方法
  34. String.prototype.UrlLineformat = function (args) {
  35. let result = this;
  36. if (arguments.length > 0) {
  37. if (arguments.length == 1 && typeof args == "object") {
  38. for (let key in args) {
  39. if (args[key] != undefined) {
  40. const reg = new RegExp("({" + key + "})", "g");
  41. result = result.replace(reg, args[key]);
  42. }
  43. }
  44. } else {
  45. for (let i = 0; i < arguments.length; i++) {
  46. if (arguments[i] != undefined) {
  47. const reg = new RegExp("({)" + i + "(})", "g");
  48. result = result.replace(reg, arguments[i]);
  49. }
  50. }
  51. }
  52. }
  53. return result;
  54. };
  55.  
  56. $.fn.replaceText = function (search, replace, action, text_only) {
  57. return this.each(function () {
  58. var node = this.firstChild,
  59. val,
  60. new_val, // Elements to be removed at the end.
  61. remove = [];
  62.  
  63. if (node) {
  64. do {
  65. if (node.nodeType === 3) {
  66. val = node.nodeValue;
  67. if (val && val.trim().length > 5) {
  68. if (!action && replace) {
  69. new_val = val.replace(search, replace);
  70. } else {
  71.  
  72. const t = search.exec(val);
  73. // if (val.indexOf("baidu") > 0) {
  74. // console.log(val);
  75. // console.log(t);
  76. // }
  77. if (action && t && t.length > 0) new_val = action(node, val, t);
  78. else new_val = val;
  79. }
  80. if (new_val !== val) {
  81. if (!text_only && /</.test(new_val)) {
  82. $(node).before(new_val);
  83. remove.push(node);
  84. } else {
  85. node.nodeValue = new_val;
  86. }
  87. }
  88. }
  89. }
  90. } while ((node = node.nextSibling));
  91. }
  92. remove.length && $(remove).remove();
  93. });
  94. };
  95.  
  96. //默认配置参数 default settings
  97. const default_settings = {
  98. magnetfilter:
  99. /((\u672c\u7ad9\u6682?\u4e0d\u63d0\u4f9b(\u6587\u4ef6)?\u4e0b\u8f7d))|(不提供(文件)?下载)/g,
  100. magnetPattern:
  101. /(magnet:\?)?(xt=)?(urn:btih:)?(?=.{0,31}[0-9])(?=.{0,31}[a-z])([0-9A-Z]{32,40})(?![:.\-\!\?a-z0-9])/gi,
  102. pixivurl:
  103. "<a href='https://www.pixiv.net/member_illust.php?mode=medium&illust_id={0}' target='_blank'>{1}</a>",
  104. bilibiliurl:
  105. "<a href='https://www.bilibili.com/video/av{0}/' target='_blank'>{1}</a>",
  106. magneturl:
  107. "<a href='magnet:?xt=urn:btih:{0}' target='_blank' urlline='true'>magnet:?xt=urn:btih:{1}</a>",
  108. baiduurl1:
  109. "<a href='https://pan.baidu.com/s/1{0}' target='_blank' urlline='true' urltype='head'>" +
  110. " https://pan.baidu.com/s/1{1} </a>",
  111. baiduurl2:
  112. "<a href='https://pan.baidu.com/s/1{0}?pwd={1}' target='_blank' urlline='true' >{2}</a>",
  113. baiduurl3:
  114. "<a href='https://pan.baidu.com/s/1{0}' target='_blank' urlline='true' urltype='tail' >{1}</a>",
  115. baiduurl4:
  116. "<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>",
  117. baiduPattern0:
  118. /((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}))/,
  119. baiduPattern1: /(https?:\/\/)?pan\.baidu\.com\/s\/1([a-zA-Z0-9_\-]{5,22})/,
  120. baiduPattern2:
  121. /(https?:\/\/)?pan\.baidu\.com\/share\/init\?surl=([a-zA-Z0-9_\-]{5,22})/,
  122. baiduPattern3: /\/?s\/1([a-zA-Z0-9_\-]{5,22})/,
  123. baiduPattern4: /\/?s?\/?1([a-zA-Z0-9_\-]{5,22})(?!\.)/,
  124. baiduPattern5: /(神秘代码)1([a-zA-Z0-9_\-]{5,22})/,
  125. common_reg1:
  126. /\s*(提取密碼|提取密码|提取码|提取碼|提取|密碼|密码|百度|百度云|云盘|yun|通关口令|本帖隐藏的内容)[::]?\s*(<[^>]+>)?\s*([0-9a-zA-Z]{4,})\s*/,
  127. common_reg2:
  128. /\s*(百度网盘密码|提取密碼|提取密码|提取码|提取碼|提取|密碼|密码|百度|百度云|云盘|yun|通关口令|本帖隐藏的内容)[::]?\s*/,
  129. common_reg3: /\s*(<[^>]+>)?\s*([0-9a-zA-Z]{4,})\s*/,
  130. common_reg4: /[::]?\s*(<[^>]+>)?\s*([0-9a-zA-Z]{4,8})/,
  131. common_r: "\\s*({0})[::]?\\s*(<[^>]+>)?\\s*([0-9a-zA-Z]{4,})\\s*",
  132. url_reg: /(http|https):\/\/(www.)?(\w+(\.)?)+/,
  133. Pwnum: 5,
  134. defaults_ULSetting: {
  135. Magnet_mk: true,
  136. Baidu_mk: true,
  137. CHeck_mk: true,
  138. Desc_mk: true,
  139. Log_mk: true,
  140. DescUrl: [],
  141. Pwlist: [],
  142. },
  143. };
  144.  
  145. function FormatGet(key) {
  146. if (key == "DownUrl") {
  147. if (!arguments[3]) {
  148. return default_settings.baiduurl1.UrlLineformat(
  149. arguments[2],
  150. arguments[2]
  151. );
  152. } else {
  153. return default_settings.baiduurl2.UrlLineformat(
  154. arguments[2],
  155. arguments[3],
  156. arguments[3]
  157. );
  158. }
  159. } else if (key == "Url") {
  160. return default_settings.baiduurl3.UrlLineformat(
  161. arguments[0],
  162. arguments[1]
  163. );
  164. } else if (key == "baiduurl4") {
  165. if (!arguments[2]) {
  166. return default_settings.baiduurl1.UrlLineformat(
  167. arguments[1],
  168. arguments[1]
  169. );
  170. } else {
  171. return default_settings.baiduurl4.UrlLineformat(
  172. arguments[1],
  173. arguments[2],
  174. arguments[1],
  175. arguments[2]
  176. );
  177. }
  178. }
  179. }
  180.  
  181. function SettingCheck(key, value) {
  182. if (key == "baiduPattern0") {
  183. return default_settings.baiduPattern0.test(value);
  184. } else if (key == "common_reg2") {
  185. return default_settings.common_reg2.test(value);
  186. }
  187. }
  188.  
  189. function SettingGet(key, value) {
  190. let ss;
  191. if (key == "common_reg4") {
  192. return (ss = default_settings.common_reg4.exec(value)) && 3 === ss.length
  193. ? ss[2]
  194. : null;
  195. } else if (key == "common_reg3") {
  196. return (ss = default_settings.common_reg3.exec(value)) && 3 === ss.length
  197. ? ss[2]
  198. : null;
  199. } else if (key == "common_reg1") {
  200. return (ss = default_settings.common_reg1.exec(value)) && 4 === ss.length
  201. ? ss[3]
  202. : null;
  203. } else if (key == "baiduPattern0") {
  204. ss = default_settings.baiduPattern0.exec(value);
  205. return ss[3] ? ss[3] : ss[5] ? ss[5] : ss[6] ? ss[6] : ss[7];
  206. } else if (key == "baiduPattern4") {
  207. return (ss = default_settings.baiduPattern4.exec(value)) &&
  208. 2 === ss.length
  209. ? ss[1]
  210. : null;
  211. }
  212. }
  213.  
  214. function Getnextnode(node, isDesc_Mk) {
  215. let loopnum = default_settings.Pwnum;
  216. let bnode;
  217. if (isDesc_Mk) {
  218. bnode = node == node.previousSibling ? null : node.previousSibling;
  219. } else {
  220. bnode = node == node.nextSibling ? null : node.nextSibling;
  221. }
  222. if (!bnode)
  223. bnode = isDesc_Mk
  224. ? node.parentNode.previousSibling
  225. : node.parentNode.nextSibling;
  226. while (node && !bnode && loopnum >= 0) {
  227. bnode = isDesc_Mk ? node.previousSibling : node.nextSibling;
  228. node = node.parentNode;
  229. loopnum--;
  230. if (!bnode && bnode.length < 4) bnode = null;
  231. }
  232. return bnode;
  233. }
  234.  
  235. function FindNextPw(node, Pid, isDesc_Mk = null) {
  236. let loopnum = default_settings.Pwnum;
  237. let isreg2 = false;
  238. let re = false;
  239. $(node).attr("urltype", "head");
  240. isDesc_Mk = isDesc_Mk;
  241. let bnode = Getnextnode(node, isDesc_Mk);
  242. if (bnode) {
  243. do {
  244. let bh = bnode.nodeValue ? bnode.nodeValue : bnode.outerHTML;
  245. let bt = bnode.nodeValue ? bnode.nodeValue : bnode.innerText;
  246. if (bnode && bt) {
  247. if (SettingCheck("baiduPattern0", bt)) break;
  248. let pw = SettingGet("common_reg1", bt);
  249. if (isreg2) pw = SettingGet("common_reg3", bt);
  250. if (pw != null && pw.length > 0 && pw.length < 8) {
  251. let retext = FormatGet("DownUrl", "", Pid, pw);
  252. let h = bh.replace(pw, retext);
  253. $(bnode).replaceWith(h);
  254. re = true;
  255. break;
  256. } else {
  257. if (SettingCheck("common_reg2", bt)) isreg2 = !isreg2;
  258. }
  259. }
  260. bnode = Getnextnode(bnode, isDesc_Mk);
  261. if (!bnode) break;
  262. if (!bt) {
  263. loopnum--;
  264. }
  265. } while (loopnum >= 0);
  266. }
  267. $(node).attr("urlline", re);
  268. $(node).attr("target", "_blank");
  269. return re;
  270. }
  271.  
  272. function ReplaceorPw(node, e, n) {
  273. let Pid = SettingGet("baiduPattern0", n[0]);
  274. if (!Pid) return e;
  275. let retext = FormatGet("DownUrl", n[0], Pid);
  276. let v = e.replace(n[0], retext);
  277. let pw = SettingGet("common_reg1", e);
  278. let ischeck = false;
  279. let s;
  280. if (!pw) {
  281. s = e.substring(e.indexOf(Pid) + Pid.length);
  282. if (SettingCheck("baiduPattern0", s)) {
  283. ischeck = true;
  284. } else {
  285. pw = SettingGet("common_reg4", s);
  286. }
  287. }
  288. if (pw) {
  289. let retext2 = FormatGet("DownUrl", "", Pid, pw);
  290. v = v.replace(pw, retext2);
  291. } else {
  292. FindNextPw(node, Pid);
  293. }
  294. if (ischeck) {
  295. v = ReplaceorPw(node, v, [s]);
  296. }
  297. return v;
  298. }
  299.  
  300. function UrlLinePlugin(options) {
  301. this.settings = $.extend({}, default_settings, options);
  302. this._defaults = default_settings;
  303. this.init();
  304. }
  305.  
  306. let ULSetting;
  307. let Desc_Mk = false;
  308. let MenuID, setupID;
  309.  
  310. UrlLinePlugin.prototype = {
  311. init: function () {
  312. // console.log("init");
  313. let gm_Setting = GM_getValue("UrlLineSetting");
  314.  
  315. ULSetting = $.extend({}, default_settings.defaults_ULSetting, gm_Setting);
  316. // console.log(ULSetting);
  317.  
  318. if (ULSetting.Desc_mk) {
  319. if (ULSetting.DescUrl && ULSetting.DescUrl.length > 0) {
  320. let DescTxt = `(${ULSetting.DescUrl.join("|")})`;
  321. if (DescTxt) {
  322. let DescUrlReg = new RegExp(DescTxt);
  323. if (DescUrlReg.test(location.href)) Desc_Mk = true;
  324. }
  325. }
  326. }
  327.  
  328. addMenu(Desc_Mk);
  329. function addMenu(mk) {
  330. if (setupID) {
  331. if (ULSetting.Desc_mk) GM_unregisterMenuCommand(MenuID);
  332. GM_unregisterMenuCommand(setupID);
  333. }
  334. if (mk) {
  335. if (ULSetting.Desc_mk)
  336. MenuID = GM_registerMenuCommand("取消反向查找", OffDescUrl);
  337. setupID = GM_registerMenuCommand("设置", opensetup);
  338. } else {
  339. if (ULSetting.Desc_mk)
  340. MenuID = GM_registerMenuCommand("设置反向查找", OnDescUrl);
  341. setupID = GM_registerMenuCommand("设置", opensetup);
  342. }
  343. }
  344.  
  345. function OnDescUrl() {
  346. let urls = location.href.match(default_settings.url_reg);
  347. if (urls) {
  348. if (!ULSetting.DescUrl) {
  349. ULSetting.DescUrl = [urls[0]];
  350. } else {
  351. ULSetting.DescUrl = ULSetting.DescUrl.concat(urls[0]);
  352. }
  353. GM_setValue("UrlLineSetting", ULSetting);
  354. Desc_Mk = true;
  355. addMenu(Desc_Mk);
  356. // console.log(ULSetting);
  357. } else {
  358. console.log("OnDescUrl 获取URL失敗");
  359. }
  360. }
  361.  
  362. function OffDescUrl() {
  363. let urls = location.href.match(default_settings.url_reg);
  364. if (urls) {
  365. let index = ULSetting.DescUrl.indexOf(urls[0]);
  366. if (index > -1) {
  367. ULSetting.DescUrl.splice(index, 1);
  368. GM_setValue("UrlLineSetting", ULSetting);
  369. Desc_Mk = false;
  370. addMenu(Desc_Mk);
  371. }
  372. // console.log(ULSetting);
  373. } else {
  374. console.log("OffDescUrl 获取URL失敗");
  375. }
  376. }
  377.  
  378. function opensetup() {
  379. let content = document.createElement("div");
  380. document.body.appendChild(content);
  381. content.outerHTML = `
  382. <div id="ULPContent">
  383. <div
  384. 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;">
  385. <div style="text-align:center">
  386. <h3>设置</h3>
  387. </div>
  388. <div>
  389. <div style="float: left;margin: 5px 0px 0px 10px;width: 85px;">magnet链接</div>
  390. <div style="float: left;margin: 5px 0px 0px 5px;width: 140px;text-align: center;"><input id="Magnet_mk"
  391. type="checkbox"></div>
  392. </div>
  393. <div>
  394. <div style="float: left;margin: 5px 0px 0px 10px;clear: left;width: 85px;">百度网盘链接</div>
  395. <div style="float: left;margin: 5px 0px 0px 5px;width: 140px;text-align: center;"><input id="Baidu_mk"
  396. type="checkbox"></div>
  397. </div>
  398. <div>
  399. <div style="float: left;margin: 5px 0px 0px 10px;clear: left;width: 85px;">检测链接状态</div>
  400. <div style="float: left;margin: 5px 0px 0px 5px;width: 140px;text-align: center;"><input id="CHeck_mk"
  401. type="checkbox"></div>
  402. </div>
  403. <div>
  404. <div style="float: left;margin: 5px 0px 0px 10px;clear: left;width: 85px;">记录提取码</div>
  405. <div style="float: left;margin: 5px 0px 0px 5px;width: 140px;text-align: center;"><input id="Log_mk"
  406. type="checkbox"></div>
  407. </div>
  408. <div>
  409. <div style="float: left;margin: 5px 0px 0px 10px;clear: left;width: 85px;">反向查找</div>
  410. <div style="float: left;margin: 5px 0px 0px 5px;width: 140px;text-align: center;"><input id="Desc_mk"
  411. type="checkbox"></div>
  412. </div>
  413. <div>
  414. <div style="float: left;margin: 5px 0px 0px 10px;clear: left;width: 85px;">反向查找URL</div>
  415. <div style="float: left;margin: 5px 0px 0px 5px;width: 140px;text-align: center;"><input id="DescUrl"
  416. type="text" value="">
  417. </div>
  418. </div>
  419. <div>
  420. <div style="float: left;margin: 10px 0px 10px 10px;clear: left;width: 100px;text-align: center;">
  421. <button id="btsvae">Save</button>
  422. </div>
  423. <div style="float: left;margin: 10px 0px 10px 10px;width: 100px;text-align: center;">
  424. <button id="btcolse">Close</button>
  425. </div>
  426. </div>
  427. </div>
  428. </div>
  429. `;
  430.  
  431. $("#Magnet_mk").prop("checked", ULSetting.Magnet_mk);
  432. $("#Baidu_mk").prop("checked", ULSetting.Baidu_mk);
  433. $("#CHeck_mk").prop("checked", ULSetting.CHeck_mk);
  434. $("#Desc_mk").prop("checked", ULSetting.Desc_mk);
  435. $("#DescUrl").val(ULSetting.DescUrl.join("|"));
  436. $("#Log_mk").prop("checked", ULSetting.Log_mk);
  437.  
  438. $("#btcolse").click(function () {
  439. $("#ULPContent").css("display", "none");
  440. $("#ULPContent").remove();
  441. });
  442.  
  443. $("#btsvae").click(function () {
  444. ULSetting.Magnet_mk = $("#Magnet_mk").prop("checked");
  445. ULSetting.Baidu_mk = $("#Baidu_mk").prop("checked");
  446. ULSetting.CHeck_mk = $("#CHeck_mk").prop("checked");
  447. ULSetting.Desc_mk = $("#Desc_mk").prop("checked");
  448. ULSetting.DescUrl = $("#DescUrl").val().split("|");
  449. ULSetting.Log_mk = $("#Log_mk").prop("checked");
  450.  
  451. GM_setValue("UrlLineSetting", ULSetting);
  452. $("#ULPContent").css("display", "none");
  453. $("#ULPContent").remove();
  454. });
  455. }
  456. },
  457. Star: function () {
  458. const t = this;
  459. // console.log("star");
  460.  
  461. let isawait = false;
  462. for (let index = 0; index < await_url.length; index++) {
  463. if (await_url[index].test(location.href)) isawait = true;
  464. }
  465.  
  466. if (isawait) {
  467. setTimeout(function () {
  468. console.log("await");
  469. t.StarReplace.call(t);
  470. }, 2000);
  471. } else {
  472. t.StarReplace.call(t);
  473. }
  474.  
  475. document.addEventListener("keydown", function (e) {
  476. /* CTR + Z */
  477. if (e.keyCode == 90 && e.ctrlKey) {
  478. t.StarReplace.call(t);
  479. } else if (e.keyCode == 88 && e.ctrlKey) {
  480. t.BaiduFilter(t);
  481. }
  482. });
  483. },
  484. StarReplace: function () {
  485. const obj = this;
  486. if (ULSetting.Magnet_mk) obj.MagnetReplace(obj);
  487. if (ULSetting.Baidu_mk) obj.BaiduReplace(obj);
  488. if (ULSetting.CHeck_mk) obj.BaiduCHeckStatus();
  489. },
  490.  
  491. MagnetReplace: function (obj) {
  492. try {
  493. obj._subMagnetReplace(obj);
  494. } catch (err) {
  495. console.log("Magnet replace Error:" + err.message);
  496. }
  497. },
  498.  
  499. BaiduReplace: function (obj) {
  500. try {
  501. if (/pan\.baidu\.com/.test(location.href)) {
  502. obj.BaiduPassword();
  503. obj.AddPWButton();
  504. setTimeout(function () {
  505. let g = $(".K5a8Tu");
  506. // console.log(g);
  507. if (g) g.hide();
  508. }, 100);
  509. } else {
  510. obj._subBaiduReplace();
  511. }
  512. } catch (err) {
  513. console.log("baidu replace Error:" + err.message);
  514. }
  515. },
  516. BaiduPassword: function () {
  517. //console.log("baiduPassword");
  518. // $(".file-name").css('white-space','inherit');
  519. $("[class*='global-icon-16']").css("float", "left");
  520.  
  521. let url = location.href;
  522. if (location.hash) {
  523. url = location.href.substring(0, location.href.indexOf("#"));
  524. }
  525.  
  526. let pwinput = $(".QKKaIE");
  527. if (!pwinput)
  528. pwinput = $(":contains('请输入提取码'):last").nextAll("input");
  529. if (!pwinput)
  530. pwinput = $(":contains('请输入提取码'):last").next().find("input");
  531. let pwbtn = $("a:contains('提取文件')");
  532. if (!pwbtn)
  533. pwinput = $("#submitBtn");
  534.  
  535. pwbtn.click(function () {
  536. let pw = pwinput.val();
  537. if (pw) {
  538. let err = $("div:contains('提取码错误')");
  539. if (err.length > 0) return;
  540. let pwmap = new Map();
  541. if (ULSetting.Pwlist) pwmap = new Map(ULSetting.Pwlist);
  542. pwmap.set(url, pw);
  543. ULSetting.Pwlist = [...pwmap];
  544. GM_setValue("UrlLineSetting", ULSetting);
  545. }
  546. });
  547.  
  548. if (pwbtn.length > 0) {
  549. //填寫密碼
  550. if (location.hash && location.hash.length == 5) {
  551. pwinput.val(location.hash.slice(1, 5));
  552. setTimeout(function () {
  553. pwbtn.click();
  554. }, 50);
  555. } else {
  556. if (ULSetting.Pwlist) {
  557. let pwmap = new Map(ULSetting.Pwlist);
  558. let pw = pwmap.get(url);
  559. if (pw) {
  560. pwinput.val(pw);
  561. setTimeout(function () {
  562. pwbtn.click();
  563. }, 50);
  564. }
  565. }
  566. }
  567. }
  568. },
  569. _subMagnetReplace: function () {
  570.  
  571. const mlist = $("body *")
  572. .not("script")
  573. .not("a")
  574. .not("style")
  575. .not("meta")
  576. .not("input")
  577. .not("img")
  578. .not("title")
  579. .not("head")
  580. .not('iframe *')
  581. .not('video *')
  582. .not("link");
  583. mlist.replaceText(default_settings.magnetfilter, "");
  584. function magnetReplacer(match, p1, p2, p3, p4) {
  585. let value = match
  586. .replace("magnet:?", "")
  587. .replace("xt=", "")
  588. .replace("urn:btih:", "");
  589. return default_settings.magneturl.UrlLineformat(value, match);
  590. }
  591. $("body *")
  592. .not("script")
  593. .not("a")
  594. .not("style")
  595. .not("meta")
  596. .not("input")
  597. .not("img")
  598. .not("title")
  599. .not("head")
  600. .not('iframe *')
  601. .not('video *')
  602. .not("link")
  603. .not("a[urlline='true']")
  604. .replaceText(default_settings.magnetPattern, magnetReplacer);
  605. console.log(location.href + "is magnet replace");
  606. },
  607.  
  608. _subBaiduReplace: function (obj) {
  609. function subpw() {
  610. let h = $(this).attr("href");
  611. if (SettingCheck("baiduPattern0", h)) {
  612. let Pid = SettingGet("baiduPattern0", h);
  613. FindNextPw(this, Pid);
  614. } else {
  615. if (/\.bdimg.com/.test(h)) {
  616. let t = $(this).text();
  617. if (SettingCheck("baiduPattern0", t)) {
  618. let tPid = SettingGet("baiduPattern0", t);
  619. FindNextPw(this, tPid);
  620. }
  621. }
  622. }
  623. }
  624.  
  625. function subpwauto() {
  626. // console.log("subpwauto");
  627. if ($(this).attr("urlline") == true) {
  628. return;
  629. }
  630. let h = $(this).attr("href");
  631. if (h == "javascript:;") return;
  632.  
  633. if (SettingCheck("baiduPattern0", h)) {
  634. let Pid = SettingGet("baiduPattern0", h);
  635. if (!FindNextPw(this, Pid, false)) {
  636. FindNextPw(this, Pid, true);
  637. }
  638. } else {
  639. if (/\.bdimg.com/.test(h)) {
  640. let t = $(this).text();
  641. if (SettingCheck("baiduPattern0", t)) {
  642. let tPid = SettingGet("baiduPattern0", t);
  643. if (!FindNextPw(this, tPid, false)) {
  644. FindNextPw(this, tPid, true);
  645. }
  646. }
  647. }
  648. }
  649. }
  650.  
  651. let wlist = $("body *")
  652. .not("script")
  653. .not("a")
  654. .not("style")
  655. .not("meta")
  656. .not("input")
  657. .not("img")
  658. .not("title")
  659. .not("head")
  660. .not('iframe *')
  661. .not('video *')
  662. .not("link");
  663.  
  664.  
  665. // wlist = wlist.filter(function () {
  666. // console.log('filter')
  667. // const aa = $(this).attr("class");
  668. // if (aa && aa.indexOf('bpx-') > -1) {
  669. // console.log($(this).attr("class"))
  670. // console.log($(this).contents().find('iframe').length)
  671.  
  672.  
  673. // if (self.frameElement) {
  674. // console.log(self.frameElement.tagName);
  675. // }
  676. // return false;
  677. // }
  678. // return $(this).closest('iframe').length === 0;
  679. // });
  680. // console.log(wlist);
  681.  
  682. wlist.replaceText(
  683. default_settings.baiduPattern0,
  684. function (match, p1, p2, p3) {
  685. // console.log(match);
  686. let Pid = SettingGet("baiduPattern0", match);
  687. return FormatGet("Url", Pid, match);
  688. },
  689. ReplaceorPw
  690. );
  691.  
  692. $("a[urlline!='true']").each(subpwauto);
  693. //$("a").click(subpwauto);
  694. console.log(location.href + "is baidu replace");
  695. },
  696.  
  697. BaiduFilter: function (obj) {
  698. let r = window.getSelection();
  699. if (r.rangeCount > 0) {
  700. for (let i = 0; i < r.rangeCount; i++) {
  701. let s = r.getRangeAt(i);
  702. let seltext = s.toString();
  703. console.log("Selection" + seltext);
  704. let filtertext = seltext.replace(
  705. /([\u4e00-\u9fa5]|[::??!!])+/,
  706. ""
  707. );
  708. let Pid, purl, pw;
  709. if (SettingCheck("baiduPattern0", filtertext)) {
  710. Pid = SettingGet("baiduPattern0", filtertext);
  711. }
  712. if (!Pid) Pid = SettingGet("baiduPattern4", filtertext);
  713.  
  714. if (Pid) {
  715. let lasttext = $.trim(
  716. filtertext.substring(filtertext.indexOf(Pid) + Pid.length)
  717. );
  718. if (lasttext) {
  719. pw = SettingGet("common_reg1", lasttext);
  720. if (!pw) pw = SettingGet("common_reg4", lasttext);
  721. }
  722. purl = FormatGet("baiduurl4", Pid, pw);
  723. }
  724.  
  725. if (purl) {
  726. let a = $(purl)[0];
  727. try {
  728. s.insertNode(a);
  729. let span = $('<span style="color:#A9A9A9"></span>')[0];
  730. s.surroundContents(span); //将创建的元素环绕在光标选中的文字周围
  731. s.collapse(false);
  732. console.log("Selection Success" + s);
  733. } catch (e) {
  734. console.log("Selection Error" + e.message);
  735. }
  736. }
  737. }
  738. }
  739. },
  740.  
  741. AddPWButton: function () {
  742. // console.log("AddPWButton");
  743.  
  744. // $("div.slide-show-right").css("width", "500px");
  745. // let Pbutton = $('<span class="g-dropdown-button"></span>');
  746. // let button_a = $(
  747. // '<a class="g-button g-button-blue" data-button-id="b200" data-button-index="200" href="javascript:void(0);"></a>'
  748. // );
  749. // let button_a_span = $(
  750. // '<span class="g-button-right"><em class="icon icon-download" title="跳转到PanDownload"></em><span class="text" style="width: 60px;">PanDown</span></span>'
  751. // );
  752. // let Pbutton_span = $(
  753. // '<span class="menu" style="width:auto;z-index:41"></span>'
  754. // );
  755.  
  756. // button_a.append(button_a_span);
  757. // Pbutton.append(button_a).append(Pbutton_span);
  758. // Pbutton.click(function() {
  759. // let url = window.location.href;
  760. // url = url.replace("baidu.com", "baiduwp.com");
  761. // window.open(url, "_blank");
  762. // });
  763. // $("div.module-share-top-bar div.bar div.x-button-box").append(Pbutton);
  764. //Pbutton.insertBefore($("a:contains('请输入提取码')"));
  765.  
  766. setTimeout(noad, 500);
  767. setTimeout(noad, 1000);
  768. setTimeout(noad, 3000);
  769.  
  770. function noad() {
  771. $("#web-multi-bottom > a:nth-child(2)").css("display", "none");
  772. $("#web-right-view").css("display", "none");
  773. $(".gOIbzPb").css("display", "none");
  774. $(".vyQHNyb").css("display", "none");
  775. $(".app-download").css("display", "none");
  776. $(".KQcHyA").css("display", "none");
  777. $(".share-center").css("display", "none");
  778. $("#web-single-bottom").css("display", "none");
  779. $(".phone-banner").css("display", "none");
  780.  
  781. $("body > div").css("background-image", "")
  782. $(".mainContent").css("background-image", "")
  783.  
  784. $(".business-ad-content").css("display", "none");
  785. $(".btn-img-tips").css("display", "none");
  786.  
  787.  
  788. const styletext = '#init-new > div { top: 50%;left: 50%;transform: translate(-50%, -50%); }';
  789. GM_addStyle(styletext)
  790. // console.log("noad");
  791. }
  792. },
  793. BaiduCHeckStatus: function () {
  794. //$("a[urlline]").each(function () {
  795. $("a[urltype='head']").each(function () {
  796. let h = $(this).attr("href");
  797. httpcheck(h, this);
  798. });
  799. console.log(location.href + "is BaiduCHeckStatus");
  800.  
  801. let pageTexts = [
  802. { key: "链接不存在", status: "isDisabled" },
  803. { key: "页面不存在", status: "isDisabled" },
  804. { key: "无法访问", status: "isDisabled" },
  805. { key: "已过期", status: "isDisabled" },
  806. { key: "你来晚了", status: "isDisabled" },
  807. { key: "请输入提取码", status: "isLock" },
  808. { key: "失效时间", status: "isOk" },
  809. { key: "过期时间", status: "isOk" },
  810. ];
  811.  
  812. const css =
  813. `.UL_ico_isLock{
  814. background: transparent url("data:image/png;base64,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") center left no-repeat;
  815. padding-left: 20px;
  816. background-size:18px 18px;}` +
  817. `.UL_ico_isOk{
  818. background: transparent url("data:image/png;base64,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") center left no-repeat;
  819. padding-left: 20px;
  820. background-size:16px 16px;}` +
  821. `.UL_ico_isDisabled{
  822. background: transparent url("data:image/png;base64,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") center left no-repeat;
  823. padding-left: 20px;
  824. background-size:16px 16px;}` +
  825. `.UL_ico_isUnknown{
  826. background: transparent url("data:image/png;base64,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") center left no-repeat;
  827. padding-left: 20px;
  828. background-size:16px 16px;}`;
  829.  
  830. GM_addStyle(css)
  831.  
  832. // let ulbody = document.getElementsByTagName("body")[0];
  833. // if (!ulbody) return;
  834. // let ulstyle = document.createElement("style");
  835. // ulstyle.innerHTML = css;
  836. // ulbody.appendChild(ulstyle);
  837.  
  838. function httpcheck(url, ele) {
  839. GM_xmlhttpRequest({
  840. url: url,
  841. method: "GET",
  842. headers: { "Content-Type": "application/x-www-form-urlencoded" },
  843. onload: function (response) {
  844. if (response.status == 200 || response.status == "200") {
  845. let responseText = response.responseText;
  846. let status;
  847. if (!responseText) {
  848. //为空,地址出现了重定向 或 其它情况
  849. status = "isUnknown";
  850. } else {
  851. responseText = responseText
  852. .replace(/\s+/g, "")
  853. .substring(0, 14999);
  854. console.log(responseText);
  855. status = "isUnknown";
  856. for (let index = 0; index < pageTexts.length; index++) {
  857. const element = pageTexts[index];
  858. if (responseText.indexOf(element.key) != -1) {
  859. status = element.status;
  860. break;
  861. }
  862. }
  863. }
  864. ele.classList.add("UL_ico_" + status);
  865. }
  866. },
  867. });
  868. }
  869. },
  870. };
  871.  
  872. const e = new UrlLinePlugin();
  873. e.Star();
  874. })();