(defun arxiv-add-bibtex-entry (arxiv-number bibfile)
"Add bibtex entry for ARXIV-NUMBER to BIBFILE."
(interactive
- (list (read-input "arxiv: ")
+ (list (read-string "arxiv: ")
;; now get the bibfile to add it to
(ido-completing-read
"Bibfile: "
(save-buffer)))
+(defun arxiv-get-pdf (arxiv-number pdf)
+ "Retrieve a pdf for ARXIV-NUMBER and save it to PDF."
+ (interactive "sarxiv: \nsPDF: ")
+ (let ((pdf-url (with-current-buffer
+ (url-retrieve-synchronously
+ (concat
+ "http://arxiv.org/abs/" arxiv-number))
+ ;; <meta name="citation_pdf_url" content="http://arxiv.org/pdf/0801.1144" />
+ (search-forward-regexp
+ "name=\\\"citation_pdf_url\\\" content=\\\"\\(.*\\)\\\"")
+ (match-string 1))))
+ (url-copy-file pdf-url pdf)
+ ;; now check if we got a pdf
+ (with-temp-buffer
+ (insert-file-contents pdf)
+ ;; PDFS start with %PDF-1.x as the first few characters.
+ (if (not (string= (buffer-substring 1 6) "%PDF-"))
+ (progn
+ (message "%s" (buffer-string))
+ (delete-file pdf))
+ (message "%s saved" pdf)))
+
+ (org-open-file pdf)))
+
(provide 'arxiv)
;;; arxiv.el ends here