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