#!/bin/sh # Feed script a url or file location. # If an image, it will view in sxiv, # 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. [ "${url:=$1}" ] || url="$(clipo)" notify-send "linkhandler" "$url" echo "$url" > ~/file.txt case "$url" in file://*) file="${url##file:/}" case "$(file -bi "$file" | cut -f1 -d'/')" in audio|video) mpv "$file" ;; image) imv "$file" ;; *) xdg-open "$file" ;; esac ;; *mkv|*webm|*mp4|*bitchute.com*|*odysee.com*) mpv "$url" ;; *youtube.com/watch*|*youtube.com/playlist*|*youtube.com/shorts*|*youtu.be*|*hooktube.com*) mpv "$(ytlink "$url")" ;; *png|*jpg|*jpe|*jpeg|*gif) curl -sL "$url" | imv - ;; *pdf|*cbz|*cbr) curl -sL "$url" > "/tmp/$(echo "$url" | sed "s/.*\///;s/%20/ /g")" $VIEWER "/tmp/$(echo "$url" | sed "s/.*\///;s/%20/ /g")" >/dev/null 2>&1 ;; *mp3|*flac|*opus|*mp3?source*) mpv "$url" ;; *) if [ -f "$url" ] then setsid -f "$TERMINAL" -e "$EDITOR" "$url" >/dev/null 2>&1 else setsid -f "$BROWSER" "$url" >/dev/null 2>&1 fi esac