磁力快显

在磁力宝、BTSOW、无极磁链ØMagnet等的搜索列表增加磁力链接显示,方便快速下载资源。

目前为 2021-07-21 提交的版本。查看 最新版本

// ==UserScript==
// @name         磁力快显
// @namespace    http://tampermonkey.net/
// @description  在磁力宝、BTSOW、无极磁链ØMagnet等的搜索列表增加磁力链接显示,方便快速下载资源。
// @author       zxf10608
// @version      2.7
// @require      https://cdn.jsdelivr.net/npm/[email protected]/dist/jquery.min.js  
// @homepageURL  https://greasyfork.org/zh-CN/scripts/397490
// @include      *://clb*.*
// @include      *://www.sokankan*
// @include      *://www.btmovi*
// @include      *://*mag.net/search*
// @include      *://btsow*/search/*
// @grant        GM_xmlhttpRequest
// @connect      *
// @grant        GM_setClipboard 
// @grant        GM_notification
// @run-at       document-end
// @compatible   chrome
// @license      GPL License
// ==/UserScript==

(function() {
	
	var href1 = location.href.indexOf('mag.net');
	var href2 = document.title.indexOf('磁力宝');
	
	if (href1 == -1) {
		$(document).ready(function(){
			$('.common-link:odd,.search-tips,#cps-wrap').remove();//删除广告
		
			$('a:not([href^="magnet:"])').each(function(){
				var reg = /(\/|&|-|\.|\?|=|:)([a-fA-F0-9]{40})/;
				var url = $(this).attr('href') || '';
				
				if(reg.test(url)){
					$(this).attr('target','_blank');
					var magnetHref = 'magnet:?xt=urn:btih:' + url.match(reg)[2];
					$(this).after('<a class="zcopy" data-href='+magnetHref+' href="javascript: void(0);" target="_blank" style="display:inline-block;" title="复制磁力链接">&nbsp;复制</a>');
					$(this).after('<a class="magnet" href='+magnetHref+' target="_blank"  title='+magnetHref+'>&nbsp;&nbsp;磁力链接</a>');
				};
			});
		});
	
	}else{
		
		function magnetCall(href){
			return new Promise(function(resolve, reject){
				GM_xmlhttpRequest({
					method: 'GET',
					url: href,
					onload: function(data,status) {
						if(data.readyState==4 && data.status==200){
							var htmlTxt = data.responseText;
							resolve(htmlTxt);
						};	
					},
					onerror: function(error) {
						reject(error);
					},
				});
			});
		};
		
		var magnetEl = $('a[href*="/!"],a[href*="hash"]');
		console.log('磁力链接有'+magnetEl.length+'个');
		$(document).ready(function(){
			magnetEl.attr({'target':'_blank','style':'display:inline-block;'});
		});
		
		if (magnetEl.length<20){
			var n = magnetEl.length; 
		}else{
			var n = 20; 
		};

        let arr = [];
        for (let i = 0; i < n; i++) {
			var Link = magnetEl.eq(i).attr('href');
			if (href1 != -1) {
				Link = 'https://'+location.host+Link;
			};
						
			magnetCall(Link).then(function(htmlTxt){
				arr[i] = new Promise((resolve, reject) => {
					var magnetHref = htmlTxt.match(/href="(magnet.{54}).*"/)[1];
					magnetEl.eq(i).after('<a target="_blank" class="zcopy" data-href='+magnetHref+' href="javascript: void(0);" style="display:inline-block;" title="复制磁力链接">&nbsp;复制</a>');
					magnetEl.eq(i).after('<a href='+magnetHref+' class="magnet" target="_blank" title='+magnetHref+' style="display:inline-block;color:blue;">&nbsp;&nbsp;磁力链接</a>');
					resolve(i);
				});
            });
        };
		
        Promise.all(arr).then((res) => {
			console.log('磁力链接已全部加载完成。');
        }).catch((err) => {
            console.log('磁力链接加载失败');
        });

	};	
	
	$('body').on('click','.zcopy', function(event) {
		GM_setClipboard($(this).data('href'));
		GM_notification({
			title:'磁力快显:',
			text:'磁力链接复制成功!',
			timeout:2000,
		});
		return false;
	});
	
})();