🏠 返回首頁 

Greasy Fork is available in English.

nature direct download

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

  1. // ==UserScript==
  2. // @name nature direct download
  3. // @namespace minhill.com
  4. // @description download Nature & sub Publications via CALIS access 直接下载Natue及其子刊
  5. // @include http://www.nature.com/*
  6. // @include https://www.nature.com/*
  7. // @version 1.1
  8. // @grant none
  9. // ==/UserScript==
  10. //////////metainfo///////////////
  11. var journalInfo={
  12. /*
  13. nature:{
  14. name:"nature",
  15. //citeReg:/nature.com\/(.*?)\/.*?\/v(\d*?)\/n(\d*?)\/.*?\/.*?(\d+)[a-z]*?\.ris/,
  16. citeReg:/nature.com\/(.*?)\/.*?\/v(\d*?)\/n(\d*?)\/.*?\/(.*?)\.ris/,
  17. directLink:"",
  18. insertNode:""
  19. },
  20. nclimate:{
  21. name:"nclimate",
  22. citeReg:/nature.com\/(.*?)\/.*?\/v(\d*?)\/n(\d*?)\/.*?\/(.*?)\.ris/,
  23. directLink:"",
  24. insertNode:""
  25. },
  26. ngeo:{
  27. name:"ngeo",
  28. citeReg:/nature.com\/(.*?)\/.*?\/v(\d*?)\/n(\d*?)\/.*?\/(.*?)\.ris/,
  29. directLink:"",
  30. insertNode:""
  31. },*/
  32. common:{
  33. name:"common",
  34. citeReg:/nature.com\/(.*?)\/.*?\/v(\d*?)\/n(\d*?)\/.*?\/(.*?)\.ris/,
  35. directLink:"",
  36. insertNode:function(directLink){
  37. var insertParentNode = document.getElementsByClassName("tools")[0];
  38. insertParentNode.innerHTML += '<li id="directdownload" class="download-pdf">'+
  39. '<a style="color:red" target="_blank" href="'+directLink+'">Direct download</a>'+
  40. '</li>';
  41. }
  42. },
  43. common2:{
  44. name:"common2",
  45. citeReg:/nature.com\/(.*?)\/.*?\/v(\d*?)\/n(\d*?)\/.*?\/(.*?)\.ris/,
  46. directLink:"",
  47. insertNode:function(directLink){
  48. var insertParentNode = document.getElementsByClassName("links")[0];
  49. insertParentNode.innerHTML += '<li id="directdownload" class="permissions"><a style="color:red" target="_blank" href="'+directLink+'">Direct download via CALIS</li></a>';
  50. }
  51. },
  52. common3:{
  53. name:"common3",//为有PDF的情况,纯测试
  54. citeReg:/nature.com\/(.*?)\/.*?\/v(\d*?)\/n(\d*?)\/.*?\/(.*?)\.ris/,
  55. directLink:"",
  56. insertNode:function(directLink){
  57. var insertParentNode = document.getElementsByClassName("download-pdf")[0];
  58. insertParentNode.innerHTML += '<a style="color:red" id="directdownload" class="download-pdf" target="_blank" href="'+directLink+'">Direct download via CALIS</a>';
  59. }
  60. },
  61. }
  62. //var supportList=["nature","nclimate",""]
  63. var metainfo={
  64. citationLink:null,
  65. type:null
  66. }
  67. ////insert function
  68. function insertPDFLink(citationLink,journal){
  69. //alert(citationLink);
  70. //var risElements=citationLink.match(/nature.com\/(.*?)\/.*?\/v(\d*?)\/n(\d*?)\/.*?\/(.*?).ris/);
  71. var risElements=citationLink.match(journal.citeReg);
  72. ///\/(.*?)\/.*?\/v(\d*?)\/n(\d*?)\/.*?\/\w*?(\d*?).ris/
  73. //alert(risElements[4]);
  74. var directLink = "http://fulltext.calis.edu.cn/nature/"+risElements[1]+"/"+risElements[2]+"/"+risElements[3]+"/"+risElements[4]+".pdf";
  75. journal.insertNode(directLink);
  76. //http://fulltext.calis.edu.cn/nature/nclimate/4/10/nclimate2357.pdf
  77. //alert(directLink);
  78. /*
  79. var insertParentNode = document.getElementsByClassName("tools")[0];
  80. //alert(insertParentNode.innerHTML);
  81. insertParentNode.innerHTML += '<li id="directdownload" class="download-pdf">'+
  82. '<a target="_blank" href="'+directLink+'">直接下载</a>'+
  83. '</li>';
  84. */
  85. }
  86. //////end////
  87. /////////main////////////
  88. if(document.getElementsByClassName("download-citation").length){
  89. metainfo.citationLink=document.getElementsByClassName("download-citation")[0].getElementsByTagName("a")[0].href;
  90. metainfo.type="common";
  91. }
  92. else if(document.getElementsByClassName("export-citation").length){
  93. metainfo.citationLink=document.getElementsByClassName("export-citation")[0].getElementsByTagName("a")[0].href;
  94. metainfo.type="common2";
  95. }
  96. else if(document.getElementsByClassName("supplementary").length){
  97. metainfo.citationLink=document.getElementById("articlenav").getElementsByClassName("supplementary")[0].getElementsByTagName("li")[0].getElementsByTagName("a")[0].href;
  98. metainfo.type="common3";
  99. }
  100. if(metainfo.citationLink){
  101. //alert(metainfo.citationLink);
  102. var journal = metainfo.citationLink.match(/nature.com\/(.*?)\//)[1].toString();
  103. if(journalInfo[journal]){
  104. insertPDFLink(metainfo.citationLink,journalInfo[journal]);
  105. }
  106. else{
  107. insertPDFLink(metainfo.citationLink,journalInfo[metainfo.type]);
  108. }
  109. }