summaryrefslogtreecommitdiff
path: root/rmt-action
diff options
context:
space:
mode:
authorLM-LCL <hello@exaltedelite.club>2023-08-31 01:01:57 +0200
committerLM-LCL <hello@exaltedelite.club>2023-09-01 16:14:09 +0200
commit9aa290b9667832c8ae41ed8bc36e57da7a74b9c2 (patch)
tree532a98d4561a85952543c609e4ff7c5c45601b5a /rmt-action
parentfe92c7ac827b18673e1fa89dacfca370dcfd313d (diff)
complete script revamp
Diffstat (limited to 'rmt-action')
-rwxr-xr-xrmt-action125
1 files changed, 55 insertions, 70 deletions
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