Class: Appydave::Tools::SubtitleMaster::Join
- Inherits:
-
Object
- Object
- Appydave::Tools::SubtitleMaster::Join
- Defined in:
- lib/appydave/tools/subtitle_manager/join.rb
Overview
Join multiple SRT files into one
-
Supports folder, wildcards, sorting via FileResolver
Defined Under Namespace
Classes: FileResolver, Logger, SRTMerger, SRTParser, SRTWriter
Instance Method Summary collapse
-
#initialize(folder: './', files: '*.srt', sort: 'inferred', buffer: 100, output: 'merged.srt', log_level: :info) ⇒ Join
constructor
A new instance of Join.
- #join ⇒ Object
Constructor Details
#initialize(folder: './', files: '*.srt', sort: 'inferred', buffer: 100, output: 'merged.srt', log_level: :info) ⇒ Join
Returns a new instance of Join.
268 269 270 271 272 273 274 275 |
# File 'lib/appydave/tools/subtitle_manager/join.rb', line 268 def initialize(folder: './', files: '*.srt', sort: 'inferred', buffer: 100, output: 'merged.srt', log_level: :info) @folder = folder @files = files @sort = sort @buffer = buffer @output = output @logger = Logger.new(log_level) end |
Instance Method Details
#join ⇒ Object
277 278 279 280 281 282 283 284 285 286 287 288 289 290 |
# File 'lib/appydave/tools/subtitle_manager/join.rb', line 277 def join @logger.log(:info, "Starting join operation in folder: #{@folder} with files: #{@files}") resolved_files = resolve_files @logger.log(:info, "Resolved files: #{resolved_files.join(', ')}") subtitle_groups = parse_files(resolved_files) @logger.log(:detail, "Parsed subtitles: #{subtitle_groups.map(&:size)} from files.") merged_subtitles = merge_subtitles(subtitle_groups) @logger.log(:info, "Merged #{subtitle_groups.flatten.size} subtitles into #{merged_subtitles.size} blocks.") write_output(merged_subtitles) @logger.log(:info, "Output written to #{@output}") end |