Greasy Fork 支持简体中文。

知网下载助手

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

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

// ==UserScript==
// @name         知网下载助手
// @namespace    [email protected]
// @version      1.7.2
// @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(分章下载)').attr('href') || '?';
    url = 'https://chn.oversea.cnki.net/kcms/download.aspx' + url.replace(/%20/g, '').match(/\?.*/)[0];
    $('.operate-btn a').attr('href', function() {
        var tip = $(this).text().trim();
        if (!tip.match(/^分[页章]下载$/)) return tip == '整本下载' ? reUrl(0, this.href) : 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('\r\n').replace(/ {4}/g, '\t');
    $('<li class="btn-dlpdf"><a href="javascript:void(0);">复制目录</a></li>').prependTo('.operate-btn').click(function() {
        GM_setClipboard(list);
        alert('目录已复制到剪贴板');
    }).toggle(!!list);
    $('<li class="btn-dlcaj"><a>下载目录</a></li>').prependTo('.operate-btn').toggle(!!list).children().each(function() {
        this.download = $('.wx-tit h1').text().trim() + '_目录.txt';
        this.href = 'data:text/plain;charset=utf-8,' + encodeURIComponent(list);
    }).css('margin-right', '3px');
}