百度云插件+APIKey

在百度云网盘的页面添加一个搜索框,调用谷歌的搜索API搜索所有公开分享文件// To add a search frame that calls the google cse api for searching some public shared files in BaiduYun cloud netdisk.

目前為 2014-09-06 提交的版本,檢視 最新版本

// ==UserScript==
// @name       百度云插件+APIKey
// @namespace  
// @version    4.3 beta
// @description  在百度云网盘的页面添加一个搜索框,调用谷歌的搜索API搜索所有公开分享文件// To add a search frame that calls the google cse api for searching some public shared files in BaiduYun cloud netdisk. 
// @require        http://code.jquery.com/jquery-2.1.1.min.js
// @description  For more imformation,please email me at [email protected]. 
// @include       http://pan.baidu.com/disk/*
// @include      https://pan.baidu.com/disk/*
// @include      https://yun.baidu.com/#from=share_yun_logo/
// @include      http://yun.baidu.com/#from=share_yun_logo/
// @grant       GM_xmlhttpRequest
// @run-at document-end
// @copyright  2014,04,20 __By Wang Hsin-che   
// ==/UserScript==

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// my custom jquery draggable plugin//////////////////////////////////////////////////////////////////////////////
// by Wang Hsin-che @ 2014.07 
// version : 0.1
// usage: $("#element").draggable({handle:"#childElement"});  or $("#element").draggable(); 

(function($) {
	$.fn.draggable = function(option) {
		var x0, y0, ele, setting;
		ele = this; //save the selector 
		setting = $.extend({
			handle: this.selector
		}, option); //deal with the "handle" parameter,default is the selector
		ele.css({
			position: "absolute"
		}); //make sure that the "postion" is "absolute"
		$(setting.handle).bind('mousedown', function(e0) {
			$(setting.handle).css({
				cursor: "move"
			}); //set the appearance of cursor 
			x0 = ele.offset().left - e0.pageX; //*1
			y0 = ele.offset().top - e0.pageY; //*1
			$(document).bind('mousemove', function(e1) { //bind the mousemove event, caution:this event must be bind to "document"
				$(document).bind('mouseup', function() { //when the mouse up,unbind the mousemove event
					$(document).unbind('mousemove');
					$(setting.handle).css({
						cursor: "auto"
					});
				});
				ele.css({
					left: x0 + e1.pageX,
					top: y0 + e1.pageY
				}); //this expression and the expression of *1 equal to "ele.origin_offset+mouse.current_offset-mouse.origin_offset"
			});
		});

		return this;
	};
}(jQuery));
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

