]> _ Git - fluidbook-toolbox.git/commitdiff
wait #5264 @2
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Fri, 29 Apr 2022 08:57:16 +0000 (10:57 +0200)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Fri, 29 Apr 2022 08:57:16 +0000 (10:57 +0200)
.idea/deployment.xml
.idea/php.xml
.idea/workspace.xml
app/Http/Controllers/Admin/Operations/Tools/GitReposCreate.php [new file with mode: 0644]
app/Http/Controllers/Admin/Operations/Tools/TextToSpeech.php [new file with mode: 0644]
app/Http/Controllers/Admin/ToolsController.php
composer.json
composer.lock
resources/views/tools/pdf2svg.blade.php [deleted file]
resources/views/tools/sidebar.blade.php

index b7e709069717c2981c1aaf2f5df91b5c9edc6b5a..636549e2796c4383fa0c97f093334f2b134fc0bb 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
-  <component name="PublishConfigData" autoUpload="Always" serverName="toolbox.fluidbook.com" confirmBeforeUploading="false" autoUploadExternalChanges="true">
+  <component name="PublishConfigData" autoUpload="Always" serverName="toolbox.fluidbook.com" confirmBeforeUploading="false" autoUploadExternalChanges="true" showAutoUploadSettingsWarning="false">
     <option name="confirmBeforeUploading" value="false" />
     <serverData>
       <paths name="batman.cubedesigners.com">
index 375fdc8f6f9d9ee38c121aa5be6c64a5587d3cd4..d356b7f4126175879c85cff48f738eceb12e8578 100644 (file)
       <path value="$PROJECT_DIR$/vendor/cache/redis-adapter" />
       <path value="$PROJECT_DIR$/vendor/cubist/pdf" />
       <path value="$PROJECT_DIR$/vendor/fluidbook/tools" />
+      <path value="$PROJECT_DIR$/vendor/cubist/azuretts" />
     </include_path>
   </component>
   <component name="PhpProjectSharedConfiguration" php_language_level="8.0" />
index a45babc6c1a8dd2ebbc49a3b29525e5965ae50ad..67790a5297d6d6a0060b302885cbad68eadef8bb 100644 (file)
     <select />
   </component>
   <component name="ChangeListManager">
-    <list default="true" id="5d2ecd5e-a05a-4f96-a195-fa6372618165" name="Default Changelist" comment="wait #5188 @0.25">
+    <list default="true" id="5d2ecd5e-a05a-4f96-a195-fa6372618165" name="Default Changelist" comment="wait #5189 @0.25">
+      <change afterPath="$PROJECT_DIR$/app/Http/Controllers/Admin/Operations/Tools/GitReposCreate.php" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/app/Http/Controllers/Admin/Operations/Tools/TextToSpeech.php" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/.idea/deployment.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/deployment.xml" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/.idea/php.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/php.xml" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/app/Http/Controllers/Admin/Operations/Tools/PDF2SVGOperation.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Http/Controllers/Admin/Operations/Tools/PDF2SVGOperation.php" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/app/Http/Controllers/Admin/ToolsController.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Http/Controllers/Admin/ToolsController.php" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/composer.json" beforeDir="false" afterPath="$PROJECT_DIR$/composer.json" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/composer.lock" beforeDir="false" afterPath="$PROJECT_DIR$/composer.lock" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/resources/views/tools/pdf2svg.blade.php" beforeDir="false" />
       <change beforePath="$PROJECT_DIR$/resources/views/tools/sidebar.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/tools/sidebar.blade.php" afterDir="false" />
     </list>
     <option name="SHOW_DIALOG" value="false" />
       <path value="$PROJECT_DIR$/vendor/cache/redis-adapter" />
       <path value="$PROJECT_DIR$/vendor/cubist/pdf" />
       <path value="$PROJECT_DIR$/vendor/fluidbook/tools" />
+      <path value="$PROJECT_DIR$/vendor/cubist/azuretts" />
     </include_path>
   </component>
   <component name="ProjectId" id="1YLbIFP6Lc5WsrQuXxUOr75l1mO" />
       <workItem from="1649087728882" duration="1087000" />
       <workItem from="1649866043686" duration="843000" />
       <workItem from="1650361197922" duration="5551000" />
