#!/bin/sh # Feed script a url or file location. # If an image, it will view in swayimg, # 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. if [ -z "$1" ]; then url="$(wl-paste)" else url="$1" fi is_valid_url() { printf "%s\n" "${1}" | rg -q "^https?://[^[:space:]/?#][^[:space:]]+$" } is_valid_url "${url}" || exit 0 # Check if the URL is from inv.nadeko.net and adjust it for YouTube echo "$url" | rg -q 'inv.nadeko.net/watch' if [ $? -eq 0 ]; then url="https://www.youtube.com/watch?v=$(echo "$url" | sed 's/.*inv\.nadeko\.net\/watch?v=\([^&]*\)/\1/')" fi case "$url" in *mkv|*webm|*mp4|*hooktube.com*|*bitchute.com*|*odysee.com*) setsid -f mpv -quiet "$url" >/dev/null 2>&1 ;; *youtube.com/watch*|*youtube.com/playlist*|*youtube.com/v/*|*youtube.com/shorts*|*youtu.be*) setsid -f ymp "$url" >/dev/null 2>&1 ;; *png|*jpg|*jpe|*jpeg|*gif|*webp) curl -sL "$url" > "/tmp/$(echo "$url" | sed "s/.*\///;s/%20/ /g")" && swayimg "/tmp/$(echo "$url" | sed "s/.*\///;s/%20/ /g")" >/dev/null 2>&1 & ;; *pdf|*cbz|*cbr) curl -sL "$url" > "/tmp/$(echo "$url" | sed "s/.*\///;s/%20/ /g")" && zathura "/tmp/$(echo "$url" | sed "s/.*\///;s/%20/ /g")" >/dev/null 2>&1 & ;; *mp3|*flac|*opus|*mp3?source*) qndl "$url" 'curl -LO' >/dev/null 2>&1 ;; *) [ -f "$url" ] && setsid -f "$TERMINAL" -e "$EDITOR" "$url" >/dev/null 2>&1 || setsid -f "$BROWSER" "$url" >/dev/null 2>&1 esac