|
document.addEventListener('DOMContentLoaded', function() { |
|
const diaryForm = document.querySelector('form'); |
|
const keywordsInput = document.querySelector('textarea'); |
|
const resultDiv = document.querySelector('#result'); |
|
const generateButton = document.querySelector('button'); |
|
const loadingContainer = document.querySelector('#loading-container'); |
|
const progressBar = document.querySelector('.progress-bar'); |
|
|
|
diaryForm.addEventListener('submit', async function(e) { |
|
e.preventDefault(); |
|
|
|
const keywords = keywordsInput.value.trim(); |
|
if (!keywords) { |
|
resultDiv.textContent = "ν€μλλ₯Ό μ
λ ₯ν΄μ£ΌμΈμ"; |
|
return; |
|
} |
|
|
|
try { |
|
generateButton.disabled = true; |
|
resultDiv.textContent = ""; |
|
loadingContainer.style.display = 'block'; |
|
progressBar.style.width = '0%'; |
|
|
|
|
|
progressBar.style.animation = 'progress 30s linear'; |
|
|
|
const API_URL = 'http://your-ec2-instance-ip:5000'; |
|
|
|
const response = await fetch(`${API_URL}/api/generate-diary`, { |
|
method: 'POST', |
|
headers: { |
|
'Content-Type': 'application/json', |
|
'Accept': 'application/json' |
|
}, |
|
body: JSON.stringify({ |
|
keywords: keywords |
|
}) |
|
}); |
|
|
|
if (!response.ok) { |
|
const errorText = await response.text(); |
|
throw new Error(`μλ² μλ΅ μ€λ₯: ${response.status}`); |
|
} |
|
|
|
const data = await response.json(); |
|
|
|
if (data.error) { |
|
resultDiv.textContent = `μ€λ₯: ${data.error}`; |
|
} else { |
|
resultDiv.textContent = data.diary || 'μΌκΈ° μμ±μ μ€ν¨νμ΅λλ€.'; |
|
} |
|
} catch (error) { |
|
resultDiv.textContent = `μ€λ₯κ° λ°μνμ΅λλ€: ${error.message}`; |
|
} finally { |
|
generateButton.disabled = false; |
|
loadingContainer.style.display = 'none'; |
|
progressBar.style.animation = 'none'; |
|
} |
|
}); |
|
}); |
|
|