Ĉi tiu deponejo arĥiviĝis je 2024-01-29. Vi povas vidi kaj elŝuti dosierojn, sed ne povas puŝi nek raporti problemojn nek tirpeti.
shellTube/yt

142 lines
3.8 KiB
Plaintext
Raw Normal View History

#!/bin/sh
########################################
# name: yt
# lisc: gnu gplv3
# main: jadedctrl
# desc: browse youtube from the terminal
########################################
# ... there's got to be a better way to
# source this.
if test -e ytlib.sh; then
. ./ytlib.sh
elif test -e lib/ytlib.sh; then
. ./lib/ytlib.sh
elif test -e ../lib/ytlib.sh; then
. ../lib/ytlib.sh
elif test -e /usr/local/lib/ytlib.sh; then
. /usr/local/lib/ytlib.sh
elif test -e /usr/lib/ytlib.sh; then
. /usr/lib/ytlib.sh
else
echo "ytlib.sh not found."
exit 5
fi
# --------------------------------------
# Show usage message of shelltube itself
function yt_usage {
echo "usage: yt command subcommand [arguments]"
echo " yt (v)ideo [...]"
echo " yt (p)laylist [...]"
exit 2
}
# --------------------------------------
if test -z "$1"; then
yt_usage
fi
# --------------------------------------
# Show usage message of the video subcommand
function video_usage {
2019-03-16 10:43:18 -05:00
echo "usage: yt video (s)earch [...]"
echo " yt video (t)itle [...]"
echo " yt video (d)esc [...]"
echo " yt video (a)uthor [...]"
echo " yt video (v)iews [...]"
echo " yt video (D)ate [...]"
exit 2
}
# Pass on commands to video subcommand
function video_invocation {
local command="$1"
local arguments="$(echo "$@" | awk '{$1=""; print}')"
if test -z "$command"; then
video_usage
elif test "$(length "$arguments")" -eq 0; then
arguments="-h"
fi
case "$command" in
2019-03-16 10:43:18 -05:00
"search") video_search_invocation $arguments;;
"s") video_search_invocation $arguments;;
"d") video_desc_invocation $arguments;;
"desc") video_desc_invocation $arguments;;
"D") video_uploaded_invocation $arguments;;
"date") video_uploaded_invocation $arguments;;
"views") video_views_invocation $arguments;;
"v") video_views_invocation $arguments;;
"author") video_author_invocation $arguments;;
"a") video_author_invocation $arguments;;
"title") video_title_invocation $arguments;;
"t") video_title_invocation $arguments;;
"help") video_usage;;
"h") video_usage;;
esac
}
# --------------------------------------
# Show playlist usage message
function playlist_usage {
2019-03-16 10:43:18 -05:00
echo "usage: yt playlist (s)earch [...]"
echo " yt playlist (l)ist [...]"
echo " yt playlist (t)itle [...]"
echo " yt playlsit (a)uthor [...]"
echo " yt playlist (v)iews [...]"
echo " yt playlist (D)ate [...]"
exit 2
}
# Pass on commands to the playlist subcommand
function playlist_invocation {
local command="$1"
local arguments="$(echo "$@" | awk '{$1=""; print}')"
if test -z "$command"; then
playlist_usage
elif test "$(length "$arguments")" -eq 0; then
arguments="-h"
fi
case "$command" in
2019-03-16 10:43:18 -05:00
"search") playlist_search_invocation $arguments;;
"s") playlist_search_invocation $arguments;;
"views") playlist_views_invocation $arguments;;
"v") playlist_views_invocation $arguments;;
"author") playlist_author_invocation $arguments;;
"a") playlist_author_invocation $arguments;;
"date") playlist_uploaded_invocation $arguments;;
"D") playlist_uploaded_invocation $arguments;;
"title") playlist_title_invocation $arguments;;
"t") playlist_title_invocation $arguments;;
"list") playlist_list_invocation $arguments;;
"l") playlist_list_invocation $arguments;;
"help") playlist_usage;;
"h") playlist_usage;;
esac
}
# --------------------------------------
# actual invocation
command="$1"
arguments="$(echo "$@" | awk '{$1=""; print}')"
case "$command" in
*video) video_invocation $arguments;;
*v) video_invocation $arguments;;
*channel) channel_invocation $arguments;;
*c) channel_invocation $arguments;;
*playlist) playlist_invocation $arguments;;
*p) playlist_invocation $arguments;;
esac