知网下载助手

解析CNKI论文PDF格式下载地址,论文搜索结果页面和硕博论文详述页面的caj格式下载链接替换为pdf格式下载链接,知网空间页面增加pdf格式下载链接

目前為 2020-09-01 提交的版本,檢視 最新版本

// ==UserScript==
// @name         知网下载助手
// @namespace    [email protected]
// @version      1.7.0
// @description  解析CNKI论文PDF格式下载地址,论文搜索结果页面和硕博论文详述页面的caj格式下载链接替换为pdf格式下载链接,知网空间页面增加pdf格式下载链接
// @author       wyn665817
// @match        *://*.cnki.net/*
// @include      */brief.aspx*
// @include      */detail.aspx*
// @include      */DefaultResult/Index*
// @include      */CatalogViewPage.aspx*
// @include      */Article/*
// @connect      cnki.net
// @run-at       document-end
// @grant        unsafeWindow
// @grant        GM_xmlhttpRequest
// @grant        GM_setClipboard
// @supportURL   https://greasyfork.org/zh-CN/scripts/371938/feedback
// @license      MIT
// ==/UserScript==

var $ = unsafeWindow.jQuery,
url = location.pathname;

if (!$) {
} else if (url.match(/brief\.aspx$/)) {
    $('.briefDl_Y, .briefDl_D', '.GridTableContent').attr('href', reUrl);
} else if (url.match(/defaultresult\/index$/i)) {
    $(document).ajaxSuccess(function() {
        if (arguments[2].url.indexOf('/Brief/GetGridTableHtml')) $('.downloadlink').attr('href', reUrl);
    });
} else if (url.match(/detail\.aspx$/) && location.search.match(/dbcode=C[DM][FM]D&/i)) {
    url = $('a:contains(分章下载)').prop('href') || '';
    url = url.replace(/kns8?(?!\/)/, 'chn.oversea').replace(/%20/g, '').replace(/kns\//, 'kcms/').replace(/download(?!\.)/, 'download.aspx');
    $('.operate-btn a').attr('href', function() {
        var tip = $(this).text().trim();
        if (!tip.match(/^(分[页章]|整本)下载$/)) return this.href;
        tip = this.href.replace(/kns8?(?!\/)/, 'chn.oversea').replace(/%20/g, '').replace(/kcms/, 'kns').replace(/\.aspx/, '');
        return tip + '&cflag=pdf';
    });
    GM_xmlhttpRequest({
        method: 'GET',
        url: url,
        onload: done
    });
} else if (url.match(/CatalogViewPage\.aspx$/)) {
    $('#downLoadFile img').last().attr('src', function() {
        return this.src.replace('CAJ', 'PDF');
    }).next().attr('href', reUrl).text('PDF全文下载').attr('title', 'PDF全文下载');
} else if (url.match(/^\/Article\//) && !$('#ty_pdf').length) {
    var $dom = $('#ty_caj').clone().insertBefore('#ty_caj');
    $dom.attr('id', 'ty_pdf').find('a').attr('href', reUrl).text('PDF全文下载');
    $dom.parent().attr('id', 'down_1');
}

function reUrl(index, href) {
    return href.replace(/&dflag=\w*|$/, '&dflag=pdfdown');
}

function done(xhr) {
    var list = $('tr', xhr.responseText).map(function() {
        var $dom = $(this).find('a, td:last');
        return $dom.eq(0).html().trim().replace(/ /g, ' ') + '\t' + $dom.eq(1).text().trim().split('-')[0];
    }).get().join('\n');
    $('<li class="btn-dlpdf"><a>复制目录</a></li>').prependTo('.operate-btn').click(function() {
        GM_setClipboard(list);
        alert('目录已复制到剪贴板');
    }).toggle(!!list);
}