|
|
|
|
|
async function summarizeText() { |
|
|
clearMessages(); |
|
|
const text = document.getElementById("inputText").value; |
|
|
const btn = document.getElementById("summTextBtn"); |
|
|
btn.disabled = true; |
|
|
btn.innerText = "Summarizing..."; |
|
|
try { |
|
|
const response = await fetch("/summarize/text", { |
|
|
method: "POST", |
|
|
headers: {"Content-Type": "application/json"}, |
|
|
body: JSON.stringify({ text }) |
|
|
}); |
|
|
if (!response.ok) { |
|
|
const err = await response.json(); |
|
|
showError(err.detail || "Error during summarization."); |
|
|
return; |
|
|
} |
|
|
const data = await response.json(); |
|
|
document.getElementById("summaryBox").innerText = data.summary; |
|
|
} catch (e) { |
|
|
showError(e.message || "Network error."); |
|
|
} finally { |
|
|
btn.disabled = false; |
|
|
btn.innerText = "Summarize Text"; |
|
|
} |
|
|
} |
|
|
|
|
|
async function summarizePDF() { |
|
|
clearMessages(); |
|
|
const fileInput = document.getElementById("pdfFile"); |
|
|
if (!fileInput.files.length) { |
|
|
showError("Please select a PDF file first."); |
|
|
return; |
|
|
} |
|
|
const file = fileInput.files[0]; |
|
|
const formData = new FormData(); |
|
|
formData.append("file", file); |
|
|
|
|
|
const btn = document.getElementById("summPdfBtn"); |
|
|
btn.disabled = true; |
|
|
btn.innerText = "Summarizing..."; |
|
|
|
|
|
try { |
|
|
const response = await fetch("/summarize/pdf", { |
|
|
method: "POST", |
|
|
body: formData |
|
|
}); |
|
|
if (!response.ok) { |
|
|
const err = await response.json(); |
|
|
showError(err.detail || "Error during PDF summarization."); |
|
|
return; |
|
|
} |
|
|
const data = await response.json(); |
|
|
document.getElementById("summaryBox").innerText = data.summary; |
|
|
} catch (e) { |
|
|
showError(e.message || "Network error."); |
|
|
} finally { |
|
|
btn.disabled = false; |
|
|
btn.innerText = "Summarize PDF"; |
|
|
} |
|
|
} |
|
|
|
|
|
function showError(msg) { |
|
|
const errBox = document.getElementById("errorBox"); |
|
|
errBox.hidden = false; |
|
|
errBox.innerText = msg; |
|
|
} |
|
|
|
|
|
function clearMessages() { |
|
|
document.getElementById("summaryBox").innerText = ""; |
|
|
const errBox = document.getElementById("errorBox"); |
|
|
errBox.hidden = true; |
|
|
errBox.innerText = ""; |
|
|
} |
|
|
|
|
|
function copySummary() { |
|
|
const text = document.getElementById("summaryBox").innerText; |
|
|
if (!text) { |
|
|
alert("There's no summary to copy."); |
|
|
return; |
|
|
} |
|
|
navigator.clipboard.writeText(text).then(() => { |
|
|
alert("Summary copied to clipboard."); |
|
|
}).catch(() => { |
|
|
alert("Failed to copy summary."); |
|
|
}); |
|
|
} |
|
|
|