Add machine-processible mode so people can adapt to their own players
This commit is contained in:
parent
f9d199704f
commit
da3972c315
@ -67,7 +67,7 @@ On the bright side, though, youtube-dl downloads most songs in Opus, which has i
|
||||
|
||||
**Q**: Why isn't my music player supported?
|
||||
|
||||
**A**: Open a bug report/pull request.
|
||||
**A**: Open a bug report/pull request. Alternatively, use `ptgdp -m` and some glue.
|
||||
|
||||
## Bugs
|
||||
|
||||
|
29
ptgdp
29
ptgdp
@ -27,6 +27,7 @@ declare _optconfigfile="${XDG_CONFIG_HOME:-$HOME/.config}/${_name}.conf"
|
||||
declare -i _optautoplay=0
|
||||
declare -i _optdlonly
|
||||
declare -i _opthelp
|
||||
declare -i _optmachinemode
|
||||
declare -i _optverbose
|
||||
# Working variables
|
||||
declare -a _queue
|
||||
@ -41,15 +42,23 @@ log() {
|
||||
# loglevel 1: Detailed but not quite debugging
|
||||
# loglevel 2: Definitely debugging
|
||||
[ -z "$1" ] && return 1
|
||||
local -i outstream=1
|
||||
[ -n "$_optmachinemode" ] && outstream=2
|
||||
if (( _optverbose >= ${2:-0} )); then
|
||||
printf "%s\\n" "$1"
|
||||
printf "%s\\n" "$1" >&"$outstream"
|
||||
fi
|
||||
}
|
||||
warn() {
|
||||
# Print a yellow line to the terminal, respecting _optverbose
|
||||
[ -z "$1" ] && return 1
|
||||
local -i outstream=1
|
||||
[ -n "$_optmachinemode" ] && outstream=2
|
||||
if (( _optverbose >= ${2:-0} )); then
|
||||
printf "\\e[33m%s\\e[0m\\n" "$1"
|
||||
if [ -t "$outstream" ]; then
|
||||
printf "\\e[33m%s\\e[0m\\n" "$1" >&"$outstream"
|
||||
else
|
||||
printf "WARN: %s\\n" "$1" >&"$outstream"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
error() {
|
||||
@ -247,6 +256,9 @@ given plaintext files with only search queries
|
||||
-c [FILE] Load the given file in place of the usual config file
|
||||
-d Download songs but don't queue them up
|
||||
-h Print this help text
|
||||
-m Machine-processible mode. Output all log text to STDERR
|
||||
and print only the final list of songs to STDOUT,
|
||||
separated by newlines.
|
||||
-p Play the queue after it's built
|
||||
-v Print more status messages. Stacks
|
||||
|
||||
@ -285,14 +297,20 @@ playlist() {
|
||||
continue
|
||||
fi
|
||||
done < "$1"
|
||||
backend-execqueue
|
||||
if [ -n "$_optmachinemode" ]; then
|
||||
for file in "${_queue[@]}"; do
|
||||
printf "$file\\n"
|
||||
done
|
||||
else
|
||||
backend-execqueue
|
||||
fi
|
||||
log "Finished: $dlcache cached, $dlsuccess downloaded, $dlerr failed"
|
||||
}
|
||||
|
||||
# Main
|
||||
main() {
|
||||
# Getopts before anything else
|
||||
while getopts ":c:dhpv" opt; do
|
||||
while getopts ":c:dhmpv" opt; do
|
||||
case $opt in
|
||||
c)
|
||||
_optconfigfile="$OPTARG"
|
||||
@ -303,6 +321,9 @@ main() {
|
||||
h)
|
||||
_opthelp=1
|
||||
;;
|
||||
m)
|
||||
_optmachinemode=1
|
||||
;;
|
||||
p)
|
||||
_optautoplay=1
|
||||
;;
|
||||
|
Loading…
x
Reference in New Issue
Block a user