]> _ Git - fluidbook-toolbox.git/commitdiff
wait #6514 @0.5
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Fri, 24 Nov 2023 16:27:24 +0000 (17:27 +0100)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Fri, 24 Nov 2023 16:27:24 +0000 (17:27 +0100)
app/Fluidbook/Compiler/Accessibility.php
app/Models/FluidbookHealthIssues.php

index 9dec14be518ff36ff98d654d0105f94e78e0107e..5ab1a7b45d2de246fa9b3c2cd315965f8c26571a 100644 (file)
@@ -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;
         }
index adc072d5d352e34ea6dcedef721d2e9206107f90..36ee0f02b9ba805fc50ddd4555caedf09c853e82 100644 (file)
@@ -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',
+                ],
         ];
     }