arXiv论文下载自动重命名为论文名 【功能增强版】| arXiv download pdf auto rename tool

下载arXiv论文并自动重命名,兼容更多arXiv页面

  1. // ==UserScript==
  2. // @name arXiv论文下载自动重命名为论文名 【功能增强版】| arXiv download pdf auto rename tool
  3. // @namespace Max
  4. // @version 0.3
  5. // @description 下载arXiv论文并自动重命名,兼容更多arXiv页面
  6. // @author Max
  7. // @match *://arxiv.org/abs/*
  8. // @match *://arxiv.org/search/*
  9. // @match *://arxiv.org/list/*
  10. // @icon data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
  11. // @grant none
  12. // @license AGPL License
  13. // ==/UserScript==
  14.  
  15.  
  16.  
  17. (function() {
  18. 'use strict';
  19. const url = location.pathname,webTitle = document.title
  20. var downloadName = '',downloadPath = ''
  21. var papertitle = '',papertime = ''
  22. if(url.search('/abs/')!=-1){
  23. papertitle = document.querySelector("#abs > h1").innerText
  24. downloadPath = window.location.href.replace('abs','pdf') + '.pdf' //document.querySelector("#abs-outer > div.extra-services > div.full-text > ul > li:nth-child(1) > a")+'.pdf'
  25. papertime = window.location.pathname.slice(5,9) //document.querySelector("#abs > div.metatable > table > tbody > tr:nth-child(3) > td.tablecell.arxivid > span > a").innerText.slice(6,10)
  26. downloadName = renamePaperFile(papertitle,papertime)
  27. addDownloadButton(downloadPath,downloadName,document.querySelector("#abs-outer > div.extra-services > div.full-text"))
  28. }
  29. if(url.search('/search/')!=-1){
  30. var paperlist = document.querySelectorAll("#main-container > div.content > ol > li")
  31. for(let paper in paperlist){
  32. papertitle = paperlist[paper].children[1].innerText
  33. papertime = paperlist[paper].children[0].innerText.slice(6,10)
  34. downloadName = renamePaperFile(papertitle,papertime)
  35. downloadPath = paperlist[paper].children[0].children[0].children[1].children[0].href+'.pdf'
  36. addDownloadButton(downloadPath,downloadName,paperlist[paper].children[0])
  37. }
  38. }
  39. if(url.search('/list/')!=-1){
  40. let paperlist = document.querySelectorAll(".list-identifier")
  41. for (let i = 0, len = paperlist.length; i < len; i++){
  42. try {
  43. let paper = paperlist[i]
  44. // console.log(paper)
  45. papertitle = paper.parentNode.nextElementSibling.querySelector('.list-title').innerText
  46. downloadPath = paper.querySelector('a[title="Download PDF"]').href + '.pdf'
  47. papertime = downloadPath.split('/').pop().split('.')[0]
  48. downloadName = renamePaperFile(papertitle,papertime)
  49. addDownloadButton(downloadPath,downloadName,paper)
  50. } catch (error) {
  51. console.warn('AUTO download rename raise warning at : ' + papertitle)
  52. }
  53. }
  54. }
  55.  
  56. function addDownloadButton(downloadPath,downloadName,element){
  57. var button = document.createElement("a"); //创建一个input对象(提示框按钮)
  58. button.id = "downloadPaper";
  59. button.textContent = "下载论文(重命名)";
  60. button.setAttribute("href", downloadPath)
  61. button.setAttribute("download", downloadName)
  62. element.append(button);
  63. }
  64. function renamePaperFile(name,time){
  65. var downloadName = name.replace(': ',':')
  66. downloadName = downloadName.replace(':',':')
  67. downloadName = downloadName.replace('?','?')
  68. downloadName = downloadName.replace('/',' OR ')
  69. downloadName = downloadName.replace('"','“')+'.pdf'
  70. return '['+time+']'+downloadName
  71. }
  72. })();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址