tarticlesearch - 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
       ---
       tarticlesearch (1369B)
       ---
            1 #!/bin/sh
            2 set -e
            3 
            4 # List of directory paths that contain PDFs
            5 dir="$HOME/articles/ $HOME/books/"
            6 
            7 cachedir="$HOME/.cache"
            8 cachefile="$cachedir/articlesearch"
            9 
           10 update_cache() {
           11         mkdir -p "$cachedir"
           12         find $dir -type f \
           13                 -iname "*.pdf" -o -iname "*.eps" -o -iname "*.gs" \
           14                 -o -iname "*.djvu" -o -iname "*.epub" > "$cachefile"
           15 }
           16 
           17 if [ "$1" = "-u" ]; then
           18         update_cache
           19         exit 0
           20 fi
           21 
           22 if [ ! -e "$cachefile" ]; then
           23         update_cache
           24 fi
           25 
           26 query="$((
           27         if [ -n "$BIB" ] && [ -n "$EDITOR" ]; then
           28                 echo "Edit bibliography";
           29         fi;
           30         echo "Update cache"; sed "s|$HOME/||" "$cachefile") | \
           31     dmenu -i -l 10 -p "Search publications:")" || exit 1
           32 
           33 if [ "$query" = "Update cache" ]; then
           34         update_cache
           35         exec "$0"
           36         exit 0
           37 fi
           38 
           39 if [ "$query" = "Edit bibliography" ]; then
           40         if [ -n "$TERM" ]; then
           41                 $EDITOR "$BIB"
           42         else
           43                 $TERMINAL $EDITOR "$BIB"
           44         fi
           45         exit 0
           46 fi
           47 
           48 action="$(printf "Open\nGet DOI\nSci-Hub\nAdd reference" | \
           49           dmenu -i -p "Action:")"
           50 
           51 if [ "$action" = "Open" ]; then
           52         if [ -f "$HOME/$query" ]; then
           53                 xdg-open "$HOME/$query"
           54         else
           55                 xdg-open "https://scholar.google.com/scholar?q=$query"
           56         fi
           57 elif [ "$action" = "Get DOI" ]; then
           58         getdoi -n -c "$query"
           59 elif [ "$action" = "Sci-Hub" ]; then
           60         getdoi "$query" | shdl --tor-socks --notify --open
           61 elif [ "$action" = "Add reference" ]; then
           62         scholarref --add "$query"
           63 else
           64         xmessage "${0##*/}\nAction not understood"
           65 fi