Update packages/ Add org-ref
This commit is contained in:
107
elpa/org-ref-20180608.1130/org-ref-wos.el
Normal file
107
elpa/org-ref-20180608.1130/org-ref-wos.el
Normal file
@@ -0,0 +1,107 @@
|
||||
;;; org-ref-wos.el --- Web of Science functions -*- lexical-binding: t; -*-
|
||||
|
||||
;; Copyright (C) 2015 John Kitchin
|
||||
|
||||
;; Author: John Kitchin <jkitchin@andrew.cmu.edu>
|
||||
;; Keywords:
|
||||
|
||||
;; This program is free software; you can redistribute it and/or modify
|
||||
;; it under the terms of the GNU General Public License as published by
|
||||
;; the Free Software Foundation, either version 3 of the License, or
|
||||
;; (at your option) any later version.
|
||||
|
||||
;; This program is distributed in the hope that it will be useful,
|
||||
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;; GNU General Public License for more details.
|
||||
|
||||
;; You should have received a copy of the GNU General Public License
|
||||
;; along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
;; Adds a new org-mode link for a search in Web of Science.
|
||||
;;; and an org-mode link for a link to an Accession number.
|
||||
|
||||
(require 'org)
|
||||
(require 's)
|
||||
(require 'org-ref-utils)
|
||||
|
||||
;;; Code:
|
||||
(org-ref-link-set-parameters "wos"
|
||||
:follow (lambda (accession-number)
|
||||
(browse-url
|
||||
(concat
|
||||
"http://ws.isiknowledge.com/cps/openurl/service?url_ver=Z39.88-2004&rft_id=info:ut/"
|
||||
accession-number)))
|
||||
:export (lambda (accession-number desc format)
|
||||
(cond
|
||||
((eq format 'html)
|
||||
(format "<a href=\"http://ws.isiknowledge.com/cps/openurl/service?url_ver=Z39.88-2004&rft_id=info:ut/%s\">%s</a>"
|
||||
accession-number
|
||||
(or desc (concat "wos:" accession-number)))))))
|
||||
|
||||
(org-ref-link-set-parameters "wos-search"
|
||||
:follow (lambda (path)
|
||||
(browse-url
|
||||
(format "http://gateway.webofknowledge.com/gateway/Gateway.cgi?topic=%s&GWVersion=2&SrcApp=WEB&SrcAuth=HSB&DestApp=UA&DestLinkType=GeneralSearchSummary"
|
||||
(s-join "+" (split-string path)))))
|
||||
:export (lambda (link desc format)
|
||||
(cond
|
||||
((eq format 'html)
|
||||
(format "<a href=\"%s\">%s</a>"
|
||||
(format "http://gateway.webofknowledge.com/gateway/Gateway.cgi?topic=%s&GWVersion=2&SrcApp=WEB&SrcAuth=HSB&DestApp=UA&DestLinkType=GeneralSearchSummary"
|
||||
(s-join "+" (split-string link)))
|
||||
(or desc link))))))
|
||||
|
||||
;;;###autoload
|
||||
(defun wos-search ()
|
||||
"Open the word at point or selection in Web of Science as a topic query."
|
||||
;; the url was derived from this page: http://wokinfo.com/webtools/searchbox/
|
||||
(interactive)
|
||||
(browse-url
|
||||
(format "http://gateway.webofknowledge.com/gateway/Gateway.cgi?topic=%s&GWVersion=2&SrcApp=WEB&SrcAuth=HSB&DestApp=UA&DestLinkType=GeneralSearchSummary"
|
||||
(if (region-active-p)
|
||||
(mapconcat 'identity (split-string
|
||||
(buffer-substring (region-beginning)
|
||||
(region-end))) "+")
|
||||
(thing-at-point 'word)))))
|
||||
|
||||
|
||||
;;;###autoload
|
||||
(defun wos ()
|
||||
"Open Web of Science search page in a browser."
|
||||
(interactive)
|
||||
(browse-url "http://apps.webofknowledge.com"))
|
||||
|
||||
;;* Accession numbers
|
||||
;; see http://kitchingroup.cheme.cmu.edu/blog/2015/06/08/Getting-a-WOS-Accession-number-from-a-DOI/
|
||||
(defvar *wos-redirect* nil
|
||||
"Holds the redirect from a `url-retrieve' callback function.")
|
||||
|
||||
(defvar *wos-waiting* nil
|
||||
"Non-nil when waiting for a `url-retrieve' redirect.")
|
||||
|
||||
|
||||
(defun wos-get-wos-redirect (url)
|
||||
"Return final redirect URL for open-url."
|
||||
(setq *wos-waiting* t)
|
||||
(url-retrieve
|
||||
url
|
||||
(lambda (status)
|
||||
(setq *wos-redirect* (car (last status)))
|
||||
(setq *wos-waiting* nil)))
|
||||
(while *wos-waiting* (sleep-for 0.1))
|
||||
(url-unhex-string *wos-redirect*))
|
||||
|
||||
|
||||
(defun wos-doi-to-accession-number (doi)
|
||||
"Return a WOS Accession number for a DOI."
|
||||
(let* ((open-url (concat "http://ws.isiknowledge.com/cps/openurl/service?url_ver=Z39.88-2004&rft_id=info:doi/" doi))
|
||||
(redirect (wos-get-wos-redirect open-url)))
|
||||
(message redirect)
|
||||
(string-match "&KeyUT=WOS:\\([^&]*\\)&" redirect)
|
||||
(match-string 1 redirect)))
|
||||
|
||||
(provide 'org-ref-wos)
|
||||
;;; org-ref-wos.el ends here
|
||||
Reference in New Issue
Block a user