Empereur / static /script.js
Empereur-Pirate's picture
Update static/script.js
1bfee90 verified
raw
history blame
2.03 kB
// Remove the hidden class
function revealContent() {
const loader = document.getElementById('loader');
const textGenContainer = document.getElementById('text-gen-container');
loader.classList.remove('hidden');
textGenContainer.classList.remove('hidden');
}
// Call the function once the DOM is loaded
document.addEventListener('DOMContentLoaded', () => {
// Connect to the endpoint and parse JSON response
const initConnection = async () => {
try {
// Fetch the endpoint
const connectionResult = await fetch('/infer_t5');
// Parse the JSON response
if (!connectionResult.ok) {
throw Error(await connectionResult.text());
}
const json = await connectionResult.json();
console.log(json);
} catch (err) {
// Display the err object and wait for 2 sec before retrying
console.error(err);
setTimeout(() => initConnection(), 2000);
return;
} finally {
// Clear timeouts and intervals
clearTimeout(timeoutId);
clearInterval(intervalId);
}
// Connection established, remove loader animation
revealContent();
};
// Timeout logic for waiting for endpoint availability
let timeoutId, intervalId;
timeoutId = setTimeout(() => {
intervalId = setInterval(() => {
console.warn('Endpoint timed out, retrying...');
initConnection();
}, 2000);
}, 5000);
// Attempt to connect to the endpoint
initConnection();
});
const textGenForm = document.querySelector(".text-gen-form");
const translateText = async (text) => {
const inferResponse = await fetch(`/infer_t5?input=${encodeURIComponent(text)}`);
const inferJson = await inferResponse.json();
return inferJson.output;
};
textGenForm.addEventListener("submit", async (event) => {
event.preventDefault();
const textGenInput = document.getElementById("text-gen-input");
const textGenParagraph = document.querySelector(".text-gen-output");
textGenParagraph.textContent = await translateText(textGenInput.value);
});