图书馆参考咨询联盟(ucdrs)获取ss号/dx号,以及ucdrs和豆瓣双向导航

显示图书馆参考咨询联盟(ucdrs)上文献的ssid号或dxid号(ssid不存在时),用于群组找书、文献互助、图书互助等场景;另外在搜索、详情页等处添加ucdrs和豆瓣的双向导航链接。To搜索[红太狼的平底锅]的朋友:提供红太狼的平底锅的部分功能,如显示ssid,下载请自行找百度网盘群组;显示dxid和双向链接为平底锅没有的新加功能。

目前为 2021-12-06 提交的版本。查看 最新版本

// ==UserScript==
// @name         图书馆参考咨询联盟(ucdrs)获取ss号/dx号,以及ucdrs和豆瓣双向导航
// @namespace    ucdrs.superlib.net
// @version      1.2.1
// @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*
// @require      https://libs.baidu.com/jquery/2.0.0/jquery.min.js
// @description  显示图书馆参考咨询联盟(ucdrs)上文献的ssid号或dxid号(ssid不存在时),用于群组找书、文献互助、图书互助等场景;另外在搜索、详情页等处添加ucdrs和豆瓣的双向导航链接。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;"><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>`;
    }
    if (location.href.includes("/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 (location.href.includes("/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 (location.href.includes("/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 (location.href.includes("/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 (location.href.match("/(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 (location.href.includes("/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 (location.href.includes("/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 (location.href.includes("/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).next().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 (location.href.includes("/views/specific/")) {
        let m = $("script:contains(send_requestajax)").text().match(/ssn=(\d{3,})/);
        let img = $("div.tubookimg>img:only-child");
        if (m) {
            img.after(showbid(m[1], "SS号"));
        } else if ((m = location.href.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>');
    }
})();