// ==UserScript== // @name 知网下载助手 // @namespace wyn665817@163.com // @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 // @downloadURL none // ==/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'); $('