tAdd articlesearch script - 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 a2e5e0d81addbf4ff5172b75aeddae3ba079401e
(DIR) parent f1a6605ced4f8aa9ccb77ab2cd7bf6a5d3defe48
(HTM) Author: Anders Damsgaard <anders@adamsgaard.dk>
Date: Mon, 16 Sep 2019 16:15:23 +0200
Add articlesearch script
Diffstat:
M README | 9 +++++++--
A articlesearch | 24 ++++++++++++++++++++++++
2 files changed, 31 insertions(+), 2 deletions(-)
---
(DIR) diff --git a/README b/README
t@@ -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
t@@ -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/
(DIR) diff --git a/articlesearch b/articlesearch
t@@ -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