-      <workItem from="1650370001187" duration="1050000" />
-    </task>
-    <task id="LOCAL-00219" summary="wip #5041">
-      <created>1642709521887</created>
-      <option name="number" value="00219" />
-      <option name="presentableId" value="LOCAL-00219" />
-      <option name="project" value="LOCAL" />
-      <updated>1642709521887</updated>
+      <workItem from="1650370001187" duration="1140000" />
+      <workItem from="1650543593675" duration="5191000" />
+      <workItem from="1650692345830" duration="3144000" />
+      <workItem from="1651220888006" duration="594000" />
     </task>
     <task id="LOCAL-00220" summary="wait #5049 @0.25">
       <created>1642764868216</created>
       <option name="project" value="LOCAL" />
       <updated>1649868995978</updated>
     </task>
-    <option name="localTasksCounter" value="268" />
+    <task id="LOCAL-00268" summary="wait #5189 @0.25">
+      <created>1650371758882</created>
+      <option name="number" value="00268" />
+      <option name="presentableId" value="LOCAL-00268" />
+      <option name="project" value="LOCAL" />
+      <updated>1650371758882</updated>
+    </task>
+    <option name="localTasksCounter" value="269" />
     <servers />
   </component>
   <component name="TypeScriptGeneratedFilesManager">
     <option name="CHECK_CODE_SMELLS_BEFORE_PROJECT_COMMIT" value="false" />
     <option name="CHECK_NEW_TODO" value="false" />
     <option name="ADD_EXTERNAL_FILES_SILENTLY" value="true" />
-    <MESSAGE value="wip #5045 @1.1" />
     <MESSAGE value="wait #5045 @0.5" />
     <MESSAGE value="wip #5041 @3" />
     <MESSAGE value="wip #5041" />
     <MESSAGE value="wip #5161 @0.25" />
     <MESSAGE value="wait #5210 @1" />
     <MESSAGE value="wait #5188 @0.25" />
-    <option name="LAST_COMMIT_MESSAGE" value="wait #5188 @0.25" />
+    <MESSAGE value="wait #5189 @0.25" />
+    <option name="LAST_COMMIT_MESSAGE" value="wait #5189 @0.25" />
   </component>
   <component name="XSLT-Support.FileAssociations.UIState">
     <expand />
