Spaces:
Running
Running
File size: 2,958 Bytes
1960505 a8c2362 a8504b7 a8c2362 1960505 a8c2362 1960505 a8c2362 1960505 |
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 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
async function fetchRestaurants() {
const response = await fetch('restaurants.json');
if (!response.ok) {
throw new Error('Network response was not ok ' + response.statusText);
}
const data = await response.json();
return data;
}
function seededRandom(seed) {
var x = Math.sin(seed++) * 10000;
return x - Math.floor(x);
}
function getRandomRestaurants(restaurants, seed) {
// Generate three random indices based on the seed
const indices = [];
for (let i = 0; i < 3; i++) {
const randomIndex = Math.floor(seededRandom(seed + i) * restaurants.length);
indices.push(randomIndex);
}
// Get the corresponding restaurants
const randomRestaurants = indices.map(index => restaurants[index]);
return randomRestaurants;
}
async function displayRestaurants() {
const today = new Date();
const day = today.getDay();
// Format the date
const options = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' };
const formattedDate = today.toLocaleDateString(undefined, options);
// Display the date
document.getElementById('currentDate').innerText = `Today is ${formattedDate}`;
// Only display suggestions on weekdays
if (day === 0 || day === 6) {
document.getElementById('restaurants').innerHTML = "No suggestions available today!";
return;
}
const dateKey = today.toISOString().split('T')[0];
let savedData = localStorage.getItem('restaurantSuggestions');
if (savedData) {
savedData = JSON.parse(savedData);
if (savedData.date === dateKey) {
document.getElementById('restaurants').innerHTML = savedData.restaurants.map(restaurant =>
`<a href="${restaurant[1]}" target="_blank">${restaurant[0]}</a>`
).join('<br>');
return;
}
}
try {
const restaurants = await fetchRestaurants();
console.log('Fetched Restaurants:', restaurants); // Debugging: Print fetched restaurants
const seed = today.getFullYear() * 10000 + (today.getMonth() + 1) * 100 + today.getDate(); // Create a seed from the date
const randomRestaurants = getRandomRestaurants(restaurants, seed);
console.log('Random Restaurants:', randomRestaurants); // Debugging: Print random restaurants
document.getElementById('restaurants').innerHTML = randomRestaurants.map(restaurant =>
`<a href="${restaurant[1]}" target="_blank">${restaurant[0]}</a>`
).join('<br>');
const dataToSave = {
date: dateKey,
restaurants: randomRestaurants
};
localStorage.setItem('restaurantSuggestions', JSON.stringify(dataToSave));
} catch (error) {
console.error('Error fetching restaurants:', error);
document.getElementById('restaurants').innerHTML = "Failed to load restaurant suggestions.";
}
}
window.onload = displayRestaurants;
|