/////定义
var SearchObject = (function($, replaceEle) {
	var
		url = 'https://www.googleapis.com/customsearch/v1element?key=AIzaSyCVAXiUzRYsML1Pv6RwSG1gunmMikTzQqY&rsz=filtered_cse&num=10&hl=en&prettyPrint=true&source=gcsc&gss=.com&sig=ee93f9aae9c9e9dba5eea831d506e69a&cx=018177143380893153305:yk0qpgydx_e&q=',
		keyword = '',
		//搜索框的html
		html_1 = '<div class="search-form"><input class="search-query" placeholder=" 搜索公开分享文件" id="wxz_input">\
				<input type="button" value="GO" class="search-button" id="wxz_searchButton"></div>',
		//显示页面的html

		html_2 = '\
	<div class="b-panel b-dialog share-dialog" id="wxz_myDiv">\
	<div class="dlg-hd b-rlv" id="wxz_myDiv_title">\
	<div title="关闭" id="wxz_closeButton" class="dlg-cnr dlg-cnr-r"></div>\
	<h3 >搜索</h3>\
	</div>\
	<div class="wxz-content">\
	</div>\
	<div class="offline-bottom">\
	<div class="offline-pageing">\
	<div class="pagese " id="wxz-pagese">\
	</div>\
	</div>\
	</div>\
	</div>\
	',

		//插入的css
		cssText = '\
	<style type="text/css">\
		#wxz_searchButton{background-image:none;cursor:pointer;background-color: rgb(155, 154, 154);color: #ffffff;}\
			.wxz-myDiv{display:none;z-index:99;box-shadow:0 0 9px rgba(0,0,0,.9);background:#FFFFFF;position:absolute;outline:0 none;}\
			.wxz-content{line-height: 200%;text-align: left;white-space: normal;margin-left:20px;overflow:auto;}\
			.wxz-close{margin-right:20px;important;height:20px;cursor:pointer}\
			.wxz-next{margin-right:20px;float:right;height:20px;cursor:pointer}\
			.wxz-front{margin-right:40px;float:right;height:20px;cursor:pointer}\
			.wxz-content a{color:#0066FF!important;font: 14px/1.5 arial,sans-serif!important;}\
	</style>\
					';
	return {
		searchClear: function() {
			$('#wxz_myDiv').slideUp();
			$('#wxz_input').val('');
			keyword = '';
			$('.wxz-content').empty(); //清空原来的内容
			console.log('clear');
		},
		search_2: function(keyword, startIndex) {
			console.log('search');
			var self = this;
			if (keyword === '') {
				console.log('fail');
				return 0;
			}
			//显示loading条
			$('.wxz-content').html('<img src="data:image/gif;base64,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" />');
			$('#wxz_myDiv').slideDown();
			GM_xmlhttpRequest({
				method: "GET",
				url: url + keyword + '&start=' + startIndex,
				headers: {
					"User-Agent": "Mozilla/5.0", // If not specified, navigator.userAgent will be used.
					"Accept": "text/xml" // If not specified, browser defaults will be used.
				},
				onload: function(response) {
					var
						data = JSON.parse(response.responseText),
						showList,
						tempNode,
						totalPage = 1,
						totalResults = parseInt(data.cursor.estimatedResultCount, 10);
					//把json数据转为html,存入缓存showlist
					if (parseInt(data.cursor.resultCount, 10) === 0) {
						$('.wxz-content').html('<div class="loading-tips" align="center">无搜索结果...换个关键词重新试试?</div>');
					} //无结果时提示
					else {
						totalPage = parseInt((totalResults - 1) / 10, 10) + 1 > 10 ? 10 : parseInt((totalResults - 1) / 10, 10) + 1; //坑比,google自定义搜索只提供最大10页(每页10条)
						showList = "<p align='right'>---- by Google Custome Search </p><p white-space='normal' class='temp' >keyword is    '" + keyword + "'    found  '" + data.cursor.resultCount + "'  Results</p><p>--------------------------------------------------<p>";
						$.each(data.results, function(index, element) {
							tempNode = '<a href="' + element.unescapedUrl + '"target="_blank">' + element.titleNoFormatting + '</a>';
							showList += '<p><p class="myTitle">' + tempNode + '</p>';
							showList += '<p class="mySnippet">' + element.contentNoFormatting + '</p>';
						});
						showList += '<p><p>-------------------------------------------------------------<p class="temp" margin-left="20px">"' + data.results.length + '"  items have been load </p><p align="right"><a href="javascript:alert(' + "'By WangHsinche @ 2014.04'" + ')" ><font color="#333">About me</font></a></p>';
						$('.wxz-content').html(showList); //替换原来内容,之所以用了showlist作为缓存是为了提升速度
						$('.wxz-content').scrollTop(0); //滚到顶端
					}
					self.pageBar(parseInt(startIndex / 10, 10) + 1, totalPage);
					data = null;
					tempNode = null;
					totalPage = null;
					totalResults = null;
					showList = null;


				},
				onerror: function() {
					$('.wxz-content').html('<div class="loading-tips" align="center">出错了......google登陆不了?!</div>');
					console.log("error");
					return 0;
				}
			});
		},
		pageBar: function(page, totalPage) {
			var
				html = '\
				<div class="pagese "id="wxz-pagese">\
				<a href="javascript:void(0)" class="page-prev mou-evt">上一页</a>\
				<span class="page-content"></span>\
				<a href="javascript:void(0)" class="page-next mou-evt">下一页</a>\
				</div>\
				',
				pageNodeHtml = '<span class="page-number"></span>',
				i, c,
				self = this,
				startPage = 10 * parseInt((page - 1) / 10, 10) + 1;
			$('#wxz-pagese').replaceWith(html);
			c = $('#wxz-pagese').find('.page-content').eq(0);
			for (i = 0; i < 10; i++) {
				if (i + startPage > totalPage) {
					break;
				}
				if (i + startPage === page) {
					$(pageNodeHtml).html(i + startPage).addClass('global-disabled').appendTo(c);
				} else {
					$(pageNodeHtml).html(i + startPage)
						.bind('click', {
							msg: i + startPage
						}, function(e) {
							self.search_2(keyword, (e.data.msg - 1) * 10);
						})
						.appendTo(c);
				}
			}
			if (page <= 1) {
				$('#wxz-pagese').find('.page-prev').eq(0).addClass('global-disabled');
			} else {
				$('#wxz-pagese').find('.page-prev').eq(0).bind('click', {
					msg: page - 1
				}, function(event) {
					self.search_2(keyword, (event.data.msg - 1) * 10);
				});
			}
			if (page >= totalPage) {
				$('#wxz-pagese').find('.page-next').eq(0).addClass('global-disabled');

			} else {
				$('#wxz-pagese').find('.page-next').eq(0).bind('click', {
					msg: page + 1
				}, function(event) {
					self.search_2(keyword, (event.data.msg - 1) * 10);
				});
			}
			html = null;
			pageNodeHtml = null;
			i = null;
			c = null;
			startPage = null;


		},
		setUI: function() {
			//根据屏幕设置div的大小位置
			var
				myDivHeight = window.innerHeight / 3 * 2,
				myDivLeft = -window.innerWidth / 6,
				myDivTop = window.innerHeight / 8;
			//应用大小和页面
			$('.wxz-content').css({
				height: myDivHeight
			});
			$('.wxz-myDiv').css({
				top: myDivTop,
				left: myDivLeft
			});
			//应用拖拽
			$("#wxz_myDiv").draggable({
				handle: "#wxz_myDiv_title"
			});
			myDivHeight = null;
			myDivLeft = null;
			myDivTop = null;

		},
		replaceAndInsert: function() {
			$(replaceEle).replaceWith(html_1); //搜索栏替换了广告	
			$('body').append(html_2);
			$('head:first').append(cssText); //插入css
		},
		bind_2: function() {
			var self = this;
			//绑定各种函数
			$('#wxz_searchButton').click(function() {
				keyword = $('#wxz_input').val();
				self.search_2(keyword, 0);
			});
			$('#wxz_closeButton').click(function() {
				self.searchClear();
			});
			$('#wxz_input').keyup(function(event) {
				if (event.which == 13) {
					$('#wxz_searchButton').trigger('click');
				}
			});
		},
		init: function() {
			var
				self = this,
				t = window.setInterval(function() { //百度云把一些内容放到后面加载,因此我设置了一个延时循环,每隔100ms选择一下所需的元素,当所需的元素存在时,开始脚本,同时停止延时循环
					if ($(replaceEle).length > 0) {
						window.clearInterval(t);
						self.replaceAndInsert();
						self.setUI();
						self.bind_2();

					}
					console.log('waiting');
				}, 100);
		},
	};
}(jQuery, '#top_menu_other'));

//启动
SearchObject.init();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址