2023-11-23 21:21:34 +00:00
|
|
|
<!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>
|
2023-11-28 10:04:10 +00:00
|
|
|
<!-- 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>
|
2023-11-23 21:21:34 +00:00
|
|
|
<div id="result"></div>
|
|
|
|
|
|
|
|
<script>
|
2023-11-28 10:04:10 +00:00
|
|
|
document.getElementById('uploadForm').addEventListener('submit', function(e) {
|
2023-11-23 21:21:34 +00:00
|
|
|
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) {
|
2023-11-28 10:04:10 +00:00
|
|
|
// Afficher l'image de chargement
|
|
|
|
document.getElementById('result').innerHTML = '<img src="static/wait.png" alt="Chargement...">';
|
|
|
|
|
2023-11-23 21:21:34 +00:00
|
|
|
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));
|
|
|
|
}
|
2023-11-28 10:04:10 +00:00
|
|
|
|
|
|
|
// 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é.';
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|
2023-11-23 21:21:34 +00:00
|
|
|
</script>
|
|
|
|
</body>
|
|
|
|
</html>
|