Добавить необязательные субтитры при склейке серий.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-10-04 12:44:06 +07:00
parent bf11c57ac8
commit 28efe130f9
4 changed files with 63 additions and 12 deletions
+19 -2
View File
@@ -41,12 +41,26 @@ logic_prepare_file_lists() {
return 1
fi
local -a sub_list_raw=()
if [[ -n "$SUB_SRC_DIR" ]]; then
mapfile -d '' sub_list_raw < <(find "$SUB_SRC_DIR" -name "$SUB_FILE_PATTERN" -print0 | sort -z)
if [ ${#sub_list_raw[@]} -eq 0 ]; then
ui_show_message "Ошибка" "Субтитры по шаблону '$SUB_FILE_PATTERN' не найдены."
return 1
fi
if [ ${#video_list_raw[@]} -ne ${#sub_list_raw[@]} ]; then
ui_show_message "Ошибка" "Количество видео (${#video_list_raw[@]}), аудио (${#audio_list_raw[@]}) и субтитров (${#sub_list_raw[@]}) не совпадает."
return 1
fi
fi
for i in "${!video_list_raw[@]}"; do
local video_file="${video_list_raw[$i]}"
local audio_file="${audio_list_raw[$i]}"
local subtitle_file="${sub_list_raw[$i]}"
local output_path
output_path=$(logic_generate_output_name "$video_file") || return 1
FILE_TRIPLETS+=("$video_file"$'\t'"$audio_file"$'\t'"$output_path")
FILE_TRIPLETS+=("$video_file"$'\t'"$audio_file"$'\t'"$output_path"$'\t'"$subtitle_file")
done
# РЕЖИМ: СИМЛИНКИ
@@ -161,7 +175,7 @@ logic_show_preview() {
local count=1
local skip_count=0
for triplet in "${FILE_TRIPLETS[@]}"; do
IFS=$'\t' read -r video audio output <<< "$triplet"
IFS=$'\t' read -r video audio output subtitle <<< "$triplet"
body+="$(printf "%02d" $count). \n"
local exists=false
@@ -173,6 +187,9 @@ logic_show_preview() {
if [ "$CURRENT_ACTION" == "MERGE" ]; then
body+=" \ZbВИДЕО:\Zn $(basename "$video")\n"
body+=" \ZbАУДИО:\Zn $(basename "$audio")\n"
if [[ -n "$subtitle" ]]; then
body+=" \ZbСУБТИТРЫ:\Zn $(basename "$subtitle")\n"
fi
body+=" \Zb-> ВЫВОД:\Zn $(basename "$output")\n"
else # SYMLINK
body+=" \ZbИСТОЧНИК:\Zn $(basename "$video")\n"