Compare commits
2 commits
13ec6ed600
...
0aeccdad4f
Author | SHA1 | Date | |
---|---|---|---|
0aeccdad4f | |||
aa47068fd0 |
3 changed files with 88 additions and 0 deletions
|
@ -49,6 +49,8 @@ config.bind(leader + "tV", "set tabs.position left")
|
||||||
# bind mpv to play the current page/links, using a single instance which queues the next link passed
|
# bind mpv to play the current page/links, using a single instance which queues the next link passed
|
||||||
config.bind(lleader + "M", "spawn umpv {url}")
|
config.bind(lleader + "M", "spawn umpv {url}")
|
||||||
config.bind(lleader + "m", "hint links spawn umpv {hint-url}")
|
config.bind(lleader + "m", "hint links spawn umpv {hint-url}")
|
||||||
|
config.bind(lleader + "I", "spawn nsxiv-rifle {url}")
|
||||||
|
config.bind(lleader + "i", "hint --rapid links spawn nsxiv-rifle {hint-url}")
|
||||||
|
|
||||||
# bind youtube-dl to download the current page/links
|
# bind youtube-dl to download the current page/links
|
||||||
config.bind(lleader + "dM", "spawn vidl {url}")
|
config.bind(lleader + "dM", "spawn vidl {url}")
|
||||||
|
|
75
scripts/.local/bin/nsxiv-rifle
Executable file
75
scripts/.local/bin/nsxiv-rifle
Executable file
|
@ -0,0 +1,75 @@
|
||||||
|
#!/usr/bin/env sh
|
||||||
|
#
|
||||||
|
# Advanced nsxiv url opening script.
|
||||||
|
#
|
||||||
|
# Can open remote urls of individual images, galleries, and local files at the same time.
|
||||||
|
# Uses gallery-dl for remote gallery opening - so if gallery-dl can open it, so can nsxiv.
|
||||||
|
#
|
||||||
|
# Usage: simply add multiple urls/paths as arguments.
|
||||||
|
# nsxiv-rifle "https://linkto.my/image.png" my/local/relative-path.jpg /home/absolute.gif
|
||||||
|
|
||||||
|
cache_dir="$(mktemp -d)"
|
||||||
|
|
||||||
|
die() {
|
||||||
|
[ -n "$1" ] && printf '%s\n' "$*" >&2
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
cleanup() {
|
||||||
|
rm -f -- "$cache_dir"/*
|
||||||
|
}
|
||||||
|
|
||||||
|
from_local() {
|
||||||
|
fpath="$(realpath "$1")"
|
||||||
|
ln -s "$fpath" "$cache_dir"
|
||||||
|
}
|
||||||
|
|
||||||
|
# invokes single image downloading or gallery downloading depending on content type
|
||||||
|
from_remote() {
|
||||||
|
link="$(dereference "$1")"
|
||||||
|
if curl -sLI "$link" | grep -i '^Content-Type:' | grep -q image; then
|
||||||
|
get_single_image "$link"
|
||||||
|
else
|
||||||
|
get_gallery "$link"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
get_gallery() {
|
||||||
|
command -v gallery-dl 1>/dev/null 2>&1 || return
|
||||||
|
gallery-dl -q -D "$cache_dir" "$1"
|
||||||
|
}
|
||||||
|
|
||||||
|
get_single_image() {
|
||||||
|
pwd="$PWD"
|
||||||
|
cd "$cache_dir" && curl -sSLO "$1"
|
||||||
|
cd "$pwd" || exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
# unaliases urls which will not be downloaded correctly otherwise
|
||||||
|
dereference() {
|
||||||
|
# teddit
|
||||||
|
if echo "$1" | grep -qe "https\?://w\?w\?w\?\.\?teddit\.net.\+"; then
|
||||||
|
echo "$1" | sed -e 's|^.*pics/w:null_\(.\+\)$|https://i.redd.it/\1|'
|
||||||
|
else
|
||||||
|
echo "$1"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
### main ###
|
||||||
|
command -v nsxiv 1>/dev/null 2>&1 || die "Requires nsxiv installed"
|
||||||
|
|
||||||
|
[ -z "$1" ] && nsxiv
|
||||||
|
trap cleanup EXIT
|
||||||
|
[ -d "$cache_dir" ] || mkdir -p -- "$cache_dir" || die
|
||||||
|
im_number=1
|
||||||
|
while [ -n "$1" ]; do
|
||||||
|
case "$1" in
|
||||||
|
*://*.*) from_remote "$1" ;;
|
||||||
|
*) from_local "$1" ;;
|
||||||
|
esac
|
||||||
|
im_number=$((im_number + 1))
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
|
||||||
|
[ "$(find "$cache_dir" -type f -print | wc -l)" -ne 0 ] &&
|
||||||
|
nsxiv -p "$cache_dir"
|
|
@ -93,6 +93,17 @@ if exist vifm; then
|
||||||
alias vmm='vifm ${PWD}'
|
alias vmm='vifm ${PWD}'
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# nsxiv image viewer
|
||||||
|
if exist nsxiv; then
|
||||||
|
if exist nsxiv-rifle; then
|
||||||
|
alias iv=nsxiv-rifle
|
||||||
|
else
|
||||||
|
alias iv=nsxiv
|
||||||
|
fi
|
||||||
|
elif exist sxiv; then
|
||||||
|
alias iv=sxiv
|
||||||
|
fi
|
||||||
|
|
||||||
# python
|
# python
|
||||||
if exist ptipython; then
|
if exist ptipython; then
|
||||||
alias py=ptipython
|
alias py=ptipython
|
||||||
|
|
Loading…
Reference in a new issue