|
|
|
#!/usr/bin/env sh
|
|
|
|
HISTORY_FILE="$XDG_CONFIG_HOME"/sxmo/youtubehistory.tsv
|
|
|
|
|
|
|
|
menu() {
|
|
|
|
pidof "$KEYBOARD" || "$KEYBOARD" &
|
|
|
|
HISTORY="$(tac "$HISTORY_FILE" | nl | sort -uk 2 | sort -k 1 | cut -f 2)"
|
|
|
|
|
|
|
|
SEARCHTERMS="$(
|
|
|
|
printf %b "Close Menu\n$HISTORY" |
|
|
|
|
dmenu -p "Yt Search" -c -l 10 -fn Terminus-20
|
|
|
|
)"
|
|
|
|
pkill "$KEYBOARD"
|
|
|
|
[ "Close Menu" = "$SEARCHTERMS" ] && exit 0
|
|
|
|
printf %b "$SEARCHTERMS\n" >> "$HISTORY_FILE"
|
|
|
|
|
|
|
|
IDIOTRESULTS="$(youtube-cli "$SEARCHTERMS")"
|
|
|
|
FMTRESULTS="$(
|
|
|
|
echo "$IDIOTRESULTS" |
|
|
|
|
grep -Ev '^(Channelid|Atom feed|Channel title|Published|Viewcount|Userid):' |
|
|
|
|
sed -E 's/^(URL|Duration):\s+/\t/g' |
|
|
|
|
tr -d '\n' |
|
|
|
|
sed 's/===/\n/g' |
|
|
|
|
gawk -F'\t' '{ print $3 " " $1 " " $2}'
|
|
|
|
)"
|
|
|
|
|
|
|
|
PICKED="$(
|
|
|
|
printf %b "Close Menu\n$FMTRESULTS" |
|
|
|
|
dmenu -c -l 10 -fn Terminus-20
|
|
|
|
)"
|
|
|
|
[ "Close Menu" = "$PICKED" ] && exit 0
|
|
|
|
|
|
|
|
URL="$(echo "$PICKED" | awk -F " " '{print $NF}')"
|
|
|
|
}
|
|
|
|
|
|
|
|
video() {
|
|
|
|
menu
|
|
|
|
st -e mpv -ao=alsa -v --ytdl-format='[height<420]' "$URL"
|
|
|
|
}
|
|
|
|
|
|
|
|
audio() {
|
|
|
|
menu
|
|
|
|
st -e mpv -ao=alsa -v --no-video "$URL"
|
|
|
|
}
|
|
|
|
|
|
|
|
$1
|