nature direct download

download Nature & sub Publications via CALIS access 直接下载Natue及其子刊

您需要先安裝使用者腳本管理器擴展,如 TampermonkeyGreasemonkeyViolentmonkey 之後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyUserscripts 後才能安裝該腳本。

你需要先安裝一款使用者腳本管理器擴展,比如 Tampermonkey,才能安裝此腳本

您需要先安裝使用者腳本管理器擴充功能後才能安裝該腳本。

(我已經安裝了使用者腳本管理器,讓我安裝!)

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

(我已經安裝了使用者樣式管理器,讓我安裝!)

// ==UserScript==
// @name        nature direct download
// @namespace   minhill.com
// @description download Nature & sub Publications via CALIS access 直接下载Natue及其子刊
// @include     http://www.nature.com/*
// @include     https://www.nature.com/*
// @version     1.1
// @grant       none
// ==/UserScript==

//////////metainfo///////////////
var journalInfo={
    /*
    nature:{
        
        name:"nature",
        //citeReg:/nature.com\/(.*?)\/.*?\/v(\d*?)\/n(\d*?)\/.*?\/.*?(\d+)[a-z]*?\.ris/,
        citeReg:/nature.com\/(.*?)\/.*?\/v(\d*?)\/n(\d*?)\/.*?\/(.*?)\.ris/,
        directLink:"",
        insertNode:""
    },
    nclimate:{
        name:"nclimate",
        citeReg:/nature.com\/(.*?)\/.*?\/v(\d*?)\/n(\d*?)\/.*?\/(.*?)\.ris/,
        directLink:"",
        insertNode:""
    },
    ngeo:{
        name:"ngeo",
        citeReg:/nature.com\/(.*?)\/.*?\/v(\d*?)\/n(\d*?)\/.*?\/(.*?)\.ris/,
        directLink:"",
        insertNode:""        
    },*/
    common:{
        name:"common",
        citeReg:/nature.com\/(.*?)\/.*?\/v(\d*?)\/n(\d*?)\/.*?\/(.*?)\.ris/,
        directLink:"",
        insertNode:function(directLink){
            var insertParentNode = document.getElementsByClassName("tools")[0];
            insertParentNode.innerHTML += '<li id="directdownload" class="download-pdf">'+
                              '<a style="color:red" target="_blank" href="'+directLink+'">Direct download</a>'+
                              '</li>';
        }
    },
    common2:{
        name:"common2",
        citeReg:/nature.com\/(.*?)\/.*?\/v(\d*?)\/n(\d*?)\/.*?\/(.*?)\.ris/,
        directLink:"",
        insertNode:function(directLink){
            var insertParentNode = document.getElementsByClassName("links")[0];
            insertParentNode.innerHTML += '<li id="directdownload" class="permissions"><a style="color:red" target="_blank" href="'+directLink+'">Direct download via CALIS</li></a>';
        }
    },
    common3:{
        name:"common3",//为有PDF的情况,纯测试
        citeReg:/nature.com\/(.*?)\/.*?\/v(\d*?)\/n(\d*?)\/.*?\/(.*?)\.ris/,
        directLink:"",
        insertNode:function(directLink){
            var insertParentNode = document.getElementsByClassName("download-pdf")[0];
            insertParentNode.innerHTML += '<a style="color:red" id="directdownload" class="download-pdf" target="_blank" href="'+directLink+'">Direct download via CALIS</a>';
        }
    },
}

//var supportList=["nature","nclimate",""]
var metainfo={
    citationLink:null,
    type:null
}


////insert function
function insertPDFLink(citationLink,journal){
    //alert(citationLink);
    //var risElements=citationLink.match(/nature.com\/(.*?)\/.*?\/v(\d*?)\/n(\d*?)\/.*?\/(.*?).ris/);
    var risElements=citationLink.match(journal.citeReg);
    ///\/(.*?)\/.*?\/v(\d*?)\/n(\d*?)\/.*?\/\w*?(\d*?).ris/
    //alert(risElements[4]);
    var directLink = "http://fulltext.calis.edu.cn/nature/"+risElements[1]+"/"+risElements[2]+"/"+risElements[3]+"/"+risElements[4]+".pdf";
    journal.insertNode(directLink);
    //http://fulltext.calis.edu.cn/nature/nclimate/4/10/nclimate2357.pdf
    //alert(directLink);
    /*
    var insertParentNode = document.getElementsByClassName("tools")[0];
    //alert(insertParentNode.innerHTML);
    insertParentNode.innerHTML += '<li id="directdownload" class="download-pdf">'+
                              '<a target="_blank" href="'+directLink+'">直接下载</a>'+
                              '</li>';
    */
}
//////end////


/////////main////////////
if(document.getElementsByClassName("download-citation").length){
    metainfo.citationLink=document.getElementsByClassName("download-citation")[0].getElementsByTagName("a")[0].href;
    metainfo.type="common";
}
else if(document.getElementsByClassName("export-citation").length){
    metainfo.citationLink=document.getElementsByClassName("export-citation")[0].getElementsByTagName("a")[0].href;
    metainfo.type="common2";
}
else if(document.getElementsByClassName("supplementary").length){
    metainfo.citationLink=document.getElementById("articlenav").getElementsByClassName("supplementary")[0].getElementsByTagName("li")[0].getElementsByTagName("a")[0].href;
    metainfo.type="common3";
}


if(metainfo.citationLink){
    //alert(metainfo.citationLink);
    var journal = metainfo.citationLink.match(/nature.com\/(.*?)\//)[1].toString();
    if(journalInfo[journal]){
        insertPDFLink(metainfo.citationLink,journalInfo[journal]);
    }
    else{
        insertPDFLink(metainfo.citationLink,journalInfo[metainfo.type]);
    }
}