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

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
+7
View File
@@ -23,11 +23,13 @@ TEMP_MERGE_FILE="/tmp/tmp.mkv"
# ... (все переменные состояния остаются без изменений)
VIDEO_SRC_DIR=""
AUDIO_SRC_DIR=""
SUB_SRC_DIR=""
OUTPUT_BASE_DIR=""
OUTPUT_SERIES_NAME=""
SEASON_NUMBER="01"
VIDEO_FILE_PATTERN="*.mkv"
AUDIO_FILE_PATTERN="*.mka"
SUB_FILE_PATTERN="*.ass"
EPISODE_NUMBER_REGEX='.* ([0-9]{2}) .*'
OUTPUT_FILENAME_TEMPLATE="{SERIES_NAME} s{SEASON}e{EPISODE}.mkv"
CURRENT_ACTION=""
@@ -76,6 +78,7 @@ main() {
local max_display_len=45 # Можете поменять это значение под свой экран
local display_video_path=$(truncate_path_for_display "$VIDEO_SRC_DIR" "$max_display_len" "_не задан_")
local display_audio_path=$(truncate_path_for_display "$AUDIO_SRC_DIR" "$max_display_len" "_не задан_")
local display_sub_path=$(truncate_path_for_display "$SUB_SRC_DIR" "$max_display_len" "_не задан_")
local display_output_path=$(truncate_path_for_display "$OUTPUT_BASE_DIR" "$max_display_len" "_не задан_")
# Формируем пункты меню ДИНАМИЧЕСКИ
@@ -84,6 +87,7 @@ main() {
if [ "$CURRENT_ACTION" == "MERGE" ]; then
menu_items+=("A" "Аудио каталог : $display_audio_path")
menu_items+=("B" "Субтитры каталог : $display_sub_path")
fi
menu_items+=(
@@ -96,6 +100,7 @@ main() {
if [ "$CURRENT_ACTION" == "MERGE" ]; then
menu_items+=("U" "Шаблон аудиофайлов : $AUDIO_FILE_PATTERN")
menu_items+=("W" "Шаблон субтитров : $SUB_FILE_PATTERN")
fi
menu_items+=(
@@ -118,6 +123,7 @@ main() {
case "$choice" in
V) VIDEO_SRC_DIR=$(ui_get_directory "Выберите каталог с видеофайлами" "$VIDEO_SRC_DIR" "$DEFAULT_TORRENTS_DIR") ;;
A) AUDIO_SRC_DIR=$(ui_get_directory "Выберите каталог с аудиофайлами" "$AUDIO_SRC_DIR" "$VIDEO_SRC_DIR") ;;
B) SUB_SRC_DIR=$(ui_get_directory "Выберите каталог с субтитрами" "$SUB_SRC_DIR" "$VIDEO_SRC_DIR") ;;
O)
OUTPUT_BASE_DIR=$(ui_get_directory "Выберите БАЗОВЫЙ каталог для результата" "$OUTPUT_BASE_DIR" "$DEFAULT_ARCHIVE_DIR")
OUTPUT_BASE_DIR="${OUTPUT_BASE_DIR%/}"
@@ -129,6 +135,7 @@ main() {
S) SEASON_NUMBER=$(ui_get_input "Введите номер сезона (например, 01, 02)" "$SEASON_NUMBER") ;;
P) VIDEO_FILE_PATTERN=$(ui_get_input "Введите шаблон для поиска видео (*.mkv, *ep*.mkv)" "$VIDEO_FILE_PATTERN") ;;
U) AUDIO_FILE_PATTERN=$(ui_get_input "Введите шаблон для поиска аудио (*.mka, *.ac3)" "$AUDIO_FILE_PATTERN") ;;
W) SUB_FILE_PATTERN=$(ui_get_input "Введите шаблон для поиска субтитров (*.ass, *.srt)" "$SUB_FILE_PATTERN") ;;
R) EPISODE_NUMBER_REGEX=$(ui_get_input "Введите ERE-regex для номера серии" "$EPISODE_NUMBER_REGEX") ;;
T) OUTPUT_FILENAME_TEMPLATE=$(ui_get_input "Введите шаблон имени выходного файла" "$OUTPUT_FILENAME_TEMPLATE") ;;
VIEW) logic_show_preview ;;