From 45e8f99e753cc02ec105e6f4d7fe026a205724f8 Mon Sep 17 00:00:00 2001 From: Yassine Doghri <yassine@doghri.fr> Date: Fri, 28 Jan 2022 10:31:30 +0000 Subject: [PATCH] fix(migrations): ignore invalid utf8 chars for media files metadata + update transcript parser check that transcript parser constants are defined before declaring them --- app/Entities/Media/BaseMedia.php | 2 +- app/Entities/Media/Image.php | 2 +- app/Entities/Media/Transcript.php | 2 +- app/Libraries/TranscriptParser.php | 19 +++++++++++++++---- 4 files changed, 18 insertions(+), 7 deletions(-) diff --git a/app/Entities/Media/BaseMedia.php b/app/Entities/Media/BaseMedia.php index 6417095cce..c348b250a7 100644 --- a/app/Entities/Media/BaseMedia.php +++ b/app/Entities/Media/BaseMedia.php @@ -88,7 +88,7 @@ class BaseMedia extends Entity $this->attributes['type'] = $this->type; $this->attributes['file_mimetype'] = $file->getMimeType(); - $this->attributes['file_metadata'] = json_encode(lstat((string) $file)); + $this->attributes['file_metadata'] = json_encode(lstat((string) $file), JSON_INVALID_UTF8_IGNORE); $this->attributes['file_path'] = save_media( $file, $this->attributes['file_directory'], diff --git a/app/Entities/Media/Image.php b/app/Entities/Media/Image.php index 833670fec2..68b2d47909 100644 --- a/app/Entities/Media/Image.php +++ b/app/Entities/Media/Image.php @@ -61,7 +61,7 @@ class Image extends BaseMedia ]; } - $this->attributes['file_metadata'] = json_encode($metadata); + $this->attributes['file_metadata'] = json_encode($metadata, JSON_INVALID_UTF8_IGNORE); $this->initFileProperties(); $this->saveSizes(); diff --git a/app/Entities/Media/Transcript.php b/app/Entities/Media/Transcript.php index 4221253cc8..8dc8ce1226 100644 --- a/app/Entities/Media/Transcript.php +++ b/app/Entities/Media/Transcript.php @@ -58,7 +58,7 @@ class Transcript extends BaseMedia $metadata['json_path'] = $jsonFilePath; } - $this->attributes['file_metadata'] = json_encode($metadata); + $this->attributes['file_metadata'] = json_encode($metadata, JSON_INVALID_UTF8_IGNORE); return $this; } diff --git a/app/Libraries/TranscriptParser.php b/app/Libraries/TranscriptParser.php index 8eaa1e8761..fe316b2136 100644 --- a/app/Libraries/TranscriptParser.php +++ b/app/Libraries/TranscriptParser.php @@ -30,10 +30,21 @@ class TranscriptParser */ public function parseSrt(): string | false { - define('SRT_STATE_SUBNUMBER', 0); - define('SRT_STATE_TIME', 1); - define('SRT_STATE_TEXT', 2); - define('SRT_STATE_BLANK', 3); + if (! defined('SRT_STATE_SUBNUMBER')) { + define('SRT_STATE_SUBNUMBER', 0); + } + + if (! defined('SRT_STATE_TIME')) { + define('SRT_STATE_TIME', 1); + } + + if (! defined('SRT_STATE_TEXT')) { + define('SRT_STATE_TEXT', 2); + } + + if (! defined('SRT_STATE_BLANK')) { + define('SRT_STATE_BLANK', 3); + } $subs = []; $state = SRT_STATE_SUBNUMBER; -- GitLab