commit a2e5e0d81addbf4ff5172b75aeddae3ba079401e
parent f1a6605ced4f8aa9ccb77ab2cd7bf6a5d3defe48
Author: Anders Damsgaard <anders@adamsgaard.dk>
Date: Mon, 16 Sep 2019 16:15:23 +0200
Add articlesearch script
Diffstat:
2 files changed, 31 insertions(+), 2 deletions(-)
diff --git a/README b/README
@@ -1,14 +1,16 @@
# scholarref
POSIX shell tools to extract, fetch, and parse DOIs and BiBTeX bibliography
-references.
+references. The following scripts provide the core functionality:
- getdoi: takes a file or a search query and returns its DOI
- getref: takes a DOI and returns the corresponding BiBTeX entry
- shdl: takes a DOI and fetches the corresponding pdf from sci-hub.tw
The script `scholarref` is an example where `getref` and `getdoi` are
-combined to obtain a BiBTeX entry from a search query.
+combined to obtain a BiBTeX entry from a search query. The `articlesearch`
+script is an interactive PDF opener, reference manager, and publication
+fetcher for X11 using dmenu[0] and the scholarref tools.
## Installation
Use locally or run `make install` to install under `/usr/local/bin`. Run
@@ -71,3 +73,6 @@ OPTIONS are one or more of the following:
-n, --notify send desktop notification when complete
-o, --open open downloaded document when complete
-- do not consider any following args as options
+
+## References
+0: https://tools.suckless.org/dmenu/
diff --git a/articlesearch b/articlesearch
@@ -0,0 +1,24 @@
+#!/bin/sh
+set -e
+
+# List of directory paths that contain PDFs
+dir="$HOME/articles $HOME/books"
+
+query="$(find $dir -type f | sed "s|$HOME/||" | dmenu -i -l 10 -p "Search publications:")" || exit 1
+action="$(printf "Open\nGet DOI\nSci-Hub\nAdd reference" | dmenu -i -p "Action:")"
+
+if [ "$action" = "Open" ]; then
+ if [ -f "$HOME/$query" ]; then
+ xdg-open "$HOME/$query"
+ else
+ xdg-open "https://scholar.google.com/scholar?q=$query"
+ fi
+elif [ "$action" = "Get DOI" ]; then
+ getdoi -n -c "$query"
+elif [ "$action" = "Sci-Hub" ]; then
+ getdoi "$query" | shdl --tor-socks --notify --open
+elif [ "$action" = "Add reference" ]; then
+ scholarref --add "$query"
+else
+ notify-send --category=error "${0##*/}" "Action not understood"
+fi