您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
为豆瓣图书增加中大图书馆藏
当前为
// ==UserScript== // @name Douban helper for SYSU // @description 为豆瓣图书增加中大图书馆藏 // @author Hanchy Hill // @namespace https://minhill.com // @include http://book.douban.com/subject/* // @include http://202.116.64.108:8080/apsm/recommend/recommend_nobor.jsp* // @require http://libs.baidu.com/jquery/2.0.0/jquery.min.js // @version 1.4.1 // @grant GM_getValue // @grant GM_setValue // @grant GM_xmlhttpRequest // @grant GM_openInTab // @grant GM_deleteValue // @grant GM_addStyle // @grant GM_registerMenuCommand // @icon http://tb.himg.baidu.com/sys/portrait/item/3336cdf5d2af706879736963616c6a32 // ==/UserScript== GM_addStyle("#ISBNLoading,#titleLoading { list-style-type:none; }"); var schoolList=["SYSU","SCUT","SCNU","GDUT","GDUFS","GZHTCM","GZHU","GZARTS","XHCOM"]; //个人选项设置 var prefs={ school:"SYSU", studentID:"2333333", password:"Hello_Kitty", campus:"中山大学东校区", telephone:"13145201748", name:"小三", eMail:"[email protected]" } function LibMeta(){ this.state=null; this.error=false; this.errorMsg=null; this.type=null; this.link=null; this.items=null; this.originUrl=null; } function LibItem(school){ this.bookName=null; this.author=null; this.bookIndex=null; this.publisher=null; this.pubDate=null; this.school=school; this.link=null; this.type="booklist"; } function StoreItem(school){ this.school=school; this.storeState=null; this.borrowTime=null; this.returnTime=null; this.location=null; this.bookIndex=null; this.branch=null; this.link=null; this.type="store"; } //////////////框架//////////////////// ISBNFrame=function(){ var frame = document.createElement("div"); frame.innerHTML='<h2>中大图书馆ISBN检索</h2>'; frame.setAttribute("class","gray_ad"); frame.setAttribute("id","libISBN"); var aside=document.querySelector(".aside"); aside.insertBefore(frame,aside.firstChild); } ///////////////////////////豆瓣图书元信息/////////////////////////////////// bookMeta=(function(){ if(location.href.indexOf('book')==-1){ return null;//执行豆瓣图书Func. } var rawBookInfo=document.getElementById("info").innerHTML; //获取info块 var author = document.querySelector("#info a"); //获取作者 if (author){ author = author.innerHTML.trim(); } var publisher = /出版社:<\/span>(.*)<br>/.exec(rawBookInfo); if (publisher !== null){ publisher = publisher[1].trim(); } var pubdate = /出版年:<\/span>(.*)<br>/.exec(rawBookInfo); if (pubdate !== null){ pubdate = /[\d]+/.exec(pubdate[1].trim()); pubdate = pubdate[0]; } var price = /定价:<\/span>(.*)<br>/.exec(rawBookInfo); if (price !== null){ price = price[1].trim(); } var isbn = /ISBN:<\/span>(.*)<br>/.exec(rawBookInfo); if (isbn !== null){ isbn = isbn[1].trim(); } var bookIndex = /统一书号:<\/span>(.*)<br>/.exec(rawBookInfo); if (bookIndex !== null){ bookIndex = bookIndex[1].trim(); } var rating = document.querySelector('#interest_sectl .rating_num').innerHTML.trim(); if (!rating) { rating = '暂无评分'; } //////////////////////ISBN转为旧格式/////////////////////////////////// function ISBN10(isbn){ if(isbn == null){ return null; } else if(pubdate == null){ return isbn; } var rawISBN=isbn.slice(3,12); var checkCode=0;//校验码 for(i=0;i<9;i++){ checkCode+=parseInt(rawISBN[i])*(10-i); } checkCode=11-checkCode%11; if(checkCode==10){checkCode="X";} var preCode=""; publishDate=Number(pubdate.slice(0,4)); if((publishDate)>=2007){//判断年份以检查是否需要加前缀和修正校验位 preCode=isbn.slice(0,3)+"-"; checkCode=isbn[12]; } switch(rawISBN[1]){ case '0': ISBNold=preCode+rawISBN[0]+"-"+rawISBN.slice(1,3)+"-"+rawISBN.slice(3,9)+"-"+checkCode; break; case '1': case '2': case '3': ISBNold=preCode+rawISBN[0]+"-"+rawISBN.slice(1,4)+"-"+rawISBN.slice(4,9)+"-"+checkCode; break; case '5': case '7': ISBNold=preCode+rawISBN[0]+"-"+rawISBN.slice(1,5)+"-"+rawISBN.slice(5,9)+"-"+checkCode; break; case '4': case '8': ISBNold=preCode+rawISBN[0]+"-"+rawISBN.slice(1,6)+"-"+rawISBN.slice(6,9)+"-"+checkCode; break; default: ISBNold=rawISBN; break; } return ISBNold; } var isbn10=ISBN10(isbn,pubdate); ///////////////////////////////////////////////////////// return{ "title": document.querySelector('h1 span').textContent, "author": author, "publisher": publisher, "pubdate": pubdate, "price": price, "isbn": isbn, "bookIndex": bookIndex, "rating": rating, "isbn10": isbn10 }; })(); //alert(bookMeta.isbn10); //各学校元信息 var schoolInfo={ //中山大学 "SYSU":{ name:"中山大学", anySearchUrl:"http://202.116.64.108:8991/F/?func=find-b&find_code=WRD&request=%s", anyForeianSearchUrl:"http://202.116.64.108:8991/F/?func=find-b&find_code=WRD&request=%s&local_base=ZSU09", isbnSearchUrl:"http://202.116.64.108:8991/F/?func=find-b&find_code=ISB&request=%s", isbnForeianSearchUrl:"http://202.116.64.108:8991/F/?func=find-b&find_code=ISB&request=%s&local_base=ZSU09", titleSearchUrl:"", abbrName:"中大", isGBK:false, recommendUrl:"http://202.116.64.108:8080/apsm/recommend/recommend_nobor.jsp" }, //华南理工大学 "SCUT":{ name:"华南理工大学", anySearchUrl:"http://202.38.232.10/opac/servlet/opac.go?CLANLINK=&CODE=&FIELD1=TITLE&MARCTYPE=&MODE=FRONT&ORGLIB=SCUT&PAGE=&RDID=ANONYMOUS&SCODE=&TABLE=&VAL1=%s&cmdACT=simple.list&libcode=", abbrName:"华理工", isGBK:false }, //南中国一般大学 "SCNU":{ name:"华南师范大学", abbrName:"华师", anySearchUrl:"http://202.116.41.246:8080/opac/openlink.php?sort=M_TITLE&orderby=ASC&title=%s", isGBK:false }, //广东工业大学 "GDUT":{ name:"广东工业大学", abbrName:"广工", anySearchUrl:"http://222.200.98.171:81/searchresult.aspx?anywords=%s&dt=ALL&cl=ALL&dp=20&sf=M_PUB_YEAR&ob=DESC&sm=table&dept=ALL", isGBK:true }, //外语外贸大学 "GDUFS":{}, //广州中医药大学 "GZHTCM":{}, //广州大学 "GZHU":{ name:"广州大学", abbrName:"广大", anySearchUrl:"http://lib.gzhu.edu.cn:8080/bookle/?id=searchForm&displayPages=15&index=default&matchesPerPage=10&query=%s&searchPage=1&submit=Bookle%20%E6%90%9C%E7%B4%A2", isGBK:false }, //广州美术学院gzarts "GZARTS":{ name:"广州美术学院", abbrName:"广美", anySearchUrl:"http://121.33.246.167/opac/searchresult.aspx?anywords=%s&dt=ALL&cl=ALL&dp=20&sf=M_PUB_YEAR&ob=DESC&sm=table&dept=ALL&ecx=0", isGBK:true }, //星海音乐学院 "XHCOM":{}, //广东药学院,由于编码问题和没提供ISBN检索,暂不支持// } /////////////////////豆瓣处荐购结束/////////////////////////////////////// //函数:提取isbn搜索元信息 var isbnFilter={ //中山大学 SYSU: { respond:function (reDetails,frameLocation) { var fullUrl = reDetails.finalUrl; if (reDetails.status !== 200&&reDetails.status !== 304){ var msg = new LibMeta(); msg.state="error"; msg.errorMsg="ISBN连接错误"; //alert("ISBN连接错误");//后续版本再处理 messageCatcher(msg,frameLocation); return; } //document.getElementById("footer").textContent=reDetails.responseText; if(reDetails.responseText.indexOf('indexpage')!=-1){ //alert("ISBN查无此书"); //增加荐购 var msg = new LibMeta(); msg.state="recommend"; //hasBook = false; //recommendBook(); messageCatcher(msg,frameLocation); return; } //document.getElementById("footer").textContent=reDetails.responseText; //var frame =document.createElement("div"); //frame.innerHTML = reDetails.responseText; //alert(frame.innerHTML); if(reDetails.responseText.indexOf('Search Results')!=-1){ //alert("跳转到搜索页"); //var frame =document.createElement("div"); //frame.innerHTML = reDetails.responseText; //document.getElementById("reviews").textContent=frame.innerHTML; titleFilter.SYSU.filter(reDetails.responseText,fullUrl,frameLocation); } else{ isbnFilter.SYSU.filter(reDetails.responseText,frameLocation); } return; }, filter:function(gettxt,frameLocation){ getWhere = function(where,eBook,frameLocation){ //alert(typeof where); GM_xmlhttpRequest({ //获取列表 method : 'GET', synchronous : false, url : where[0], //url : fullurl,//"http://202.116.64.108:8991/F/?func=find-b&find_code=ISB&request=7101003044", onload : function (reDetails) { var libra =document.createElement("div"); libra.innerHTML = reDetails.responseText; getBookinfo(libra.innerHTML,eBook,frameLocation);//回调函数馆藏位置获取 } }); /////////////////回调函数馆藏位置获取//////////////////////////////////////// getBookinfo = function(webText,eBook,frameLocation){ var hasBook = true; webText = webText.replace(/[ | ]*\n/g,'').replace(/\n[\s| | ]*\r/g,'').replace(/amp;/g,""); //alert(webText); ///防止无书籍的情况发生 if(webText.indexOf('无匹配单册')!=-1){ var msg = new LibMeta(); msg.state="recommend"; messageCatcher(msg,frameLocation); } else{ blockBook = webText.match(/OPAC注释(.*?)<\/tbody>/)[1]; //alert(typeof blockBook); borrowItem = blockBook.match(/<tr>.*?<\/tr>/g); //alert(borrowItem[0]); var loan = new Array(); for(k=0;k<borrowItem.length;k++){ loan[k] = borrowItem[k].match(/<!--Loan.*?td1">(.*?)<\/td>.*?date.*?td1">(.*?)<\/td>.*?hour.*?td1>(.*?)<\/td>.*?Sub.*?nowrap="">(.*?)<\/td>/); /////借书类型/时间/到期/位置 } } ///////////////// /*/////////有电子书时////////// get_eBook = function(eBook){ k=storeList.items.length; storeList.items[k]=new StoreItem("SYSU"); storeList.items[k].link=eBook; storeList.items[k].type="eBook"; //bookStatus = '<ul class="ft pl more-after">'+ // '<li style="border: none">电子书位置:' + '<a href="'+ eBook +'" target="_blank">点击查看</a>'+ '</li>'; //bookStatus += '</ul>'; //allBook += bookStatus; }*/ ///////////插入框架/////// //var allBook = '<div class="gray_ad" id="sysulib"><h2>中大ISBN检索</h2>' + // '<a href="'+ fullurl +'" target="_blank">前往图书馆查看这本书</a>'; if(hasBook){ //alert("hasBook"); var storeList = new LibMeta(); storeList.state="store"; storeList.items= new Array(); for(s=0;s<borrowItem.length;s++){ //bookStatus = '<ul class="ft pl more-after"> ' + // '<li style="border: none">单册状态:' + loan[s][1]+ // '<span style="position:relative; left:20px;">应还日期: ' + loan[s][2].replace(/<br>/,"") +'</span></li>' + //'<li style="border: none">到期: ' + loan[s][3] + '</li>' + // '<li style="border: none">分馆: ' + loan[s][4] + '</li>' + // '</ul>'; //allBook += bookStatus; storeList.items[s]=new StoreItem("SYSU"); storeList.items[s].storeState=loan[s][1]; storeList.items[s].returnTime=loan[s][2].replace(/<br>/,""); storeList.items[s].branch=loan[s][4]; //alert(allBook); } //alert(storeList.items.length); if(eBook){ //get_eBook(eBook); var itemsLength=storeList.items.length; storeList.items[itemsLength]=new StoreItem("SYSU"); storeList.items[itemsLength].link=eBook; storeList.items[itemsLength].type="eBook"; storeList.items[itemsLength].storeState="电子书"; }; } //alert(storeList.items.length); //return messageCatcher(storeList); messageCatcher(storeList,frameLocation); //allBook += '</div>' //$('.aside').prepend(allBook); //////////////////////完成框架插入////////////// } } ///////////////////////////////////////////////////////// str = gettxt; str = str.replace(/[ | ]*\n/g,''); //去除行尾空白 str = str.replace(/\n[\s| | ]*\r/g,''); //去除多余空行 str = str.replace(/amp;/g,""); //去除URL转码 //alert(str); ///获取一整块 var eBook; eBook = null; if(str.match(/电子资源定位/)){ //document.getElementById("footer").textContent=str; eBook = str.match(/电子资源定位.*?jpg.*?File Extension: url">(.*?)<\/a>/)[1]; } if(!eBook&&str.indexOf("索书")==-1){ var msg = new LibMeta(); msg.state="recommend"; //recommendBook(); messageCatcher(msg,frameLocation); return; } str = str.match(/全部馆藏(.*?)所有单册借阅状态/g) //alert(typeof str[0]); var txt = str[0]; txt = txt.match(/http:.*?sub_library=/); //alert(txt); // alert(eBook); getWhere(txt,eBook,frameLocation); //alert(txt); ////////////////////////////////////////////// } }, //华南理工大学 SCUT:{ }, //南中国一般大学 SCNU:{ }, //广东工业大学 GDUT:{}, //外语外贸大学 GDUFS:{}, //广州中医药大学 GZHTCM:{}, //广州大学 GZHU:{}, //广州美术学院 GZARTS:{}, //星海音乐学院 XHCOM:{}, //广东药学院,由于编码问题和没提供ISBN检索,暂不支持// } //函数:提取title搜索元信息 var titleFilter={ //中山大学 SYSU:{ respond:function(reDetails,frameLocation) { fullurl=reDetails.finalUrl; if (reDetails.status !== 200&&reDetails.status !== 304){ var msg = new LibMeta(); msg.state = "error"; msg.errorMsg = "搜索连接错误"; messageCatcher(msg,frameLocation); ///error_log = "搜索连接错误"; ///error_output(error_log,fullurl); ///alert("全字段搜索连接错误"); return; } /*if(reDetails.responseText.indexOf('indexpage')!=-1){ var msg = new LibMeta(); msg.state = "error"; msg.errorMsg = "全字段查无此书"; ///hasBook = false; ///error_output(error_log,fullurl); messageCatcher(msg,frameLocation); return; }*/ //var frame =document.createElement("div"); //frame.innerHTML = reDetails.responseText; if(reDetails.responseText.indexOf('Search Results')!=-1){ //alert("跳转到搜索页"); //titleFilter.SYSU.filter(frame.innerHTML,fullurl); titleFilter.SYSU.filter(reDetails.responseText,fullurl,frameLocation); return; } else if(reDetails.responseText.indexOf('记录数')!=-1){ var msg = new LibMeta(); msg.state = "error"; msg.errorMsg = "搜索页面跳转到了记录数页面,此页面无法获取图书详细信息。"; ///error_log = "搜索页面跳转到了记录数页面,此页面无法获取图书详细信息。"; ///error_output(error_log,fullurl); messageCatcher(msg,frameLocation); return; } else{ //error_log = "搜索页面跳转到馆藏,<br>如果ISBN查询无结果,说明其跳转到了错误的图书。"; //error_output(error_log,fullurl); isbnFilter.SYSU.filter(reDetails.responseText,frameLocation); return; //showisbn(frame.innerHTML,fullurl); //return; //alert("全字段跳转ISBN馆藏");//BUG处理,以后再说,基本检索 // } }, filter:function (txt,urltext,frameLocation){ str = txt; str = str.replace(/[ | ]*\n/g,''); //去除行尾空白 str = str.replace(/\n[\s| | ]*\r/g,''); //去除多余空行 str = str.replace(/amp;/g,""); //去除URL转码 //alert(str); //if(urltext.indexOf("ISB")){alert(str)}; atxt= str.match(/col2>.*?<\/table>/g); //alert(atxt.length); //if(urltext.indexOf("ISB")){alert(atxt.length)}; ///////获取图书馆书本元信息////// var bookDetail = new Array();//元信息数组 atxt.shift();//去除整块信息中的多余信息 for(s=0;s<atxt.length;s++){ // bookDetail[s] = atxt[s].match(/a[ ]href="(.*?)">(.*?)<\/a>.*?"top">(.*?)<\/td>.*?"top">(.*?)<\/td>.*?"top">(.*?)<\/td>.*?"top">(.*?)<\/td>.*?sub_library=(.*?)<\/table>/).slice(1); // 超链接/ 书名 /作者 / 索引号/出版社 /年份 /藏书信息(由于有些书无馆藏,暂时不获取) //if(!bookDetail[s]){ //如果没有馆藏信息 //alert(atxt[s]); bookDetail[s] = atxt[s].match(/a href=(.*?)>(.*?)<\/a>.*?top>(.*?)<td.*?top>(.*?)<tr>.*?top>(.*?)<td.*?top>(.*?)<tr>/).slice(1); // 超链接/ 书名 /作者 / 索引号/出版社 /年份 / } ////////框架////////////////////////////////// //hasBook = true; //if(hasBook){ //判断URL类型 if(urltext.indexOf('ISB')!=-1){ var allBook = '<div class="gray_ad" id="sysulib"><h2>中大ISBN检索</h2>' + '<a href="'+ urltext +'" target="_blank">前往图书馆查看这本书</a>'; } else{ var allBook = '<div class="gray_ad" id="sysulib"><h2>中大图书馆检索</h2>' + '<a href="'+ urltext +'" target="_blank">前往图书馆查看这本书</a>'; } //alert(allBook); var display; var list = new LibMeta();////构造函数 list.state="booklist"; list.items= new Array(); for(s=0;s<bookDetail.length;s++){ if(s>4){ display=" ;display : none"; } else{ display=""; } //bookStatus = '<ul class="ft pl more-after"> ' + // '<li style="border: none"><a href="'+bookDetail[s][0]+'"target="_blank">书名:' + bookDetail[s][1]+ '</a></li>' + // '<li style="border: none'+display+'"><a >作者: ' + bookDetail[s][2] +'</a>' + // '<a style="position:relative; left:15px;">出版社:' + bookDetail[s][4] + '</a></li>' + //'<li style="border: none'+display+'"><a >出版社: ' + bookDetail[s][4] + '</a></li>' + //'<li style="border: none'+display+'"><a >年份: ' + bookDetail[s][5] + '</a></li>' + // '</ul>'; //allBook += bookStatus; list.items[s] = new LibItem("SYSU"); list.items[s].link = bookDetail[s][0]; list.items[s].bookName = bookDetail[s][1]; list.items[s].author = bookDetail[s][2]; list.items[s].publisher = bookDetail[s][4]; list.items[s].pubDate = bookDetail[s][5]; //alert(list.items[s].bookName); } //alert(allBook); //allBook += '</div>' messageCatcher(list,frameLocation); //判断URL ///////////////判断URL //} ////////////插入框架结束////////////// } }, //华南理工大学 SCUT:{ }, //南中国一般大学 SCNU:{ }, //广东工业大学 GDUT:{}, //外语外贸大学 GDUFS:{}, //广州中医药大学 GZHTCM:{}, //广州大学 GZHU:{}, //广州美术学院 GZARTS:{}, //星海音乐学院 XHCOM:{}, //广东药学院,由于编码问题和没提供ISBN检索,暂不支持// } //////////////////图书馆荐购页面Main////////////////////////////////////// libMain = function(){ if(GM_getValue('doubanTitle')){ $('[name="Z13_TITLE"]').val(GM_getValue('doubanTitle','bookMeta.title')); $('[name="Z13_AUTHOR"]').val(GM_getValue('doubanAuthor','bookMeta.author')); $('[name="Z13_IMPRINT"]').val(GM_getValue('doubanPublisher','bookMeta.publisher')); $('[name="Z13_YEAR"]').val(GM_getValue('doubanPubdate','bookMeta.pubdate')); $('[name="Z13_ISBN_ISSN"]').val(GM_getValue('doubanIsbn','bookMeta.isbn')); $('[name="Z13_PRICE"]').val(GM_getValue('doubanPrice','bookMeta.price')); $('[name="Z68_NO_UNITS"]').val(2); $('[name="Z303_REC_KEY"]').val(helper.libraryId); $('[name="Z46_REQUEST_PAGES"]').val('豆瓣读书得分: '+ GM_getValue('doubanRating','bookMeta.rating')); GM_deleteValue('doubanTitle'); GM_deleteValue('doubanAuthor'); GM_deleteValue('doubanPublisher'); GM_deleteValue('doubanPubdate'); GM_deleteValue('doubanIsbn'); GM_deleteValue('doubanPrice'); GM_deleteValue('doubanRating'); } //alert(GM_getValue('doubanTitle')); } ///////////////////图书馆荐购页面结束////////////////// ///////////////////框架////////////////// titleFrame=function(){ var frame = document.createElement("div"); frame.innerHTML='<h2>'+schoolInfo[prefs.school].abbrName+'图书馆全字段检索</h2>'; frame.setAttribute("class","gray_ad"); frame.setAttribute("id","libTitle"); var aside=document.querySelector(".aside"); aside.insertBefore(frame,document.getElementById("buyinfo")); } ISBNFrame=function(){ var frame = document.createElement("div"); frame.innerHTML='<h2>中大图书馆ISBN检索</h2>'; frame.setAttribute("class","gray_ad"); frame.setAttribute("id","libISBN"); var aside=document.querySelector(".aside"); aside.insertBefore(frame,aside.firstChild); } //////////////ISBN搜索xml获取////////////////// mineISBN = function(school){ ISBNFrame(); frame = document.getElementById("libISBN"); if(bookMeta.isbn){ if(bookMeta.isbn[3]=="7"){ var fullUrl=schoolInfo[school].isbnSearchUrl.replace(/%s/,bookMeta.isbn); } else{ var fullUrl=schoolInfo[school].isbnForeianSearchUrl.replace(/%s/,bookMeta.isbn); } //alert(fullUrl); frameLink = document.createElement("a"); frameLink.setAttribute("target","_blank"); frameLink.innerHTML="前往图书馆查看这本书"; frameLink.setAttribute("href",fullUrl); frame.appendChild(frameLink); loadingFrame=document.createElement("div"); loadingFrame.setAttribute("id","ISBNLoading"); loadingFrame.innerHTML= '<li id="loadingSource"><a target="_blank" href="http://www.google.com/cse?cx=016039034221689005018:ydhqa4tnacs&ie=UTF-8&q=&ref=#gsc.q=%E7%AE%97%E6%B3%95%E5%BF%83%E5%BE%97%EF%BC%9A%E9%AB%98%E6%95%88%E7%AE%97%E6%B3%95%E7%9A%84%E5%A5%A5%E7%A7%98%20more%3Akindle"><img border="0" src="data:image/gif;base64,R0lGODlhCgAKAJEDAMzMzP9mZv8AAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQFAAADACwAAAAACgAKAAACF5wncgaAGgJzJ647cWua4sOBFEd62VEAACH5BAUAAAMALAEAAAAIAAMAAAIKnBM2IoMDAFMQFAAh+QQFAAADACwAAAAABgAGAAACDJwHMBGofKIRItJYAAAh+QQFAAADACwAAAEAAwAIAAACChxgOBPBvpYQYxYAIfkEBQAAAwAsAAAEAAYABgAAAgoEhmPJHOGgEGwWACH5BAUAAAMALAEABwAIAAMAAAIKBIYjYhOhRHqpAAAh+QQFAAADACwEAAQABgAGAAACDJwncqi7EQYAA0p6CgAh+QQJAAADACwHAAEAAwAIAAACCpRmoxoxvQAYchQAOw=="> 努力加载中...</a></li>' frame.appendChild(loadingFrame); GM_xmlhttpRequest({ //获取列表 method : 'GET', synchronous : false,//异步获取 //url : "http://202.116.64.108:8991/F/?func=find-b&find_code=ISB&request=9787805985824", url : fullUrl, onload :function (reDetails){ isbnFilter[school].respond(reDetails,"ISBN"); } }); } else{//无ISBN号的情况 var noISBN=document.createElement("div"); noISBN.innerHTML="无法获取ISBN号"; frame.appendChild(noISBN); } } ///////////////////////////////////////// //////////////书名搜索xml获取////////////////// mineTitle = function(school){ titleFrame(); if(bookMeta.isbn&&bookMeta.title.charCodeAt(0)<=122&&bookMeta.isbn[3]!=="7"){ var fullUrl=schoolInfo[school].anyForeianSearchUrl.replace(/%s/,bookMeta.title); } else{ var fullUrl=schoolInfo[school].anySearchUrl.replace(/%s/,bookMeta.title); } frame = document.getElementById("libTitle"); loadingFrame=document.createElement("div"); loadingFrame.setAttribute("id","titleLoading"); loadingFrame.innerHTML= '<li id="loadingSource"><a target="_blank" href="http://www.google.com/cse?cx=016039034221689005018:ydhqa4tnacs&ie=UTF-8&q=&ref=#gsc.q=%E7%AE%97%E6%B3%95%E5%BF%83%E5%BE%97%EF%BC%9A%E9%AB%98%E6%95%88%E7%AE%97%E6%B3%95%E7%9A%84%E5%A5%A5%E7%A7%98%20more%3Akindle"><img border="0" src="data:image/gif;base64,R0lGODlhCgAKAJEDAMzMzP9mZv8AAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQFAAADACwAAAAACgAKAAACF5wncgaAGgJzJ647cWua4sOBFEd62VEAACH5BAUAAAMALAEAAAAIAAMAAAIKnBM2IoMDAFMQFAAh+QQFAAADACwAAAAABgAGAAACDJwHMBGofKIRItJYAAAh+QQFAAADACwAAAEAAwAIAAACChxgOBPBvpYQYxYAIfkEBQAAAwAsAAAEAAYABgAAAgoEhmPJHOGgEGwWACH5BAUAAAMALAEABwAIAAMAAAIKBIYjYhOhRHqpAAAh+QQFAAADACwEAAQABgAGAAACDJwncqi7EQYAA0p6CgAh+QQJAAADACwHAAEAAwAIAAACCpRmoxoxvQAYchQAOw=="> 努力加载中...</a></li>' frameLink = document.createElement("a"); frameLink.setAttribute("target","_blank"); frameLink.innerHTML="前往图书馆查看这本书"; frameLink.setAttribute("href",fullUrl); frame.appendChild(frameLink); frame.appendChild(loadingFrame); //alert(fullUrl); GM_xmlhttpRequest({ //获取列表 method : 'GET', synchronous : false,//异步获取 //url : "http://202.116.64.108:8991/F/?func=find-b&find_code=ISB&request=9787805985824", url : fullUrl, onload :function (reDetails){ //var innerContent=document.createElement("div"); titleFilter[school].respond(reDetails,"title"); } }); } ///////////////////////////////////////// ////////////错误处理///////////////// /*error_output = function(error_log,callBackUrl){ var allBook = '<div class="gray_ad" id="sysulib"><h2>中大图书馆检索</h2>' + '<a href="'+ callBackUrl +'" target="_blank">の~~(╯﹏╰)b</a>'; bookStatus = '<ul class="ft pl more-after"> ' + '<li style="border: none">' + error_log+'</li>' + '</ul>'; allBook += bookStatus; allBook += '</div>' ; //判断URL if(callBackUrl.indexOf('ISB')!=-1){ $('.aside').prepend(allBook); } else{ $('#buyinfo').before(allBook); } return; }*/ ///////////////ISBN插入框架////////////////////////////// ISBNInsert=function(msg,frameLocation){ var innerContent=document.createElement("div"); innerContent.innerHTML= msg; switch(frameLocation){ case "ISBN": loading =document.getElementById("ISBNLoading"); loading.parentNode.removeChild(loading); frame = document.getElementById("libISBN"); break; case "title": loading =document.getElementById("titleLoading"); loading.parentNode.removeChild(loading); frame = document.getElementById("libTitle"); break; default: break; } frame.appendChild(innerContent); } ///////////////Title插入框架////////////////////////////// titleInsert=function(msg,frameLocation){ var innerContent=document.createElement("div"); innerContent.innerHTML= msg; switch(frameLocation){ case "ISBN": loading =document.getElementById("ISBNLoading"); loading.parentNode.removeChild(loading); frame = document.getElementById("libISBN"); break; case "title": GM_addStyle("#libTitle { max-height: 350px;overflow: auto; }"); loading =document.getElementById("titleLoading"); loading.parentNode.removeChild(loading); frame = document.getElementById("libTitle"); break; default: break; } frame.appendChild(innerContent); } ///////////////Title插入框架////////////////////////////// errorInsert=function(msg,frameLocation){ var innerContent=document.createElement("div"); innerContent.innerHTML= msg; switch(frameLocation){ case "ISBN": loading =document.getElementById("ISBNLoading"); loading.parentNode.removeChild(loading); frame = document.getElementById("libISBN"); break; case "title": loading =document.getElementById("titleLoading"); loading.parentNode.removeChild(loading); frame = document.getElementById("libTitle"); break; default: break; } frame.appendChild(innerContent); } //////////////豆瓣网页荐购获取///////////////////////// recommendBook = function(frameLocation){ var innerContent=document.createElement("div"); switch(frameLocation){ case "ISBN": loading =document.getElementById("ISBNLoading"); loading.parentNode.removeChild(loading); frame = document.getElementById("libISBN"); break; case "title": loading =document.getElementById("titleLoading"); loading.parentNode.removeChild(loading); frame = document.getElementById("libTitle"); break; default: break; } function gotoRecommend(){ //var bookMeta = helper.book.meta(); //alert(bookMeta.bookIndex); GM_setValue('doubanTitle',bookMeta.title); GM_setValue('doubanAuthor',bookMeta.author); GM_setValue('doubanPublisher',bookMeta.publisher); GM_setValue('doubanPubdate',bookMeta.pubdate); GM_setValue('doubanIsbn',bookMeta.isbn||bookMeta.bookIndex); GM_setValue('doubanPrice',bookMeta.price); GM_setValue('doubanRating',bookMeta.rating); GM_openInTab(schoolInfo[prefs.school].recommendUrl); }; var style = ('style="' + 'display: inline-block; ' + 'background: #33A057; ' + 'border: 1px solid #2F7B4B; ' + 'color: white; ' + 'padding: 1px 10px; ' + 'border-radius: 3px; ' + 'margin-right: 8px;" ' ); statBtn = ('<a href="#recform" id="recbtn" rel="modal:open"' + style + '>荐购</a>' ); var allBook = '<ul><li>ISBN查询无此书'+statBtn+'</li></ul>'; innerContent.innerHTML= allBook; frame.appendChild(innerContent); button=document.getElementById("recbtn"); if(button){ button.addEventListener("click",gotoRecommend,false); } } ///////获取回调数据////////////// messageCatcher=function(msg,frameLocation){ switch(msg.state){ case "store": var allBook=""; for(s=0;s<msg.items.length;s++){ bookStatus = '<ul class="ft pl more-after"> ' + '<li style="border: none">单册状态:' + msg.items[s].storeState+ '<span style="position:relative; left:20px;">应还日期: ' + msg.items[s].returnTime +'</span></li>' + //'<li style="border: none">到期: ' + loan[s][3] + '</li>' + '<li style="border: none">分馆: ' + msg.items[s].branch + '</li>' + '</ul>'; allBook += bookStatus; //alert(allBook); } //alert(allBook); ISBNInsert(allBook,frameLocation); break; case "booklist": var display; var allBook = ""; for(s=0;s<msg.items.length;s++){ if(s>4){ display=" ;display : none"; } else{ display=""; } bookStatus = '<ul class="ft pl more-after"> ' + '<li style="border: none"><a href="'+msg.items[s].link+'"target="_blank">书名:' + msg.items[s].bookName+ '</a></li>' + '<li style="border: none'+display+'"><a >作者: ' + msg.items[s].author +'</a>' + '<a style="position:relative; left:15px;">出版社:' + msg.items[s].publisher + '</a></li>' + //'<li style="border: none'+display+'"><a >出版社: ' + bookDetail[s][4] + '</a></li>' + //'<li style="border: none'+display+'"><a >年份: ' + bookDetail[s][5] + '</a></li>' + '</ul>'; allBook += bookStatus; } //return allBook; titleInsert(allBook,frameLocation); break; case "recommend": //alert("recommend"); recommendBook(frameLocation); break; case "error": var bookStatus = '<ul class="ft pl more-after"> ' + '<li style="border: none">' + msg.errorMsg+'</li>' + '</ul>'; //return bookStatus; //alert(msg.errorMsg); //alert(frameLocation); errorInsert(bookStatus,frameLocation); break; default: alert("defalut"); break; } } ///////////////////////////////// //////////////////图书馆荐购页面Main////////////////////////////////////// libMain = function(){ if(GM_getValue('doubanTitle')){ $('[name="Z13_TITLE"]').val(GM_getValue('doubanTitle','bookMeta.title')); $('[name="Z13_AUTHOR"]').val(GM_getValue('doubanAuthor','bookMeta.author')); $('[name="Z13_IMPRINT"]').val(GM_getValue('doubanPublisher','bookMeta.publisher')); $('[name="Z13_YEAR"]').val(GM_getValue('doubanPubdate','bookMeta.pubdate')); $('[name="Z13_ISBN_ISSN"]').val(GM_getValue('doubanIsbn','bookMeta.isbn')); $('[name="Z13_PRICE"]').val(GM_getValue('doubanPrice','bookMeta.price')); $('[name="Z68_NO_UNITS"]').val(2); $('[name="Z303_REC_KEY"]').val(helper.libraryId); $('[name="Z46_REQUEST_PAGES"]').val('豆瓣读书得分: '+ GM_getValue('doubanRating','bookMeta.rating')); GM_deleteValue('doubanTitle'); GM_deleteValue('doubanAuthor'); GM_deleteValue('doubanPublisher'); GM_deleteValue('doubanPubdate'); GM_deleteValue('doubanIsbn'); GM_deleteValue('doubanPrice'); GM_deleteValue('doubanRating'); } //alert(GM_getValue('doubanTitle')); } ///////////////////图书馆荐购页面结束////////////////// function popSetting(){ var settingDiv = document.createElement("div"); settingDiv.setAttribute("id","libSetting"); document.getElementsByTagName("body")[0].appendChild(settingDiv); var h3 = document.createElement("h2"); h3.innerHTML = "图书馆检索设置" document.getElementById("libSetting").appendChild(h3); } GM_addStyle("#libSetting {background: linear-gradient(rgb(204, 204, 204), rgb(170, 170, 170)) repeat scroll 0 0 rgba(0, 0, 0, 0);border: 1px solid #aaa;box-shadow: 0 0 8px 2px #777;height: auto;left: calc(50% - 300px);min-height: 250px;padding: 0 20px 65px;position: fixed;top: 25%;width: 600px;z-index: 1000002;}"); GM_registerMenuCommand("图书馆检索设置", popSetting); //////////////主函数////////////////////////// if(location.href.indexOf('book')!=-1){ mineISBN(prefs.school); mineTitle(prefs.school); } if(location.href.indexOf('recommend_nobor')!=-1){ libMain();//执行图书馆荐购页面主Func. }
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址