From 21e284222f29be76d46ce71fba47b8ef529042ed Mon Sep 17 00:00:00 2001 From: Mantas Date: Fri, 29 Mar 2024 14:42:31 +0200 Subject: [PATCH] Explore RTF parsing --- composer.json | 2 +- .../{EbuStlConverter.php => EbuStlReader.php} | 2 +- src/Code/Converters/RtfReader.php | 28 +++++++++++++++++++ src/Subtitles.php | 8 ++++-- tests/formats/EbuStlTest.php | 4 +-- 5 files changed, 37 insertions(+), 7 deletions(-) rename src/Code/Converters/{EbuStlConverter.php => EbuStlReader.php} (99%) create mode 100644 src/Code/Converters/RtfReader.php diff --git a/composer.json b/composer.json index 441cab1..b282f8d 100644 --- a/composer.json +++ b/composer.json @@ -21,4 +21,4 @@ "require-dev": { "phpunit/phpunit": "^8.0" } -} \ No newline at end of file +} diff --git a/src/Code/Converters/EbuStlConverter.php b/src/Code/Converters/EbuStlReader.php similarity index 99% rename from src/Code/Converters/EbuStlConverter.php rename to src/Code/Converters/EbuStlReader.php index 6bdfce9..b8efd94 100644 --- a/src/Code/Converters/EbuStlConverter.php +++ b/src/Code/Converters/EbuStlReader.php @@ -4,7 +4,7 @@ use Done\Subtitles\Code\UserException; -class EbuStlConverter implements ConverterContract +class EbuStlReader implements ConverterContract { public function canParseFileContent($file_content) { diff --git a/src/Code/Converters/RtfReader.php b/src/Code/Converters/RtfReader.php new file mode 100644 index 0000000..4840809 --- /dev/null +++ b/src/Code/Converters/RtfReader.php @@ -0,0 +1,28 @@ + 'vtt', 'format' => 'vtt', 'name' => 'WebVTT', 'class' => VttConverter::class], ['extension' => 'srt', 'format' => 'srt', 'name' => 'SubRip', 'class' => SrtConverter::class], ['extension' => 'stl', 'format' => 'stl', 'name' => 'Spruce Subtitle File', 'class' => StlConverter::class], - ['extension' => 'stl', 'format' => 'ebu_stl', 'name' => 'EBU STL', 'class' => EbuStlConverter::class], // text needs to be converted from iso6937 encoding. PHP doesn't support it natively + ['extension' => 'stl', 'format' => 'ebu_stl', 'name' => 'EBU STL', 'class' => EbuStlReader::class], // text needs to be converted from iso6937 encoding. PHP doesn't support it natively ['extension' => 'sub', 'format' => 'sub_microdvd', 'name' => 'MicroDVD', 'class' => SubMicroDvdConverter::class], ['extension' => 'sub', 'format' => 'sub_subviewer', 'name' => 'SubViewer2.0', 'class' => SubViewerConverter::class], ['extension' => 'ttml', 'format' => 'ttml', 'name' => 'TimedText 1.0', 'class' => TtmlConverter::class], @@ -48,8 +49,9 @@ class Subtitles ['extension' => 'txt', 'format' => 'txt_quicktime', 'name' => 'Quick Time Text', 'class' => TxtQuickTimeConverter::class], ['extension' => 'scc', 'format' => 'scc', 'name' => 'Scenarist', 'class' => SccConverter::class], ['extension' => 'lrc', 'format' => 'lrc', 'name' => 'LyRiCs', 'class' => LrcConverter::class], +// ['extension' => 'rtf', 'format' => 'rtf', 'name' => 'Rich text format', 'class' => RtfReader::class], // libraryies eather throws exception, not parses, or takes long to parse 2h file ['extension' => 'csv', 'format' => 'csv', 'name' => 'Coma Separated Values', 'class' => CsvConverter::class], // must be last from bottom - ['extension' => 'bin', 'format' => 'bin', 'name' => 'Binary', 'class' => BinaryFinder::class], // must be the last one + ['extension' => 'bin', 'format' => 'bin', 'name' => 'Binary', 'class' => BinaryFinder::class], ['extension' => 'txt', 'format' => 'txt', 'name' => 'Plaintext', 'class' => TxtConverter::class], // must be the last one ]; diff --git a/tests/formats/EbuStlTest.php b/tests/formats/EbuStlTest.php index 90f6b47..93bf5b6 100644 --- a/tests/formats/EbuStlTest.php +++ b/tests/formats/EbuStlTest.php @@ -2,7 +2,7 @@ namespace Tests\Formats; -use Done\Subtitles\Code\Converters\EbuStlConverter; +use Done\Subtitles\Code\Converters\EbuStlReader; use Done\Subtitles\Code\Converters\VttConverter; use Done\Subtitles\Code\Formats\Vtt; use Done\Subtitles\Code\Helpers; @@ -29,7 +29,7 @@ public function testParsesEbuStl() public function testTextConversion() { - $actual = EbuStlConverter::iso6937ToUtf8("\xA439"); + $actual = EbuStlReader::iso6937ToUtf8("\xA439"); $this->assertEquals('$39', $actual); } } \ No newline at end of file