first commit

This commit is contained in:
hayato5246
2026-03-31 19:32:59 +09:00
commit d10b794c9f
78 changed files with 1671595 additions and 0 deletions

49
static/js/news.js Normal file
View File

@@ -0,0 +1,49 @@
// RFC1123Z → "MM/DD HH:MM" 형식으로 변환
function formatNewsDate(s) {
if (!s) return '';
const d = new Date(s);
if (isNaN(d)) return s;
const mm = String(d.getMonth() + 1).padStart(2, '0');
const dd = String(d.getDate()).padStart(2, '0');
const hh = String(d.getHours()).padStart(2, '0');
const min = String(d.getMinutes()).padStart(2, '0');
return `${mm}/${dd} ${hh}:${min}`;
}
async function loadNews() {
try {
const resp = await fetch(`/api/news?name=${encodeURIComponent(STOCK_NAME)}`);
if (!resp.ok) throw new Error();
const list = await resp.json();
document.getElementById('newsLoading').classList.add('hidden');
if (!list || list.length === 0) {
document.getElementById('newsEmpty').classList.remove('hidden');
return;
}
const ul = document.getElementById('newsList');
list.forEach(item => {
const li = document.createElement('li');
li.className = 'py-3';
li.innerHTML = `<a href="${item.url}" target="_blank" rel="noopener noreferrer"
class="flex items-start gap-3 hover:bg-gray-50 px-1 rounded transition-colors">
<div class="flex-1 min-w-0">
<p class="text-sm text-gray-800 truncate">${item.title}</p>
<p class="text-xs text-gray-400 mt-0.5">${item.source}</p>
</div>
<span class="text-xs text-gray-400 shrink-0 mt-0.5">${formatNewsDate(item.publishedAt)}</span>
</a>`;
ul.appendChild(li);
});
ul.classList.remove('hidden');
} catch {
document.getElementById('newsLoading').classList.add('hidden');
document.getElementById('newsError').classList.remove('hidden');
}
}
document.addEventListener('DOMContentLoaded', () => {
if (typeof STOCK_NAME !== 'undefined') loadNews();
});