diff --git a/app/Http/Controllers/Admin/Operations/Tools/GitReposCreate.php b/app/Http/Controllers/Admin/Operations/Tools/GitReposCreate.php
new file mode 100644 (file)
index 0000000..44933aa
--- /dev/null
@@ -0,0 +1,47 @@
+<?php
+
+namespace App\Http\Controllers\Admin\Operations\Tools;
+
+use Cubist\Backpack\Magic\Fields\Checkbox;
+use Cubist\Backpack\Magic\Fields\Integer;
+use Cubist\Backpack\Magic\Fields\SelectFromArray;
+use Cubist\Backpack\Magic\Fields\StandardFile;
+use Cubist\Backpack\Magic\Fields\Text;
+use Cubist\Backpack\Magic\Form;
+use Cubist\Util\Str;
+use Prologue\Alerts\Facades\Alert;
+
+trait GitReposCreate
+{
+    public function gitreposcreate()
+    {
+        $form = new Form(backpack_url('tools/dogitreposcreate'));
+        $form->setTitle(__('Créer un répertoire GIT'));
+        $form->setSubmitLabel(__('Create'));
+        $form->setSubmitIcon('la-git');
+        $form->addField('repos', Text::class, __('Nom du répertoire'), ['prefix' => 'git@git.cubedesigners.com:', 'suffix' => '.git']);
+
+        return view('tools.form', ['form' => $form]);
+    }
+
+    public function dogitreposcreate()
+    {
+        $request = request();
+        $gitolite = storage_path('gitolite-admin');
+        if (!file_exists($gitolite) && !is_dir($gitolite)) {
+            $storage = storage_path();
+            `cd $storage;git clone git@git.cubedesigners.com:gitolite-admin.git`;
+        }
+        `cd $gitolite;git stash;git pull`;
+        $repos = Str::slug($request->get('repos'));
+        $projectsConf = $gitolite . '/conf/projects.conf';
+        $projects = trim(file_get_contents($projectsConf));
+        $projects .= "\n@allrepos = $repos\n";
+        file_put_contents($projectsConf, $projects);
+        $projects;
+        `cd $gitolite;git commit -a -m "Added $repos from Toolbox"`;
+        `cd $gitolite;git push -u origin master`;
+        Alert::add('success', __('Le répertoire :repos a été crée', ['repos' => $repos]))->flash();
+        return redirect($request->input('_referrer'));
+    }
+}
diff --git a/app/Http/Controllers/Admin/Operations/Tools/TextToSpeech.php b/app/Http/Controllers/Admin/Operations/Tools/TextToSpeech.php
new file mode 100644 (file)
index 0000000..b71b6fd
--- /dev/null
@@ -0,0 +1,43 @@
+<?php
+
+namespace App\Http\Controllers\Admin\Operations\Tools;
+
+use Cubist\Backpack\Magic\Fields\SelectFromArray;
+use Cubist\Backpack\Magic\Fields\Textarea;
+use Cubist\Backpack\Magic\Form;
+use Cubist\Azure\TTS\Api;
+use Cubist\Util\Files\Files;
+
+trait TextToSpeech
+{
+
+
+    public function tts()
+    {
+        $form = new Form(backpack_url('tools/gettts'));
+        $form->setTitle(__('Text to speech'));
+        $form->setSubmitLabel(__('Générer'));
+        $form->setSubmitIcon('la-volume-up');
+        $form->addField('voice', SelectFromArray::class, __('Voix'), ['options' => $this->_api()->listVoices(), 'default' => 'fr-FR/Female/fr-FR-DeniseNeural']);
+        $form->addField('text', Textarea::class, __('Texte'));
+
+        return view('tools.form', ['form' => $form]);
+    }
+
+    public function gettts()
+    {
+        $tmp = Files::tempnam() . '.mp3';
+        $e = explode('/', request()->get('voice'));
+        $this->_api()->textToSpeech(request()->get('text'), $e[0], $e[1], $e[2], $tmp);
+        return response()->download($tmp, 'tts.mp3')->deleteFileAfterSend(true);
+    }
+
+    /**
+     * @return Api
+     */
+    protected function _api()
+    {
+        return new Api('28fdfcdcc7f141b29cd9db4afc5779c5');
+    }
+
+}
index 6653539a3650d3fb85907d533be12da96f0476b2..a3b04ad8779cb83cea56554be3047255de3e9f42 100644 (file)
@@ -5,13 +5,17 @@ namespace App\Http\Controllers\Admin;
 
 
 use App\Http\Controllers\Admin\Operations\Tools\FluidbookAssetsDownloader;
+use App\Http\Controllers\Admin\Operations\Tools\GitReposCreate;
 use App\Http\Controllers\Admin\Operations\Tools\PDF2SVGOperation;
+use App\Http\Controllers\Admin\Operations\Tools\TextToSpeech;
 use App\Http\Controllers\Controller;
 
 class ToolsController extends Controller
 {
     use PDF2SVGOperation;
     use FluidbookAssetsDownloader;
+    use GitReposCreate;
+    use TextToSpeech;
 
     protected function index($tool, $args = '')
     {
@@ -27,6 +31,7 @@ class ToolsController extends Controller
         } else {
             return $this->$tool($args);
         }
+
     }
 
 
index b3b10270ac1fef184f19b4f227cae0eb35a1b6d1..507422c987e7110d1c2e42ffb8148b707176d042 100644 (file)
@@ -25,6 +25,7 @@
         "ext-zip": "*",
         "ahmadshah/lucy": "dev-master",
         "cubedesigners/userdatabase": "dev-master",
+        "cubist/azuretts": "dev-master",
         "cubist/cms-back": "dev-master",
         "cubist/pdf": "dev-master",
         "cubist/scorm": "dev-master",
index 45fa848e9dd612687d6ec9b042b4d4bdd4a71334..4d13254f061ca311ff4da469fef450f67b4ce65e 100644 (file)
@@ -4,7 +4,7 @@
         "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
         "This file is @generated automatically"
     ],
