Improved default filter selection rules.
This commit is contained in:
		
							parent
							
								
									1eea92094b
								
							
						
					
					
						commit
						5a18094377
					
				
					 1 changed files with 21 additions and 8 deletions
				
			
		
							
								
								
									
										29
									
								
								burnSubs
									
										
									
									
									
								
							
							
						
						
									
										29
									
								
								burnSubs
									
										
									
									
									
								
							| 
						 | 
					@ -5,8 +5,8 @@ set -o errexit
 | 
				
			||||||
 | 
					
 | 
				
			||||||
################################################################################
 | 
					################################################################################
 | 
				
			||||||
# burnSubs
 | 
					# burnSubs
 | 
				
			||||||
# version 0.11.1
 | 
					# version 0.11.2
 | 
				
			||||||
#################3
 | 
					#################
 | 
				
			||||||
# Wishlist:
 | 
					# Wishlist:
 | 
				
			||||||
#   queue encodes
 | 
					#   queue encodes
 | 
				
			||||||
#   finish TODOs
 | 
					#   finish TODOs
 | 
				
			||||||
| 
						 | 
					@ -346,18 +346,29 @@ function selectSubs() {
 | 
				
			||||||
		export SUBTITLE_INDEX=-1
 | 
							export SUBTITLE_INDEX=-1
 | 
				
			||||||
	else
 | 
						else
 | 
				
			||||||
		if [[ $OPTS_SELSUB -lt 0 && $SUB_COUNT -gt 1 ]]; then
 | 
							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!"
 | 
								echo "   > WARNING: Multiple subtitles!"
 | 
				
			||||||
			printf "       Using default selection rules... "
 | 
								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 "English not found!"
 | 
				
			||||||
				echo "    ==> Reverting to first subtitle file."
 | 
									echo "    ==> Reverting to first subtitle file."
 | 
				
			||||||
				export SUBTITLE_INDEX=$($JQ '.[0].i' "$STREAMS_SUB")
 | 
									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
 | 
									# we found english
 | 
				
			||||||
				echo "English found"
 | 
									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
 | 
								fi
 | 
				
			||||||
		else
 | 
							else
 | 
				
			||||||
			if [[ $SUB_COUNT -eq 1 ]]; then
 | 
								if [[ $SUB_COUNT -eq 1 ]]; then
 | 
				
			||||||
| 
						 | 
					@ -379,12 +390,14 @@ function selectSubs() {
 | 
				
			||||||
			printf "       Using default selection rules... "
 | 
								printf "       Using default selection rules... "
 | 
				
			||||||
			if [[ "$LANG_TEST" == "null" ]]; then
 | 
								if [[ "$LANG_TEST" == "null" ]]; then
 | 
				
			||||||
				echo "Japanese audio not found!"
 | 
									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")
 | 
									export AUDIO_INDEX=$($JQ '.[0].i' "$STREAMS_AUDIO")
 | 
				
			||||||
			else
 | 
								else
 | 
				
			||||||
				# we found english
 | 
									# we found english
 | 
				
			||||||
				echo "Japanese audio found"
 | 
									echo "Japanese audio found"
 | 
				
			||||||
				export AUDIO_INDEX=$($JQ '.['$LANG_TEST'].i' "$STREAMS_AUDIO")
 | 
									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
 | 
								fi
 | 
				
			||||||
		else
 | 
							else
 | 
				
			||||||
			AUDIO_INDEX=$OPTS_SELAUDIO
 | 
								AUDIO_INDEX=$OPTS_SELAUDIO
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue