磁力快显

在磁力宝、磁力管家、Skrbt、ØMagnet磁力网站的搜索列表增加磁力链接显示,方便下载资源。

目前為 2020-04-18 提交的版本,檢視 最新版本

// ==UserScript==
// @name         磁力快显
// @namespace    http://tampermonkey.net/
// @description  在磁力宝、磁力管家、Skrbt、ØMagnet磁力网站的搜索列表增加磁力链接显示,方便下载资源。
// @author       zxf10608
// @version      1.6.2
// @require      https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js
// @homepageURL  https://greasyfork.org/zh-CN/scripts/397490
// @include      *://cilibao.biz/*
// @include      https://www.ciliguanjia.icu/*
// @include      *://skrbt*.icu/*
// @include      *://0mag.net/search*
// @grant        GM_xmlhttpRequest
// @connect      0mag.net 
// @run-at       document-end
// ==/UserScript==

(function() {
	
	var href1 = location.href.indexOf('cilibao');
	var href2 = location.href.indexOf('ciliguanjia');
	var href3 = location.href.indexOf('skrbt');
	var href4 = location.href.indexOf('0mag.net/search');
		
	if (href1 != -1 || href2 != -1 || href3 != -1) {
        var magnet2 = function() {
			if (href3 != -1) {
				var hrefx = '.result-resource-title';//减少skrbt干扰元素
				$('.result-resource-meta-info').find("a:contains('磁力链接')").hide();//隐藏原有假“磁力链接”
					} else {
					var hrefx = 'a[href*=\'detail\'],a[href*=\'cili-\']';
					};
				
                $(hrefx).each(function() {
					if ($(this).attr('href').indexOf('cili-')>0){
						$(this).attr('href', $(this).attr('href').replace('/cili-', '/detail/'));
					}//匹配磁力管家
                    var torrent2Href = $(this).attr('href');
					var temp2Link = torrent2Href.split('/detail/');
					if (href3 != -1) {	
						var href2Magnet = 'magnet:?xt=urn:btih:' + temp2Link[1].substring(6,46);	
						} else {
						var href2Magnet = 'magnet:?xt=urn:btih:' + temp2Link[1].substring(0,40);
						}
					$(this).after('<a href="' + href2Magnet + '" target="_blank">&nbsp;&nbsp;磁力链接</a>');
					$('.search-tips,#cps-wrap').hide();//隐藏磁力宝广告元素
					
                });
		};
		magnet2();
	};
	
	//ØMagnet
	if (href4 != -1) {
		$(document).ready(function(){
			var magnetEl = $('a[href*="0mag.net/!"]');
			console.log('磁力链接有'+magnetEl.length+'个');
			
			magnetEl.each(function(i) {
				var tempLink = $(this).attr('href');
				$(this).attr({'target':'_blank','style':'display:inline-block;'});
				
				magnetCall(tempLink,function(error,magnetHref) {
					if (error) {// 错误则返回
					  console.log('异步加载请求失败');  
					  return
					  };
					magnetEl.eq(i).after('<a href='+magnetHref+' target="_blank" style="display:inline-block;">&nbsp;&nbsp;磁力链接</a>');
				});
				
				if (i>15){
					console.log('磁力链接过多,已停止异步加载');
					return false;
				};
			});
		});
		
		var magnetCall = function(href,callback) {
			GM_xmlhttpRequest({ 
				method: "GET",
				url: href,
				onload: function(data,status) {
					if(data.readyState==4 && data.status==200){//完全加载完成
						var txt = data.responseText;
						var hashtemp = txt.split('data=');
						var magnetHref =hashtemp[1].substring(0,60);
						callback(null,magnetHref);
					};
				},
				onerror: function (error) {//加载失败
					callback(error);
				},
				ontimeout: function (error) {//请求超时
					callback(error);
				},
			});
		};
		
	};	
	

	
})();