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.0
// @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*
// @require https://libs.baidu.com/jquery/2.0.0/jquery.min.js
// @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>`;
}
var pageurl = window.location.href;
if (pageurl.includes("search.douban.com/book/subject_search") || pageurl.includes("book.douban.com/subject_search")) {
$("div.item-root > div.detail > div.title").each((i, el) => {
let bookname = slim($(el).text());
$(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")) {
$("div.bkdesc > a.pl2").each((i, el) => {
let bookname = slim($(el).text());
$(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")) {
$("td.book_title > a").each((i, el) => {
let bookname = slim($(el).text());
$(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")) {
$("div.title > a").each((i, el) => {
let bookname = slim($(el).text());
let $src = slim($(el).parent().prev().prev().text());
if ($src == "来自:豆瓣读书") {
$(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)")) {
$("div.info > h2 > a").each((i, el) => {
let bookname = slim($(el).text());
$(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")) {
$("h6 > a").each((i, el) => {
let bookname = slim($(el).text());
$(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 = $("script[type='application/ld+json']").text();
let st = json.match(/"name" : "(.*?)",/)[1];
let m = json.match(/"isbn" : "(.*?)",/);
if (m) {
st = m[1];
$("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 {
$("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")) {
$('td[id="b_img"]').each((i, el) => {
let bookid = $(el).parent("tr").find('input[name*="ssid"]').val();
let bookname = $(el).parent("tr").find('input[name*="title"]').val().replaceAll(/<.*?>/g, "");
if (bookname) {
$(el).parent().children().last().find("a").after(' | <a href="https://search.douban.com/book/subject_search?search_text=' + bookname + '" target="_blank">豆瓣</a>');
}
if (bookid) {
$(el).after(showbid(bookid, "SS号"));
} else if ((bookid = $(el).find("a[href]").attr("href").match(/dxNumber=(\d+)/))) {
$(el).after(showbid(bookid[1], "DX号"));
}
});
} else if (pageurl.includes("//cadal.edu.cn/cadalinfo/search")) {
$('a.title').each((i, el) => {
let bookid = $(el).attr("onclick").match(/'\w+'/)[0].replace(/'/g, "").replace("hj", "");
$(el).parent().parent().prev().find("a").after(showbid("CD" + bookid, "CADAL号<br>"));
let bookname = $(el).text().trim();
$(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?ssno=")) {
let bookid = pageurl.match(/ssno=(\w+)/)[1];
$('div.title_img').each((i, el) => {
let st = $("span.title").text().trim();
let m = $(el).next().text().match(/ISBN:(.*?)\n/);
if (m) {
st = m[1];
}
$(el).find("a").after(showbid("CD" + bookid, "CADAL号<br>"));
$("span.title").after(' | <a href="https://search.douban.com/book/subject_search?search_text=' + st + '" target="_blank">豆瓣</a>');
});
} else if (pageurl.includes("/search") && $('#dxid0').val()) {
$('div[class="divImg"]').each((i, el) => {
let ssid = $(el).prev().val();
let dxid = $(el).prev().prev().val();
let bookname = $(el).parent().find('input[name*="title"]').val().replaceAll(/<.*?>/g, "");
if (bookname) {
$(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) {
$(el).children().first().after(showbid(ssid, "SS号"));
} else if (dxid) {
$(el).children().first().after(showbid(dxid, "DX号"));
}
});
} else if (pageurl.includes("/views/specific/")) {
let m = $("script:contains(send_requestajax)").text().match(/ssn=(\d{3,})/);
let img = $("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 = $("div.tutilte").text();
let m2 = $("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?") && $('input#dxid').val()) {
let m = $("script:contains(send_requestlib)").text().match(/ssn=(\d{3,})/);
let img = $("#grade1").prev();
if (m) {
img.after(showbid(m[1], "SS号"));
} else if ((m = pageurl.match(/dxNumber=(\d+)/))) {
img.after(showbid(m[1], "DX号"));
}
let st = $("input#dxid").prev().text();
let m2 = $("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>');
}
})();