From 9aa290b9667832c8ae41ed8bc36e57da7a74b9c2 Mon Sep 17 00:00:00 2001 From: LM-LCL Date: Thu, 31 Aug 2023 01:01:57 +0200 Subject: complete script revamp --- rmt-action | 125 +++++++++++++++++++++++++++---------------------------------- 1 file changed, 55 insertions(+), 70 deletions(-) (limited to 'rmt-action') diff --git a/rmt-action b/rmt-action index e3ec2ae..13924fb 100755 --- a/rmt-action +++ b/rmt-action @@ -1,70 +1,55 @@ -#! /bin/bash - -source ./util/notify - -run() { - CHOICES=('Play' \ - 'Record' \ - 'Clip' \ - 'Download' \ - 'aDownload' \ - 'Torrent' \ - 'Open' \ - 'Clipboard') - - [ ! -z "$1" ] && selected="$1" \ - || selected="$(echo "${CHOICES[@]}" | tr ' ' '\n' \ - | dmenu -i \ - -nb '#ffffff' \ - -nf '#000080' \ - -sb '#000080' \ - -sf '#ffffff')" - - case "$selected" in - "${CHOICES[0]}") - ./lib/action/"${CHOICES[0]}" "$2" - ;; - - "${CHOICES[1]}") - ./lib/action/"${CHOICES[1]}" "$2" - ;; - - "${CHOICES[2]}") - ./lib/action/"${CHOICES[2]}" "$2" - ;; - - "${CHOICES[3]}") - ./lib/action/"${CHOICES[3]}" "$2" - ;; - - "${CHOICES[4]}") - ./lib/action/"${CHOICES[4]}" "$2" - ;; - - "${CHOICES[5]}") - ./lib/action/"${CHOICES[5]}" "$2" - ;; - - "${CHOICES[6]}") - ./lib/action/"${CHOICES[6]}" "$2" - ;; - - "${CHOICES[7]}") - ./lib/action/"${CHOICES[7]}" "$2" - ;; - - '') - exit 0 - ;; - - *) - notify 'Invalid Entry' - ;; - esac -} - -run "$@"; status=$? - -[ ! $status -eq 0 ] && [ ! $status -eq 143 ] \ - && notify 'Something Went Wrong' - +#! /bin/zsh + +[ ! -z "$2" ] && url="$2" \ + || url=$(printf '%s' "$(xclip -o -sel c)") + +[[ "$url" != *'http://'* ]] && [[ "$url" != 'https://'* ]] && exit 1 + +CHOICES=('Play' 'Record' 'Clip' 'Download' 'aDownload' 'Open' 'Clipboard') + +[ ! -z "$1" ] && selected="$1" \ + || selected="$(echo "${CHOICES[@]}" | tr ' ' '\n' | dmenu -i)" + +case "$selected" in + "${CHOICES[1]}") + [[ "$url" = *"&list="* ]] && playlist="$(echo "$url" | awk -F '&list=' '{print $2}')" \ + && url="https://www.youtube.com/playlist?list=$playlist" + setsid -f mpv "$url" > /dev/null 2>&1 ;; + "${CHOICES[2]}") + setsid -f mpv --stream-record="$HOME/$(date '+%Y-%m-%d—%T.mkv')" "$url" > /dev/null 2>&1 ;; + "${CHOICES[3]}") + from="$(print | dmenu -p 'From (00:00/n)')" + [ -z "$from" ] && exit 1 + + to="$(print | dmenu -p 'To (00:00/n)')" + [ -z "$to" ] && exit 1 + + filename="$(print | dmenu -p 'Filename')" + [ -z "$filename" ] && exit 1 + + ffmpeg -n \ + -ss "$from" \ + -to "$to" \ + -i "$(yt-dlp -f b --get-url "$url")" \ + "$HOME/$filename.mp4" ;; + "${CHOICES[4]}") + yt-dlp -f 'bestvideo[height<=1080][ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best' \ + -o "$HOME/%(title)s.%(ext)s" \ + --embed-chapters \ + "$url" ;; + "${CHOICES[5]}") + yt-dlp -f 'bestaudio/best' \ + -o "$HOME/%(title)s.%(ext)s" \ + --embed-thumbnail \ + --extract-audio \ + --audio-format mp3 \ + --embed-chapters \ + "$url" ;; + "${CHOICES[6]}") + setsid -f xdg-open "$url" > /dev/null 2>&1 ;; + "${CHOICES[7]}") + print "$url" | xclip -r -sel c + print "$url" | xclip -r ;; + '') exit 0 ;; + *) exit 1 ;; +esac -- cgit v1.2.3