mirror of
https://github.com/JMP-MS/ASPIC.git
synced 2026-10-27 16:07:10 +00:00
82 lines
3.1 KiB
PHP
82 lines
3.1 KiB
PHP
<?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]);
|