Samuel W. Flint преди 2 години
родител
ревизия
fae4d88119
променени са 1 файла, в които са добавени 28 реда и са изтрити 0 реда
  1. 28 0
      doi2bib

+ 28 - 0
doi2bib

@@ -0,0 +1,28 @@
+#!/usr/bin/env nix-shell
+#! nix-shell -i python3 -p python3 python3Packages.urllib3
+# From https://scipython.com/blog/doi-to-bibtex/
+import sys
+import urllib.request
+from urllib.error import HTTPError
+
+BASE_URL = 'http://dx.doi.org/'
+
+try:
+    doi = sys.argv[1]
+except IndexError:
+    print('Usage:\n{} <doi>'.format(sys.argv[0]))
+    sys.exit(1)
+
+url = BASE_URL + doi
+req = urllib.request.Request(url)
+req.add_header('Accept', 'application/x-bibtex')
+try:
+    with urllib.request.urlopen(req) as f:
+        bibtex = f.read().decode()
+    print(bibtex)
+except HTTPError as e:
+    if e.code == 404:
+        print('DOI not found.')
+    else:
+        print('Service unavailable.')
+    sys.exit(1)