您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Greasy Fork is available in English.
显示图书馆参考咨询联盟(ucdrs)或读秀及其镜像站(duxiu)上文献的ssid或dxid(ssid不存在时),用于群组找书、文献互助、图书互助等场景;显示大学数字图书馆国际合作计划(cadal)的书号-ssno,用于查询下载中美百万书册;另外在搜索、详情页等处添加ucdrs、duxiu、cadal和豆瓣的双向导航链接。To搜索[红太狼的平底锅]的朋友:提供红太狼的平底锅的部分功能,如显示ssid,下载请自行找百度网盘群组;显示dxid和双向链接为平底锅没有的新加功能。
当前为
// ==UserScript== // @name 文献互助小帮手:①从图书馆参考咨询联盟(ucdrs)或读秀(duxiu)获取ssid/dxid ②从中美百万(cadal)获取ssno ③提供ucdrs、duxiu、cadal到豆瓣图书的链接 // @namespace ucdrs.superlib.net // @version 1.4.2 // @author Theron // @match *://book.ucdrs.superlib.net/views/specific/* // @match *://book.ucdrs.superlib.net/search* // @match *://search.douban.com/book/subject_search* // @match *://book.douban.com/subject_search* // @match *://book.douban.com/tag/* // @match *://book.douban.com/subject/* // @match *://book.douban.com/series/* // @match *://book.douban.com/works/* // @match *://book.douban.com/author/*/books* // @match *://book.douban.com/people/*/wish* // @match *://book.douban.com/people/*/do* // @match *://book.douban.com/people/*/collect* // @match *://www.douban.com/doulist/* // @match *://book.douban.com/cart* // @match *://cadal.edu.cn/cadalinfo/search* // @match *://cadal.edu.cn/cardpage/bookCardPage?*ssno=* // @include */search* // @include */bookDetail.jsp* // @description 显示图书馆参考咨询联盟(ucdrs)或读秀及其镜像站(duxiu)上文献的ssid或dxid(ssid不存在时),用于群组找书、文献互助、图书互助等场景;显示大学数字图书馆国际合作计划(cadal)的书号-ssno,用于查询下载中美百万书册;另外在搜索、详情页等处添加ucdrs、duxiu、cadal和豆瓣的双向导航链接。To搜索[红太狼的平底锅]的朋友:提供红太狼的平底锅的部分功能,如显示ssid,下载请自行找百度网盘群组;显示dxid和双向链接为平底锅没有的新加功能。 // @grant none // @license Copyright Theron // ==/UserScript== (function () { 'use strict'; function slim(s) { return s.replaceAll(/ +/g, "").trim(); } function showbid(bookid, idtype) { return `<p style="text-align: center; margin-top: 5px; margin-bottom: 5px; clear:both;"><span style="color: red; font-size: 13px; padding-right: 3px;">${idtype}</span><span style="color: blue; font-size: 13px; font-weight: bold;">${bookid}</span></p>`; } function iid2ssid(iid) { var ssid = ""; var part = ""; var tailhex = parseInt(iid.substring(iid.length - 2), 16); var encoded = iid.substring(0, iid.length - 16); for (var i = 0; i < encoded.length; i = i + 2) { part = encoded.substring(i, i + 2); ssid += String.fromCharCode(parseInt(part, 16) - tailhex); } return ssid.replace(/\//g, "").match(/\d{8}/)[0]; } var pageurl = window.location.href; if (pageurl.includes("search.douban.com/book/subject_search") || pageurl.includes("book.douban.com/subject_search")) { jQuery("div.item-root > div.detail > div.title").each((i, el) => { let bookname = slim(jQuery(el).text()); jQuery(el).find("a").after(' | <a style="font-size: 80%; color: orange;" href="http://book.ucdrs.superlib.net/search?sw=' + bookname + '&bCon=&ecode=utf-8&channel=search&Field=1" target="_blank">参考联盟</a>'); }); } else if (pageurl.includes("book.douban.com/works")) { jQuery("div.bkdesc > a.pl2").each((i, el) => { let bookname = slim(jQuery(el).text()); jQuery(el).after(' | <a style="font-size: 80%; color: orange;" href="http://book.ucdrs.superlib.net/search?sw=' + bookname + '&bCon=&ecode=utf-8&channel=search&Field=1" target="_blank">参考联盟</a>'); }); } else if (pageurl.includes("book.douban.com/cart")) { jQuery("td.book_title > a").each((i, el) => { let bookname = slim(jQuery(el).text()); jQuery(el).after(' | <a style="font-size: 80%; color: orange;" href="http://book.ucdrs.superlib.net/search?sw=' + bookname + '&bCon=&ecode=utf-8&channel=search&Field=1" target="_blank">参</a>'); }); } else if (pageurl.includes("www.douban.com/doulist")) { jQuery("div.title > a").each((i, el) => { let bookname = slim(jQuery(el).text()); let $src = slim(jQuery(el).parent().prev().prev().text()); if ($src == "来自:豆瓣读书") { jQuery(el).after(' | <a style="font-size: 80%; color: orange;" href="http://book.ucdrs.superlib.net/search?sw=' + bookname + '&bCon=&ecode=utf-8&channel=search&Field=1" target="_blank">参考联盟</a>'); } }); } else if (pageurl.match("book.douban.com.*/(series|tag|do|wish|collect)")) { jQuery("div.info > h2 > a").each((i, el) => { let bookname = slim(jQuery(el).text()); jQuery(el).after(' | <a style="font-size: 80%; color: orange;" href="http://book.ucdrs.superlib.net/search?sw=' + bookname + '&bCon=&ecode=utf-8&channel=search&Field=1" target="_blank">参考联盟</a>'); }); } else if (pageurl.includes("book.douban.com/author")) { jQuery("h6 > a").each((i, el) => { let bookname = slim(jQuery(el).text()); jQuery(el).after(' | <a style="font-size: 80%; color: orange;" href="http://book.ucdrs.superlib.net/search?sw=' + bookname + '&bCon=&ecode=utf-8&channel=search&Field=1" target="_blank">参考联盟</a>'); }); } else if (pageurl.includes("book.douban.com/subject")) { let json = jQuery("script[type='application/ld+json']").text(); let st = json.match(/"name" : "(.*?)",/)[1]; let m = json.match(/"isbn" : "(.*?)",/); if (m) { st = m[1]; jQuery("div#mainpic > a.nbg").after('<br><a href="http://book.ucdrs.superlib.net/search?sw=' + st + '&bCon=&ecode=utf-8&channel=search&Field=All" target="_blank">参考联盟</a>'); } else { jQuery("div#mainpic > a.nbg").after('<br><a href="http://book.ucdrs.superlib.net/search?sw=' + st + '&bCon=&ecode=utf-8&channel=search&Field=1" target="_blank">参考联盟</a>'); } } else if (pageurl.includes("book.ucdrs.superlib.net/search")) { jQuery('td[id="b_img"]').each((i, el) => { let bookid = jQuery(el).parent("tr").find('input[name*="ssid"]').val(); let bookname = jQuery(el).parent("tr").find('input[name*="title"]').val().replaceAll(/<.*?>/g, ""); if (bookname) { jQuery(el).parent().children().last().find("a").after(' | <a href="https://search.douban.com/book/subject_search?search_text=' + bookname + '" target="_blank">豆瓣</a>'); } if (bookid) { jQuery(el).after(showbid(bookid, "SS号")); } else if ((bookid = jQuery(el).find("a[href]").attr("href").match(/dxNumber=(\d+)/))) { jQuery(el).after(showbid(bookid[1], "DX号")); } }); } else if (pageurl.includes("//cadal.edu.cn/cadalinfo/search")) { jQuery('a.title').each((i, el) => { let bookid = jQuery(el).attr("onclick").match(/'\w+'/)[0].replace(/'/g, "").replace("hj", ""); jQuery(el).parent().parent().prev().find("a").after(showbid("CD" + bookid, "CADAL号<br>")); let bookname = jQuery(el).text().trim(); jQuery(el).after(' | <a href="https://search.douban.com/book/subject_search?search_text=' + bookname + '" target="_blank">豆瓣</a>'); }); } else if (pageurl.includes("://cadal.edu.cn/cardpage/bookCardPage?")) { let bookid = pageurl.match(/ssno=(\w+)/)[1]; jQuery('div.title_img').each((i, el) => { let st = jQuery("span.title").text().trim(); let m = jQuery(el).next().text().match(/ISBN:(.*?)\n/); if (m) { st = m[1]; } jQuery(el).find("a").after(showbid("CD" + bookid, "CADAL号<br>")); jQuery("span.title").after(' | <a href="https://search.douban.com/book/subject_search?search_text=' + st + '" target="_blank">豆瓣</a>'); }); jQuery("#menu_area").show(); } else if (pageurl.includes("/search") && jQuery('#dxid0').val()) { jQuery('div[class="divImg"]').each((i, el) => { let ssid = jQuery(el).prev().val(); let dxid = jQuery(el).prev().prev().val(); let bookname = jQuery(el).parent().find('input[name*="title"]').val().replaceAll(/<.*?>/g, ""); if (bookname) { jQuery(el).next().find("dt").find("a").after(' | <a href="https://search.douban.com/book/subject_search?search_text=' + bookname + '" target="_blank" style="color: blue">豆瓣</a>'); } if (ssid) { jQuery(el).children().first().after(showbid(ssid, "SS号")); } else if (dxid) { jQuery(el).children().first().after(showbid(dxid, "DX号")); } }); } else if (pageurl.includes("/views/specific/")) { let m = jQuery("script:contains(send_requestajax)").text().match(/ssn=(\d{3,})/); let img = jQuery("div.tubookimg>img"); if (m) { img.after(showbid(m[1], "SS号")); } else if ((m = pageurl.match(/dxNumber=(\d+)/))) { img.after(showbid(m[1], "DX号")); } let st = jQuery("div.tutilte").text(); let m2 = jQuery("div.tubox").find("dl").text().match(/【ISBN号】(.*?)\n/); if (m2) { st = m2[1]; } img.after('<p style="text-align: center"><a href="https://search.douban.com/book/subject_search?search_text=' + st + '" target="_blank">豆瓣</a></p>'); } else if (pageurl.includes("bookDetail.jsp?") && jQuery('input#dxid').val()) { let m = jQuery("div#bookphoto").html().match(/CoverNew.dll\?iid=(\w{40,56}\b)/); let m1 = jQuery("script:contains(send_requestlib)").text().match(/ssn=(\d{3,})/); let img = jQuery("#grade1").prev(); if (m) { img.after(showbid(iid2ssid(m[1]), "SS号")); } else if (m1) { img.after(showbid(m[1], "SS号")); } else if ((m = pageurl.match(/dxNumber=(\d+)/))) { img.after(showbid(m[1], "DX号")); } let st = jQuery("input#dxid").prev().text(); let m2 = jQuery("div.card_text").find("dl").text().match(/ISBN号 :(.*?)\n/); if (m2) { st = m2[1]; } img.after('<p style="text-align: center"><a href="https://search.douban.com/book/subject_search?search_text=' + st + '" target="_blank">豆瓣</a></p>'); } })();