From: Vincent Vanwaelscappel Date: Fri, 24 Nov 2023 16:27:24 +0000 (+0100) Subject: wait #6514 @0.5 X-Git-Url: http://git.cubedesigners.com/?a=commitdiff_plain;h=71cf25b54923434e078f90c3dbc7d1008f06826c;p=fluidbook-toolbox.git wait #6514 @0.5 --- diff --git a/app/Fluidbook/Compiler/Accessibility.php b/app/Fluidbook/Compiler/Accessibility.php index 9dec14be5..5ab1a7b45 100644 --- a/app/Fluidbook/Compiler/Accessibility.php +++ b/app/Fluidbook/Compiler/Accessibility.php @@ -2,6 +2,7 @@ namespace App\Fluidbook\Compiler; +use App\Models\FluidbookHealthIssues; use Cubist\Util\Files\Files; use Cubist\Util\Text; use Exception; @@ -71,15 +72,21 @@ trait Accessibility $file = $dir . $fname; - if (!file_exists($file) || filesize($file) === 0) { + if (Files::isEmpty($file)) { if ($engine == 'azuretts') { $e = explode('/', $voice); + if (count($e) < 2) { + FluidbookHealthIssues::addIssue($this->book_id, FluidbookHealthIssues::TYPE_TTS_VOICE_INVALID, ['voice' => $voice]); + continue; + } $this->_azureTTS($text, $e[0], $e[1], $e[2], $file); } } - $this->config->set('audiodescription.' . $page, $fname); - $this->vdir->copy($file, 'data/audiodescription/' . $fname); + if (Files::isNotEmpty($file)) { + $this->config->set('audiodescription.' . $page, $fname); + $this->vdir->copy($file, 'data/audiodescription/' . $fname); + } } $this->accessibleTexts[$page] = $text; } diff --git a/app/Models/FluidbookHealthIssues.php b/app/Models/FluidbookHealthIssues.php index adc072d5d..36ee0f02b 100644 --- a/app/Models/FluidbookHealthIssues.php +++ b/app/Models/FluidbookHealthIssues.php @@ -14,6 +14,7 @@ class FluidbookHealthIssues extends ToolboxModel const TYPE_MISSING_FILE = 1; const TYPE_QRCODE_NOT_READABLE = 2; const TYPE_MOBILEFIRST_CONFIG = 3; + const TYPE_TTS_VOICE_INVALID = 4; const CRIT_ERROR = 5; const CRIT_WARNING = 3; @@ -65,6 +66,7 @@ class FluidbookHealthIssues extends ToolboxModel * __('Le chemin ":path" est introuvable') * __('Le QRcode du lien :uid (page :page) n\'a pas pu être décodé') * __('Ce fluidbook mobile first a le paramètre "Identifiant du fluidbook Mobile first" défini. Ce paramètre est réservé aux fluidbooks Desktop') + * __('La voix d\'audiodescription :voice est invalide'); * */ return [ @@ -83,13 +85,20 @@ class FluidbookHealthIssues extends ToolboxModel 'fixText' => __('Aller sur l\'éditeur de liens'), 'fixURL' => route('fluidbook_linkeditor', ['id' => $fluidbookId]) . '#:page', ], - static::TYPE_MOBILEFIRST_CONFIG => [ - 'summary' => __('Configuration MobileFirst'), - 'criticality' => self::CRIT_WARNING, - 'text' => 'Ce fluidbook mobile first a le paramètre "Identifiant du fluidbook Mobile first" défini. Ce paramètre est réservé aux fluidbooks Desktop', - 'fixText' => __('Editer la configuration'), - 'fixURL' => route('fluidbook-publication.edit', ['id' => $fluidbookId]) . '#s_section_mobilefirst', - ], + static::TYPE_MOBILEFIRST_CONFIG => + [ + 'summary' => __('Configuration MobileFirst'), + 'criticality' => self::CRIT_WARNING, + 'text' => 'Ce fluidbook mobile first a le paramètre "Identifiant du fluidbook Mobile first" défini. Ce paramètre est réservé aux fluidbooks Desktop', + 'fixText' => __('Editer la configuration'), + 'fixURL' => route('fluidbook-publication.edit', ['id' => $fluidbookId]) . '#s_section_mobilefirst', + ], + static::TYPE_TTS_VOICE_INVALID => + [ + 'summary' => __('Voix d d\'audiodescription invalide'), + 'criticality' => self::CRIT_ERROR, + 'text' => 'La voix d\'audiodescription :voice est invalide', + ], ]; }