transcribe/static/index.html

98 lines
3.2 KiB
HTML

<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<title>Transcription et Résumé Audio</title>
<script src="https://cdn.jsdelivr.net/npm/showdown/dist/showdown.min.js"></script>
</head>
<body>
<h1>Transcription et Résumé Audio</h1>
<form id="uploadForm">
<input type="file" id="audioFile" accept="audio/*" required>
<input type="submit" value="Transcrire et Résumer">
</form>
<!-- Ajout du menu déroulant pour les résumés sauvegardés -->
<select id="savedTasks">
<option value="">Sélectionnez un résumé sauvegardé</option>
<!-- Les options seront ajoutées ici par JavaScript -->
</select>
<button onclick="showSavedResume()">Afficher le Résumé</button>
<div id="result"></div>
<script>
document.getElementById('uploadForm').addEventListener('submit', function(e) {
e.preventDefault();
var formData = new FormData();
formData.append('file', document.getElementById('audioFile').files[0]);
fetch('/upload', {
method: 'POST',
body: formData
})
.then(response => response.json())
.then(data => {
if (data.task_id) {
checkResult(data.task_id);
}
})
.catch(error => console.error('Erreur:', error));
});
function checkResult(taskId) {
// Afficher l'image de chargement
document.getElementById('result').innerHTML = '<img src="static/wait.png" alt="Chargement...">';
fetch(`/result/${taskId}`)
.then(response => response.json())
.then(data => {
if (data.result) {
var converter = new showdown.Converter();
var html = converter.makeHtml(data.result);
document.getElementById('result').innerHTML = html;
} else {
setTimeout(function() { checkResult(taskId); }, 2000); // Vérifier à nouveau après 2 secondes
}
})
.catch(error => console.error('Erreur:', error));
}
// Au chargement de la page, récupérer la liste des tâches sauvegardées
window.onload = function() {
fetch('/tasks')
.then(response => response.json())
.then(taskIds => {
var select = document.getElementById('savedTasks');
taskIds.forEach(taskId => {
var option = document.createElement('option');
option.value = taskId;
option.text = taskId;
select.appendChild(option);
});
});
};
// Fonction pour afficher le résumé sauvegardé sélectionné
function showSavedResume() {
var taskId = document.getElementById('savedTasks').value;
if (taskId) {
fetch(`/resume/${taskId}`)
.then(response => response.json())
.then(data => {
if (data.resume) {
var converter = new showdown.Converter();
var html = converter.makeHtml(data.resume);
document.getElementById('result').innerHTML = html;
} else {
document.getElementById('result').innerHTML = 'Résumé non trouvé.';
}
})
.catch(error => {
console.error('Erreur:', error);
document.getElementById('result').innerHTML = 'Erreur lors de la récupération du résumé.';
});
}
}
</script>
</body>
</html>