mirror of
https://github.com/JMP-MS/ASPIC.git
synced 2026-10-27 18:17:09 +00:00
V1.005 Débuts de l'intégration de la voix
This commit is contained in:
@@ -0,0 +1,81 @@
|
||||
<?php
|
||||
/**
|
||||
* ASPIC — lilou_notes.php
|
||||
*
|
||||
* Étape 1 du pilotage vocal, volontairement "sans interprétation" (1er
|
||||
* septembre 2026, décision de Jean-Marc) : reçoit le texte dicté à Lilou
|
||||
* entre une phrase d'ouverture ("Lilou, ajoute une tâche...", "Lilou, un
|
||||
* truc à faire...", "Lilou, note ça dans ma todolist...") et une phrase de
|
||||
* clôture ("c'est tout Lilou") ou d'annulation ("Lilou annule"), et
|
||||
* l'ajoute tel quel à un fichier texte global — aucune tentative de
|
||||
* compréhension ici, y compris pour une annulation : on note ce qui a été
|
||||
* dit, point (demande explicite de Jean-Marc). Objectif : accumuler un
|
||||
* vrai corpus d'essais réels avant de définir des règles d'interprétation
|
||||
* (étape 2, envisagée via n8n, avec des règles modifiables par
|
||||
* l'utilisateur — voir réflexions stratégiques, section à venir sur le
|
||||
* pilotage vocal), plutôt que de deviner ces règles à l'avance.
|
||||
*
|
||||
* POST uniquement, corps JSON : { "lignes": ["...", "..."] }
|
||||
* (un tableau d'une ligne par phrase dictée, "ensuite" déjà retiré côté
|
||||
* micro.js).
|
||||
*
|
||||
* Stockage provisoire (2 septembre 2026) : en plein déblocage d'un souci de
|
||||
* droits d'écriture sur le sous-dossier notes_lilou/ (propriétaire
|
||||
* 1001:users, www-data hors de ce groupe), le fichier de sortie est
|
||||
* temporairement écrit directement à la racine de l'appli
|
||||
* (dictees.txt, à côté de ce script) plutôt que dans notes_lilou/ — le
|
||||
* temps de confirmer que le circuit complet fonctionne. Conséquence
|
||||
* assumée pour ce soir : ce fichier n'est plus protégé par le .htaccess
|
||||
* (qui ne couvre que notes_lilou/), donc techniquement accessible par son
|
||||
* URL directe s'il est deviné. À remettre dans notes_lilou/ (avec les
|
||||
* droits corrigés) une fois le test concluant — ne pas oublier.
|
||||
*
|
||||
* Session utilisateur : accès réservé aux utilisateurs identifiés, même
|
||||
* principe que les autres endpoints (todolist.php, contacts.php...).
|
||||
*/
|
||||
|
||||
session_start();
|
||||
header('Content-Type: application/json; charset=utf-8');
|
||||
|
||||
if (empty($_SESSION['USR_Code'])) {
|
||||
http_response_code(401);
|
||||
echo json_encode(['error' => 'Non identifié — veuillez vous connecter.']);
|
||||
exit;
|
||||
}
|
||||
|
||||
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
|
||||
http_response_code(405);
|
||||
echo json_encode(['error' => 'Méthode non autorisée']);
|
||||
exit;
|
||||
}
|
||||
|
||||
$data = json_decode(file_get_contents('php://input'), true) ?? [];
|
||||
$lignes = $data['lignes'] ?? [];
|
||||
|
||||
if (!is_array($lignes) || count($lignes) === 0) {
|
||||
http_response_code(400);
|
||||
echo json_encode(['error' => 'Aucune ligne à enregistrer']);
|
||||
exit;
|
||||
}
|
||||
|
||||
$fichier = __DIR__ . '/dictees.txt';
|
||||
|
||||
$horodatage = date('d/m/Y H:i:s');
|
||||
$bloc = '=== ' . $horodatage . ' — ' . $_SESSION['USR_Code'] . " ===\n";
|
||||
foreach ($lignes as $ligne) {
|
||||
$ligne = trim((string) $ligne);
|
||||
if ($ligne === '') {
|
||||
continue;
|
||||
}
|
||||
$bloc .= ' ' . $ligne . "\n";
|
||||
}
|
||||
$bloc .= "\n";
|
||||
|
||||
$ok = file_put_contents($fichier, $bloc, FILE_APPEND | LOCK_EX);
|
||||
if ($ok === false) {
|
||||
http_response_code(500);
|
||||
echo json_encode(['error' => "Impossible d'écrire dans le fichier de notes"]);
|
||||
exit;
|
||||
}
|
||||
|
||||
echo json_encode(['success' => true]);
|
||||
Reference in New Issue
Block a user