bin/scripts/linkhandler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#!/bin/sh # Feed script a url or file location. # If an image, it will view in feh, # if a video or gif, it will view in mpv # if a music file or pdf, it will download, # otherwise it opens link in browser. # Sci-Hub's domain occasionally changes due to shutdowns: scihub="http://sci-hub.tw/" TRUEBROWSER=$BROWSER # If no url given. Opens browser. For using script as $BROWSER. [ -z "$1" ] && { "$TRUEBROWSER"; exit; } ytdlfmt="bestvideo[height<=480]+bestaudio/best[height<=480]" case "$1" in *mkv|*webm|*mp4|*gif) setsid mpv -quiet "$1" >/dev/null 2>&1 & ;; *youtube.com*|*youtu.be*) cq="" q=$(echo -en "1080p\n720p\n480p\n360p\n240p" | dmenu $DMENU_ARGS\ -p 'Quality ') case $q in "1080p") cq="-1" ;; "720p") cq="-7" ;; "480p") cq="-4" ;; "360p") cq="-3" ;; "240p") cq="-2" ;; "") q="default";; esac notify-send -i youtube "Playing youtube video in $q quality" # setsid mpv --ytdl-format=$ytdlfmt --quiet "$1" >/dev/null 2>&1 & ;; setsid youtube-viewer $cq "$1" >/dev/null 2>&1 & ;; *png|*jpg|*jpe|*jpeg) setsid feh "$1" >/dev/null 2>&1 & ;; *mp3|*flac|*opus|*mp3?source) # setsid tsp curl -LO "$1" >/dev/null 2>&1 & ;; setsid st -e mpv "$1" >/dev/null 2>&1 & ;; *springer.com*) setsid curl -sO "$(curl -s "$scihub$*" | grep -Po "(?<=location.href=').+.pdf")" >/dev/null 2>&1 & ;; *) if [ -f "$1" ]; then "$TERMINAL" -e "$EDITOR $1" else setsid "$TRUEBROWSER" "$1" >/dev/null 2>&1 & fi ;; esac