mirror of
https://github.com/lrenaud/burnSubs.git
synced 2025-06-17 04:40:34 -07:00
Improved default filter selection rules.
This commit is contained in:
parent
328fcb2318
commit
464f3e31ca
1 changed files with 21 additions and 8 deletions
29
burnSubs
29
burnSubs
|
@ -5,8 +5,8 @@ set -o errexit
|
|||
|
||||
################################################################################
|
||||
# burnSubs
|
||||
# version 0.11.1
|
||||
#################3
|
||||
# version 0.11.2
|
||||
#################
|
||||
# Wishlist:
|
||||
# queue encodes
|
||||
# finish TODOs
|
||||
|
@ -346,18 +346,29 @@ function selectSubs() {
|
|||
export SUBTITLE_INDEX=-1
|
||||
else
|
||||
if [[ $OPTS_SELSUB -lt 0 && $SUB_COUNT -gt 1 ]]; then
|
||||
OPTS_SELSUB_LANG="${OPTS_SELSUB_LANG:-eng}"
|
||||
LANG_TEST=$($JQ '[.[].lang] | index("'${OPTS_SELSUB_LANG}'")' "$STREAMS_SUB")
|
||||
echo " > WARNING: Multiple subtitles!"
|
||||
printf " Using default selection rules... "
|
||||
if [[ "$LANG_TEST" == "null" ]]; then
|
||||
OPTS_SELSUB_LANG="${OPTS_SELSUB_LANG:-eng}"
|
||||
LANG_TEST=$($JQ '[.[].lang | match("'${OPTS_SELSUB_LANG}'")] | length' "$STREAMS_SUB")
|
||||
if [[ "$LANG_TEST" == "0" ]]; then
|
||||
echo "English not found!"
|
||||
echo " ==> Reverting to first subtitle file."
|
||||
export SUBTITLE_INDEX=$($JQ '.[0].i' "$STREAMS_SUB")
|
||||
else
|
||||
elif [[ "$LANG_TEST" == "1" ]]; then
|
||||
LANG_SINGLE_SELECT=$($JQ '[.[].lang] | index("'${OPTS_SELSUB_LANG}'")' "$STREAMS_SUB")
|
||||
# we found english
|
||||
echo "English found"
|
||||
export SUBTITLE_INDEX=$($JQ '.['$LANG_TEST'].i' "$STREAMS_SUB")
|
||||
export SUBTITLE_INDEX=$($JQ '.['$LANG_SINGLE_SELECT'].i' "$STREAMS_SUB")
|
||||
else
|
||||
# try to avoid a signs and lyrics track
|
||||
LANG_SINGLE_SELECT=$($JQ '[.[].lang] | index("'${OPTS_SELSUB_LANG}'")' "$STREAMS_SUB")
|
||||
echo "Multiple english tracks found."
|
||||
export SUBTITLE_INDEX=$($JQ 'reduce .[] as $trk ([]; if ($trk.lang == "'${OPTS_SELSUB_LANG}'" and ( ($trk.t | test("lyrics";"i") or ($trk.t | test("signs";"i")) ) | not ) ) then [.[],{t:$trk.t,i:$trk.i}] else . end) | .[].i' "$STREAMS_SUB")
|
||||
# And display rejected subtitles too.
|
||||
SUBTITLE_REJECT_LIST=($($JQ 'reduce .[] as $trk ([]; if ($trk.lang == "'${OPTS_SELSUB_LANG}'" and ( ($trk.t | test("lyrics";"i") or ($trk.t | test("signs";"i")) ) ) ) then [.[],{t:$trk.t,i:$trk.i}] else . end) | .[].t' "$STREAMS_SUB"))
|
||||
for REJECT_SUB in ${SUBTITLE_REJECT_LIST[@]}; do
|
||||
echo " > rejecting ${REJECT_SUB}"
|
||||
done
|
||||
fi
|
||||
else
|
||||
if [[ $SUB_COUNT -eq 1 ]]; then
|
||||
|
@ -379,12 +390,14 @@ function selectSubs() {
|
|||
printf " Using default selection rules... "
|
||||
if [[ "$LANG_TEST" == "null" ]]; then
|
||||
echo "Japanese audio not found!"
|
||||
echo " ==> Reverting to first subtitle file."
|
||||
echo " ==> Reverting to first audio stream."
|
||||
export AUDIO_INDEX=$($JQ '.[0].i' "$STREAMS_AUDIO")
|
||||
else
|
||||
# we found english
|
||||
echo "Japanese audio found"
|
||||
export AUDIO_INDEX=$($JQ '.['$LANG_TEST'].i' "$STREAMS_AUDIO")
|
||||
AUDIO_STREAM_TITLE=$($JQ '.['$LANG_TEST'].t' "$STREAMS_AUDIO")
|
||||
echo " ==> stream has title ${AUDIO_STREAM_TITLE}"
|
||||
fi
|
||||
else
|
||||
AUDIO_INDEX=$OPTS_SELAUDIO
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue