From 265ef57f0f48b04f4517d4c03da0f9c2f43f615a Mon Sep 17 00:00:00 2001 From: Yann Herklotz Date: Sat, 9 Jul 2022 18:38:45 +0100 Subject: Add new blog-post --- static/docs/ebib-papers.el/index.html | 153 ++++++++++++++++++++++++++++++++++ 1 file changed, 153 insertions(+) create mode 100644 static/docs/ebib-papers.el/index.html (limited to 'static/docs') diff --git a/static/docs/ebib-papers.el/index.html b/static/docs/ebib-papers.el/index.html new file mode 100644 index 0000000..689c764 --- /dev/null +++ b/static/docs/ebib-papers.el/index.html @@ -0,0 +1,153 @@ + + + + + random.el + + + +
+(defun acm-pdf-url (doi)
+  "Retrieve a DOI pdf from the ACM."
+  (concat "https://dl.acm.org/doi/pdf/" doi))
+
+(defun ieee-pdf-url (doi)
+  "Retrieve a DOI pdf from the IEEE."
+  (when (string-match "\\.\\([0-9]*\\)$" doi)
+    (let ((doi-bit (match-string 1 doi)))
+      (concat "https://ieeexplore.ieee.org/stampPDF/getPDF.jsp?tp=&arnumber=" doi-bit "&ref="))))
+
+(defun springer-pdf-url (doi)
+  "Retrieve a DOI pdf from the Springer."
+  (concat "https://link.springer.com/content/pdf/" doi ".pdf"))
+
+(defun arxiv-pdf-url (eprint)
+  "Download an arXiv pdf based on it's EPRINT number."
+  (concat "https://arxiv.org/pdf/" eprint ".pdf"))
+
+(defun download-pdf-from-doi (key &optional doi publisher eprint journal organization url)
+  "Download pdf from DOI with KEY name."
+  (let ((pub  (or publisher ""))
+        (epr  (or eprint ""))
+        (jour (or journal ""))
+        (org  (or organization ""))
+        (link (or url "")))
+    (url-copy-file (cond
+                    ((not doi) link)
+                    ((or (string-match "ACM" (s-upcase pub))
+                         (string-match "association for computing machinery" (s-downcase pub)))
+                     (acm-pdf-url doi))
+                    ((string-match "arxiv" (s-downcase pub))
+                     (arxiv-pdf-url epr))
+                    ((or (string-match "IEEE" (s-upcase pub))
+                         (string-match "IEEE" (s-upcase jour))
+                         (string-match "IEEE" (s-upcase org)))
+                     (ieee-pdf-url doi))
+                    ((string-match "springer" (s-downcase pub))
+                     (springer-pdf-url doi))
+                    (t (error "Cannot possibly find the PDF any other way")))
+                   (concat (car ebib-file-search-dirs) "/" key ".pdf"))))
+
+(defun download-pdf-from-link (link key)
+  (url-copy-file link
+                 (concat (car ebib-file-search-dirs) "/" key ".pdf")))
+
+(defun download-pdf-from-downloads (key)
+  (copy-file (concat "~/Downloads/" key ".pdf")
+             (concat (car ebib-file-search-dirs) "/" key ".pdf") t))
+
+(defun get-bib-from-doi (doi)
+  "Get the bibtex from DOI."
+  (shell-command (concat "curl -L -H \"Accept: application/x-bibtex; charset=utf-8\" "
+                         "https://doi.org/" doi)))
+
+(defun ebib-download-pdf-from-doi ()
+  "Download a PDF for the current entry."
+  (interactive)
+  (let* ((key (ebib--get-key-at-point))
+         (doi (ebib-get-field-value "doi" key ebib--cur-db 'noerror 'unbraced 'xref))
+         (publisher (ebib-get-field-value "publisher" key ebib--cur-db 'noerror 'unbraced 'xref))
+         (eprinttype (ebib-get-field-value "eprinttype" key ebib--cur-db 'noerror 'unbraced 'xref))
+         (eprint (ebib-get-field-value "eprint" key ebib--cur-db 'noerror 'unbraced 'xref))
+         (journal (ebib-get-field-value "journal" key ebib--cur-db 'noerror 'unbraced 'xref))
+         (journaltitle (ebib-get-field-value "journaltitle" key ebib--cur-db 'noerror 'unbraced 'xref))
+         (organization (ebib-get-field-value "organization" key ebib--cur-db 'noerror 'unbraced 'xref))
+         (url (ebib-get-field-value "url" key ebib--cur-db 'noerror 'unbraced 'xref)))
+    (unless key
+      (error "[Ebib] No key assigned to entry"))
+    (download-pdf-from-doi key doi (or publisher eprinttype) eprint (or journal journaltitle) organization url)))
+
+(defun ebib-check-file ()
+  "Download a PDF for the current entry."
+  (interactive)
+  (let ((key (ebib--get-key-at-point)))
+    (unless (file-exists-p (concat (car ebib-file-search-dirs) "/" key ".pdf"))
+      (error "[Ebib] No PDF found"))))
+
+ + -- cgit