From 31687107ba1c02b0a970734518c9fd2f54409033 Mon Sep 17 00:00:00 2001 From: krisdoodle45 <86745210+krisdoodle45@users.noreply.github.com> Date: Sun, 21 Nov 2021 16:45:32 +0100 Subject: [PATCH] Make linkhandler more robust Sometimes sites don't add the filetype to the URL. When this is the case, the file gets downloaded from the website and gets checked locally what filetype it is. Afterwards it gets opened with the right application. --- .local/bin/linkhandler | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/.local/bin/linkhandler b/.local/bin/linkhandler index fa74cafb..39b68d41 100755 --- a/.local/bin/linkhandler +++ b/.local/bin/linkhandler @@ -19,5 +19,21 @@ case "$1" in *mp3|*flac|*opus|*mp3?source*) qndl "$1" 'curl -LO' >/dev/null 2>&1 ;; *) - [ -f "$1" ] && setsid -f "$TERMINAL" -e "$EDITOR" "$1" >/dev/null 2>&1 || setsid -f "$BROWSER" "$1" >/dev/null 2>&1 + urlcode=$(echo "$1" | sed "s/.*\///;s/%20/ /g") + + curl -sL "$1" > "/tmp/$urlcode" + fileinfo=$(file -ib "/tmp/$urlcode") + + case "$fileinfo" in + video*) + setsid -f mpv -quiet "/tmp/$urlcode" >/dev/null 2>&1 ;; + image*) + sxiv -a "/tmp/$urlcode" >/dev/null 2>&1 & ;; + application/pdf*|application/x-zip*|application/x-rar*) + zathura "/tmp/$urlcode" >/dev/null 2>&1 & ;; + audio*) + mv "/tmp/$urlcode" . >/dev/null 2>&1 ;; + *) + [ -f "$1" ] && setsid -f "$TERMINAL" -e "$EDITOR" "$1" >/dev/null 2>&1 || setsid -f "$BROWSER" "$1" >/dev/null 2>&1 + esac esac