-    "content-hash": "7d258b656a6f4146f6af83ed5d93437c",
+    "content-hash": "a7dc918ad961ba217708348831286840",
     "packages": [
         {
             "name": "ahmadshah/lucy",
             "description": "Cubedesigners common users database",
             "time": "2022-02-28T15:49:33+00:00"
         },
+        {
+            "name": "cubist/azuretts",
+            "version": "dev-master",
+            "source": {
+                "type": "git",
+                "url": "git://git.cubedesigners.com/cubist_azuretts.git",
+                "reference": "2a05ca6b82d3ecc1c033ccff09b454e9d6114050"
+            },
+            "dist": {
+                "type": "tar",
+                "url": "https://composer.cubedesigners.com/dist/cubist/azuretts/cubist-azuretts-dev-master-8a9d19.tar",
+                "reference": "2a05ca6b82d3ecc1c033ccff09b454e9d6114050",
+                "shasum": "8d366ea46ec657789f0ec090f83d3508d8261f6b"
+            },
+            "require": {
+                "ext-json": "*",
+                "ext-mbstring": "*",
+                "guzzlehttp/guzzle": "^7.4",
+                "php": ">=7.2.5"
+            },
+            "default-branch": true,
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "Cubist\\Azure\\TTS\\": "src"
+                }
+            },
+            "license": [
+                "proprietary"
+            ],
+            "authors": [
+                {
+                    "name": "Vincent Vanwaelscappel",
+                    "email": "vincent@cubedesigners.com"
+                }
+            ],
+            "description": "Azure TTS REST API",
+            "time": "2022-01-31T18:34:38+00:00"
+        },
         {
             "name": "cubist/cms-back",
             "version": "dev-master",
     "stability-flags": {
         "ahmadshah/lucy": 20,
         "cubedesigners/userdatabase": 20,
+        "cubist/azuretts": 20,
         "cubist/cms-back": 20,
         "cubist/pdf": 20,
         "cubist/scorm": 20,
diff --git a/resources/views/tools/pdf2svg.blade.php b/resources/views/tools/pdf2svg.blade.php
deleted file mode 100644 (file)
index c6526c0..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-@extends(backpack_view('blank'))
-
-@section('content')
-    <div id="tool">
-        <h2>{{__('Convertir un fichier pdf en svg')}}</h2>
-        <form method="post" action="{{backpack_url("tools/convertpdf2svg")}}" enctype="multipart/form-data"
-              id="pdf2svg-form">
-            @csrf
-            <label>{{__('Charger un fichier pdf')}}<br><input type="file" id="pdf2svg-field" name="file"
-                                                              accept="application/pdf"></label>
-        </form>
-    </div>
-@endsection
-
-@push('after_scripts')
-    <script>
-        (function ($) {
-            $(function () {
-                $(document).on('change', '#pdf2svg-field', function () {
-                    $("#pdf2svg-form").submit();
-                });
-            })
-        })(jQuery);
-    </script>
-@endpush
index 2c22b7752b220cd44a55497fb09b0a5d305aecbe..0dd474fa6cefd192499cd8fa9a7562d17a1b71eb 100644 (file)
@@ -8,9 +8,15 @@
             <li class='nav-item'><a class='nav-link' href='{{ backpack_url('tools/fluidbookassetsdownloader') }}'><i
                         class='nav-icon las la-cloud-download-alt'></i>
                     <span>{{__('Téléchargement massif d\'assets dans un fluidbook')}}</span></a></li>
-{{--            <li class='nav-item'><a class='nav-link' href='{{ backpack_url('tools/securehosting') }}'><i--}}
-{{--                        class='nav-icon la la-lock'></i>--}}
-{{--                    <span>{{__('Sécuriser hosting')}}</span></a></li>--}}
+            <li class='nav-item'><a class='nav-link' href='{{ backpack_url('tools/gitreposcreate') }}'><i
+                        class='nav-icon la la-git'></i>
+                    <span>{{__('Créer un répertoire GIT')}}</span></a></li>
+            <li class='nav-item'><a class='nav-link' href='{{ backpack_url('tools/tts') }}'><i
+                        class='nav-icon la la-volume-up'></i>
+                    <span>{{__('Text to speech')}}</span></a></li>
+            {{--            <li class='nav-item'><a class='nav-link' href='{{ backpack_url('tools/securehosting') }}'><i--}}
+            {{--                        class='nav-icon la la-lock'></i>--}}
+            {{--                    <span>{{__('Sécuriser hosting')}}</span></a></li>--}}
         </ul>
     </li>
 @endcan