sxmo-utils/scripts/appscripts/sxmo_youtube.sh
Stacy Harper 8a27933c47 SWMO - SXMO over Wayland
This is a huge patch for Swmo, Sxmo over Sway.

It is Dwm backward compatible so dwm users should not expect regressions.

If you install all dependencies, you then can toggle between Sway and Dwm using a new config entry. It will reboot the phone.

This commit also contains:
    * Make the modemmonitor bullet proof
    * various other smaller fixes

Signed-off-by: Stacy Harper <contact@stacyharper.net>
Signed-off-by: Maarten van Gompel <proycon@anaproy.nl>
2021-08-22 13:23:22 +02:00

88 lines
1.7 KiB
Bash
Executable file

#!/usr/bin/env sh
# include common definitions
# shellcheck source=scripts/core/sxmo_common.sh
. "$(dirname "$0")/sxmo_common.sh"
HISTORY_FILE="$XDG_CACHE_HOME"/sxmo/youtubehistory.tsv
AUDIOONLY=0
youtubesearch() {
QUERY="$1"
youtube-cli "$QUERY" |
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}'
}
searchmenu() {
HISTORY="$(
tac "$HISTORY_FILE" | nl | sort -uk 2 | sort -k 1 | cut -f 2 | grep . |
sed "s#^#History: #g"
)"
while true; do
ENTRY="$(
printf %b "
Close Menu
$HISTORY
" |
xargs -0 echo |
sed '/^[[:space:]]*$/d' |
awk '{$1=$1};1' |
sxmo_dmenu_with_kb.sh -p "Yt Search"
)"
if [ "Close Menu" = "$ENTRY" ]; then
exit 0
else
ENTRY="$(echo "$ENTRY" | sed 's#^History: ##')"
printf %b "$ENTRY\n" >> "$HISTORY_FILE"
youtubesearch "$ENTRY" | resultsmenu
fi
done
}
resultsmenu() {
RESULTS="$(cat)"
while true; do
PICKED="$(
printf %b "
Close Menu\n
Change Search\n
$RESULTS
" |
xargs -0 echo |
sed '/^[[:space:]]*$/d' |
awk '{$1=$1};1' |
sxmo_dmenu.sh -p "Results"
)"
if [ "Change Search" = "$PICKED" ]; then
return
elif [ "Close Menu" = "$PICKED" ]; then
exit 0
elif [ "$AUDIOONLY" = 1 ]; then
URL="$(echo "$PICKED" | awk -F " " '{print $NF}')"
sxmo_terminal.sh mpv -ao=alsa -v --no-video "$URL" &
else
URL="$(echo "$PICKED" | awk -F " " '{print $NF}')"
sxmo_terminal.sh mpv -ao=alsa -v --ytdl-format='[height<420]' "$URL" &
fi
done
}
video() {
AUDIOONLY=0
searchmenu
}
audio() {
AUDIOONLY=1
searchmenu
}
"$@"