namespace App\Fluidbook\Compiler;
+use App\Models\FluidbookHealthIssues;
use Cubist\Util\Files\Files;
use Cubist\Util\Text;
use Exception;
$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;
}
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;
* __('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 [
'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',
+ ],
];
}