tadd getrefer - scholarref - tools for DOI and BiBTeX reference extraction, fetching, and parsing
 (HTM) git clone git://src.adamsgaard.dk/scholarref
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit bd2a773edb46da707fe848d805390ab9acd37c63
 (DIR) parent 35e9fa3443bfcd8066f13e76eb2638a3c4b62a10
 (HTM) Author: Anders Damsgaard <anders@adamsgaard.dk>
       Date:   Wed, 24 Nov 2021 19:04:37 +0100
       
       add getrefer
       
       Diffstat:
         M Makefile                            |       2 ++
         A getrefer                            |      40 +++++++++++++++++++++++++++++++
       
       2 files changed, 42 insertions(+), 0 deletions(-)
       ---
 (DIR) diff --git a/Makefile b/Makefile
       t@@ -7,6 +7,7 @@ install:
                mkdir -p $(DESTDIR)$(PREFIX)/share/scholarref
                install -m 775 getdoi $(DESTDIR)$(PREFIX)/bin
                install -m 775 getref $(DESTDIR)$(PREFIX)/bin
       +        install -m 775 getrefer $(DESTDIR)$(PREFIX)/bin
                install -m 775 scholarref $(DESTDIR)$(PREFIX)/bin
                install -m 775 shdl $(DESTDIR)$(PREFIX)/bin
                install -m 775 articlesearch $(DESTDIR)$(PREFIX)/bin
       t@@ -16,6 +17,7 @@ install:
        uninstall:
                rm -f $(DESTDIR)$(PREFIX)/bin/getdoi
                rm -f $(DESTDIR)$(PREFIX)/bin/getref
       +        rm -f $(DESTDIR)$(PREFIX)/bin/getrefer
                rm -f $(DESTDIR)$(PREFIX)/bin/scholarref
                rm -f $(DESTDIR)$(PREFIX)/bin/shdl
                rm -f $(DESTDIR)$(PREFIX)/bin/articlesearch
 (DIR) diff --git a/getrefer b/getrefer
       t@@ -0,0 +1,40 @@
       +#!/bin/sh
       +# reads DOIs (without URL prefix) as stdin and returns refer(1) format references
       +
       +while read -r doi
       +do
       +        curl -sLH "Accept: application/x-research-info-systems" "https://doi.org/${doi}"
       +done | \
       +awk '
       +function rmlbl(s) {
       +        sub(/[A-Za-z][A-Za-z0-9]  - /, "");
       +}
       +
       +BEGIN { delete authors[0] }
       +
       +/DO  - / { doi = $3 }
       +/TI  - / { rmlbl($0); title = $0 }
       +/T2  - / { rmlbl($0); journal = $0 }
       +/AU  - / { rmlbl($0); authors[length(authors)] = $0 }
       +/PY  - / { year = $3 }
       +/SP  - / { page = $3 }
       +/IS  - / { issue = $3 }
       +/VL  - / { volume = $3 }
       +
       +END {
       +        firstauthor = authors[0]
       +        sub(/,.*/, "", firstauthor)
       +        printf "%%L %s%d\n", firstauthor, year
       +        for (i in authors)
       +                printf "%%A %s\n", authors[i]
       +        printf "%%T %s\n", title
       +        printf "%%J %s\n", journal
       +        printf "%%D %d\n", year
       +        printf "%%N %s", volume
       +        if (issue)
       +                printf "(%s)", issue
       +        printf "\n%%P %s\n", page
       +        if (doi)
       +                printf "%%O https://doi.org/%s\n", doi
       +}
       +'