Spaces:
Running
Running
Update script.js
Browse files
script.js
CHANGED
@@ -2,19 +2,26 @@ const restaurant_no = 5;
|
|
2 |
|
3 |
function shuffle(array, seed) {
|
4 |
var m = array.length, t, i;
|
|
|
|
|
5 |
while (m) {
|
|
|
|
|
6 |
i = Math.floor(random(seed) * m--);
|
|
|
|
|
7 |
t = array[m];
|
8 |
array[m] = array[i];
|
9 |
array[i] = t;
|
10 |
++seed
|
11 |
}
|
|
|
12 |
return array;
|
13 |
-
}
|
14 |
-
|
15 |
function random(seed) {
|
16 |
-
|
17 |
-
|
18 |
}
|
19 |
|
20 |
async function fetchRestaurants() {
|
@@ -26,32 +33,40 @@ async function fetchRestaurants() {
|
|
26 |
return data;
|
27 |
}
|
28 |
|
|
|
29 |
function getRandomRestaurants(restaurants, seed) {
|
|
|
30 |
randomRestaurants = shuffle(restaurants, seed);
|
31 |
return randomRestaurants.slice(0,restaurant_no);
|
32 |
}
|
33 |
|
34 |
-
function
|
35 |
-
const today = new Date();
|
36 |
-
return today.getFullYear() * 10000 + (today.getMonth() + 1) * 100 + today.getDate();
|
37 |
-
}
|
38 |
-
|
39 |
-
async function displayRestaurants(useRandomSeed = false) {
|
40 |
const today = new Date();
|
41 |
const day = today.getDay();
|
|
|
|
|
42 |
const options = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' };
|
43 |
const formattedDate = today.toLocaleDateString(undefined, options);
|
|
|
|
|
44 |
document.getElementById('currentDate').innerText = `Today is ${formattedDate}`;
|
45 |
|
|
|
46 |
if (day === 0 || day === 6) {
|
47 |
document.getElementById('restaurants').innerHTML = "No suggestions available today!";
|
48 |
return;
|
49 |
}
|
50 |
|
|
|
|
|
51 |
try {
|
52 |
const restaurants = await fetchRestaurants();
|
53 |
-
|
|
|
|
|
54 |
const randomRestaurants = getRandomRestaurants(restaurants, seed);
|
|
|
|
|
55 |
const firstThreeRestaurants = randomRestaurants.slice(0, 3);
|
56 |
const bonusRestaurants = randomRestaurants.slice(3, 5);
|
57 |
|
@@ -62,20 +77,8 @@ async function displayRestaurants(useRandomSeed = false) {
|
|
62 |
`<a href="${restaurant[1]}" target="_blank">${restaurant[0]}</a>`
|
63 |
).join('<br>');
|
64 |
|
65 |
-
// Remove previous suggest again button
|
66 |
-
const existingButton = document.querySelector('.suggest-again-button');
|
67 |
-
if (existingButton) {
|
68 |
-
existingButton.remove();
|
69 |
-
}
|
70 |
-
|
71 |
-
// Add new suggest again button
|
72 |
-
const suggestButton = document.createElement('div');
|
73 |
-
suggestButton.classList.add('suggest-again-button');
|
74 |
-
suggestButton.style.cssText = 'text-align: center; margin-top: 20px;';
|
75 |
-
suggestButton.innerHTML = '<button onclick="displayRestaurants(true)" style="padding:8px 16px; background-color:#4CAF50; color:white; border:none; border-radius:4px; cursor:pointer;">Suggest Again</button>';
|
76 |
-
document.querySelector('.bonus-container').after(suggestButton);
|
77 |
-
|
78 |
} catch (error) {
|
|
|
79 |
const bestRestaurants = [
|
80 |
["돈비고고 (unlimited 돈까스 + 제육 (Pork) for 8.8K)", "https://naver.me/GGUfwvl9"],
|
81 |
["Taksim Kebab (Turkish, small place)", "https://maps.app.goo.gl/6rwGVo5qbT9xKZAMA"],
|
@@ -85,21 +88,8 @@ async function displayRestaurants(useRandomSeed = false) {
|
|
85 |
document.getElementById('bonusHeader').innerHTML = "";
|
86 |
document.getElementById('bonusRestaurants').innerHTML = bestRestaurants.map(restaurant =>
|
87 |
`<a href="${restaurant[1]}" target="_blank">${restaurant[0]}</a>`
|
88 |
-
).join('<br>');
|
89 |
-
|
90 |
-
// Remove previous suggest again button
|
91 |
-
const existingButton = document.querySelector('.suggest-again-button');
|
92 |
-
if (existingButton) {
|
93 |
-
existingButton.remove();
|
94 |
-
}
|
95 |
-
|
96 |
-
// Add new suggest again button
|
97 |
-
const suggestButton = document.createElement('div');
|
98 |
-
suggestButton.classList.add('suggest-again-button');
|
99 |
-
suggestButton.style.cssText = 'text-align: center; margin-top: 20px;';
|
100 |
-
suggestButton.innerHTML = '<button onclick="displayRestaurants(true)" style="padding:8px 16px; background-color:#4CAF50; color:white; border:none; border-radius:4px; cursor:pointer;">Suggest Again</button>';
|
101 |
-
document.querySelector('.bonus-container').after(suggestButton);
|
102 |
}
|
103 |
}
|
104 |
|
105 |
-
window.onload =
|
|
|
2 |
|
3 |
function shuffle(array, seed) {
|
4 |
var m = array.length, t, i;
|
5 |
+
|
6 |
+
// While there remain elements to shuffle…
|
7 |
while (m) {
|
8 |
+
|
9 |
+
// Pick a remaining element…
|
10 |
i = Math.floor(random(seed) * m--);
|
11 |
+
|
12 |
+
// And swap it with the current element.
|
13 |
t = array[m];
|
14 |
array[m] = array[i];
|
15 |
array[i] = t;
|
16 |
++seed
|
17 |
}
|
18 |
+
|
19 |
return array;
|
20 |
+
}
|
21 |
+
|
22 |
function random(seed) {
|
23 |
+
var x = Math.sin(seed++) * 10000;
|
24 |
+
return x - Math.floor(x);
|
25 |
}
|
26 |
|
27 |
async function fetchRestaurants() {
|
|
|
33 |
return data;
|
34 |
}
|
35 |
|
36 |
+
|
37 |
function getRandomRestaurants(restaurants, seed) {
|
38 |
+
// Generate three random indices based on the seed
|
39 |
randomRestaurants = shuffle(restaurants, seed);
|
40 |
return randomRestaurants.slice(0,restaurant_no);
|
41 |
}
|
42 |
|
43 |
+
async function displayRestaurants() {
|
|
|
|
|
|
|
|
|
|
|
44 |
const today = new Date();
|
45 |
const day = today.getDay();
|
46 |
+
|
47 |
+
// Format the date
|
48 |
const options = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' };
|
49 |
const formattedDate = today.toLocaleDateString(undefined, options);
|
50 |
+
|
51 |
+
// Display the date
|
52 |
document.getElementById('currentDate').innerText = `Today is ${formattedDate}`;
|
53 |
|
54 |
+
// Only display suggestions on weekdays
|
55 |
if (day === 0 || day === 6) {
|
56 |
document.getElementById('restaurants').innerHTML = "No suggestions available today!";
|
57 |
return;
|
58 |
}
|
59 |
|
60 |
+
const dateKey = today.toISOString().split('T')[0];
|
61 |
+
|
62 |
try {
|
63 |
const restaurants = await fetchRestaurants();
|
64 |
+
console.log('Fetched Restaurants:', restaurants); // Debugging: Print fetched restaurants
|
65 |
+
const seed = today.getFullYear() * 10000 + (today.getMonth() + 1) * 100 + today.getDate(); // Create a seed from the date
|
66 |
+
console.log('Random seed per day: ', seed);
|
67 |
const randomRestaurants = getRandomRestaurants(restaurants, seed);
|
68 |
+
console.log('Random Restaurants:', randomRestaurants); // Debugging: Print random restaurants
|
69 |
+
|
70 |
const firstThreeRestaurants = randomRestaurants.slice(0, 3);
|
71 |
const bonusRestaurants = randomRestaurants.slice(3, 5);
|
72 |
|
|
|
77 |
`<a href="${restaurant[1]}" target="_blank">${restaurant[0]}</a>`
|
78 |
).join('<br>');
|
79 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
80 |
} catch (error) {
|
81 |
+
console.error('Error fetching restaurants:', error);
|
82 |
const bestRestaurants = [
|
83 |
["돈비고고 (unlimited 돈까스 + 제육 (Pork) for 8.8K)", "https://naver.me/GGUfwvl9"],
|
84 |
["Taksim Kebab (Turkish, small place)", "https://maps.app.goo.gl/6rwGVo5qbT9xKZAMA"],
|
|
|
88 |
document.getElementById('bonusHeader').innerHTML = "";
|
89 |
document.getElementById('bonusRestaurants').innerHTML = bestRestaurants.map(restaurant =>
|
90 |
`<a href="${restaurant[1]}" target="_blank">${restaurant[0]}</a>`
|
91 |
+
).join('<br>') + "<br><br>";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
92 |
}
|
93 |
}
|
94 |
|
95 |
+
window.onload = displayRestaurants;
|