-
Notifications
You must be signed in to change notification settings - Fork 3
/
script.js
63 lines (54 loc) · 2.34 KB
/
script.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
async function fetchQuoteData() {
document.getElementById('quote-card').classList.add('hidden');
document.getElementById('loadingCard').classList.remove('hidden');
try {
const response = await fetch('https://qts-api.caliph.workers.dev/api/generate/quotes-anime');
const quote = await response.json();
const charImage = document.getElementById('charImage');
const imageLoader = document.getElementById('imageLoader');
charImage.style.display = 'none';
imageLoader.style.display = 'block';
const img = new Image();
img.src = quote.img;
img.onload = () => {
charImage.src = quote.img;
charImage.style.display = 'block';
imageLoader.style.display = 'none';
};
img.onerror = () => {
charImage.style.display = 'none';
imageLoader.style.display = 'none';
}
document.title = `${quote.quotes} - ${quote.char_name}`;
document.getElementById('charName').textContent = quote.char_name;
document.getElementById('quote').textContent = `"${quote.quotes}"`;
document.getElementById('anime').textContent = `Anime: ${quote.anime}`;
document.getElementById('episode').textContent = `Episode: ${quote.episode}`;
document.getElementById('date').textContent = `Date: ${quote.date}`;
} catch (error) {
console.error('Error fetching data:', error);
} finally {
document.getElementById('loadingCard').classList.add('hidden');
document.getElementById('quote-card').classList.remove('hidden');
}
}
document.getElementById('newQuote').addEventListener('click', () => {
fetchQuoteData();
document.getElementById('quote-card').classList.add('animate__animated', 'animate__bounce');
setTimeout(() => {
document.getElementById('quote-card').classList.remove('animate__bounce');
}, 500);
});
document.getElementById('shareQuote').addEventListener('click', async () => {
const quote = document.getElementById('quote').textContent;
const charName = document.getElementById('charName').textContent;
const shareData = {
title: 'Anime Quote',
text: `${quote} - ${charName}`,
};
try {
await navigator.share(shareData);
} catch (error) {
console.error('Share API error:', error);
}
});