Article description: (description ) This attribute controls the content of the description and og:description elements. | // Data structure for critters and their availability
const critters = {
"Emerald Sunbird": { "Sunday": "12 PM to 12 AM", "Tuesday": "All day", "Wednesday": "All day", "Saturday": "All day" },
"Golden Sunbird": { "Sunday": "12 AM to 12 PM", "Tuesday": "All day", "Thursday": "All day", "Friday": "All day" },
"Orchid Sunbird": { "Friday": "9 AM to 3 PM" },
"Red Sunbird": { "Sunday": "12 PM to 12 AM", "Monday": "All day", "Thursday": "All day", "Saturday": "All day" },
"Turquoise Sunbird": { "Sunday": "12 AM to 12 PM", "Monday": "All day", "Wednesday": "All day", "Friday": "All day" },
"Black Squirrel": { "Sunday": "12 AM to 12 PM", "Tuesday": "All day", "Thursday": "All day", "Friday": "All day" },
"Classic Squirrel": { "Sunday": "12 PM to 12 AM", "Monday": "All day", "Thursday": "All day", "Saturday": "All day" },
"Gray Squirrel": { "Sunday": "12 PM to 12 AM", "Tuesday": "All day", "Wednesday": "All day", "Saturday": "All day" },
"Red Squirrel": { "Sunday": "12 AM to 12 PM", "Monday": "All day", "Wednesday": "All day", "Friday": "All day" },
"White Squirrel": { "Sunday": "12 AM to 6 AM" },
"Blue Crocodile": { "Sunday": "12 AM to 12 PM", "Monday": "All day", "Wednesday": "All day", "Friday": "All day" },
"Classic Crocodile": { "Sunday": "12 PM to 12 AM", "Monday": "All day", "Thursday": "All day", "Saturday": "All day" },
"Golden Crocodile": { "Sunday": "12 AM to 12 PM", "Tuesday": "All day", "Thursday": "All day", "Friday": "All day" },
"Pink Crocodile": { "Saturday": "6 AM to 12 PM" },
"Red Crocodile": { "Sunday": "12 PM to 12 AM", "Tuesday": "All day", "Wednesday": "All day", "Saturday": "All day" },
"White Crocodile": { "Sunday": "6 PM to 12 AM" },
"Black Rabbit": { "Sunday": "12 AM to 12 PM", "Monday": "All day", "Wednesday": "All day", "Friday": "All day" },
"Brown Rabbit": { "Sunday": "12 PM to 12 AM", "Tuesday": "All day", "Wednesday": "All day", "Saturday": "All day" },
"Calico Rabbit": { "Thursday": "8 AM to 2 PM" },
"Classic Rabbit": { "Sunday": "12 PM to 12 AM", "Monday": "All day", "Thursday": "All day", "Saturday": "All day" },
"White Rabbit": { "Sunday": "12 AM to 12 PM", "Tuesday": "All day", "Thursday": "All day", "Friday": "All day" },
"Blue Raven": { "Sunday": "12 AM to 12 PM", "Tuesday": "All day", "Thursday": "All day", "Friday": "All day" },
"Brown Raven": { "Tuesday": "6 PM to 12 AM" },
"Classic Raven": { "Sunday": "12 PM to 12 AM", "Monday": "All day", "Thursday": "All day", "Saturday": "All day" },
"Red Raven": { "Sunday": "12 AM to 12 PM", "Monday": "All day", "Wednesday": "All day", "Friday": "All day" },
"White Raven": { "Sunday": "12 PM to 12 AM", "Tuesday": "All day", "Wednesday": "All day", "Saturday": "All day" },
"Black Sea Turtle": { "Monday": "10 AM to 4 PM" },
"Brown Sea Turtle": { "Sunday": "12 AM to 12 PM", "Monday": "All day", "Wednesday": "All day", "Friday": "All day" },
"Classic Sea Turtle": { "Sunday": "12 PM to 12 AM", "Monday": "All day", "Thursday": "All day", "Saturday": "All day" },
"Purple Sea Turtle": { "Sunday": "12 AM to 12 PM", "Tuesday": "All day", "Thursday": "All day", "Friday": "All day" },
"White Sea Turtle": { "Sunday": "12 PM to 12 AM", "Tuesday": "All day", "Wednesday": "All day", "Saturday": "All day" },
"Black Fox": { "Sunday": "12 PM to 12 AM", "Tuesday": "All day", "Wednesday": "All day", "Saturday": "All day" },
"Blue Fox": { "Sunday": "12 AM to 12 PM", "Tuesday": "All day", "Thursday": "All day", "Friday": "All day" },
"Classic Fox": { "Sunday": "12 AM to 12 PM", "Monday": "All day", "Wednesday": "All day", "Friday": "All day" },
"Red Fox": { "Saturday": "2 AM to 8 AM" },
"White Fox": { "Sunday": "12 PM to 12 AM", "Monday": "All day", "Thursday": "All day", "Saturday": "All day" },
"Black Raccoon": { "Sunday": "12 PM to 12 AM", "Tuesday": "All day", "Wednesday": "All day", "Saturday": "All day" },
"Blue Raccoon": { "Wednesday": "4 PM to 10 PM" },
"Classic Raccoon": { "Sunday": "12 PM to 12 AM", "Monday": "All day", "Thursday": "All day", "Saturday": "All day" },
"Red Raccoon": { "Sunday": "12 AM to 12 PM", "Monday": "All day", "Wednesday": "All day", "Friday": "All day" },
"White Raccoon": { "Sunday": "12 AM to 12 PM", "Tuesday": "All day", "Thursday": "All day", "Friday": "All day" },
"Black and White Capybara": { "Sunday": "12 PM to 12 AM", "Tuesday": "All day", "Thursday": "12 PM to 12 AM", "Friday": "12 PM to 12 AM", "Saturday": "12 PM to 12 AM" },
"Blue Striped Capybara": { "Monday": "12 AM to 12 PM", "Tuesday": "12 AM to 12 PM", "Wednesday": "12 AM to 12 PM", "Thursday": "All day", "Saturday": "All day" },
"Classic Capybara": { "Sunday": "All day", "Monday": "All day", "Tuesday": "All day", "Wednesday": "All day", "Thursday": "All day", "Friday": "All day", "Saturday": "All day" },
"Gray Spotted Capybara": { "Monday": "12 PM to 12 AM", "Tuesday": "12 PM to 12 AM", "Wednesday": "12 PM to 12 AM", "Friday": "All day", "Saturday": "All day" },
"Red and White Striped Capybara": { "Saturday": "12 PM to 6 PM" },
"Blue and Red Striped Cobra": { "Sunday": "All day", "Monday": "12 PM to 12 AM", "Tuesday": "12 PM to 12 AM", "Thursday": "All day", "Saturday": "12 PM to 12 AM" },
"Classic Cobra": { "Sunday": "All day", "Monday": "All day", "Tuesday": "All day", "Wednesday": "All day", "Thursday": "All day", "Friday": "All day", "Saturday": "All day" },
"Green and White Striped Cobra": { "Thursday": "6 AM to 12 PM" },
"Pink Spotted Cobra": { "Sunday": "12 AM to 12 PM", "Monday": "All day", "Wednesday": "12 AM to 12 PM", "Thursday": "12 AM to 12 PM", "Friday": "All day" },
"Yellow and Purple Striped Cobra": { "Sunday": "12 PM to 12 AM", "Tuesday": "All day", "Wednesday": "12 PM to 12 AM", "Thursday": "12 PM to 12 AM", "Saturday": "All day" },
"Beige Monkey": { "Sunday": "All day", "Monday": "12 PM to 12 AM", "Wednesday": "12 PM to 12 AM", "Thursday": "All day", "Friday": "12 PM to 12 AM" },
"Black and Brown Monkey": { "Sunday": "12 PM to 12 AM", "Tuesday": "12 PM to 12 AM", "Wednesday": "All day", "Thursday": "12 PM to 12 AM", "Saturday": "All day" },
"Black and Gray Monkey": { "Tuesday": "6 PM to 12 AM" },
"Classic Monkey": { "Sunday": "All day", "Monday": "All day", "Tuesday": "All day", "Wednesday": "All day", "Thursday": "All day", "Friday": "All day", "Saturday": "All day" },
"Red and Beige Monkey": { "Monday": "12 AM to 12 PM", "Tuesday": "All day", "Wednesday": "12 AM to 12 PM", "Friday": "12 AM to 12 PM", "Saturday": "All day" }
};
function isAvailable(critter, day, hour) {
const availability = critters[critter][day];
if (!availability) return false; // 'n/a' or undefined
if (availability === 'All day') return true;
const [start, end] = availability.split(' to ');
const startHour = parseHour(start);
const endHour = parseHour(end);
return hour >= startHour && hour < endHour;
}
function parseHour(timeStr) {
const [time, period] = timeStr.split(' ');
let [hours, minutes] = time.split(':');
hours = parseInt(hours);
if (period === 'PM' && hours !== 12) hours += 12;
if (period === 'AM' && hours === 12) hours = 0;
return hours;
}
function updateCritterList() {
const now = new Date();
const dayOfWeek = now.toLocaleString('en-US', { weekday: 'long' });
const hour = now.getHours();
let listContent = '';
Object.entries(critters).forEach(([critterName, _]) => {
if (isAvailable(critterName, dayOfWeek, hour)) {
listContent += `{{name|${critterName}}}`;
}
});
parseContent(listContent);
}
function parseContent(wikitext) {
const apiEndpoint = "/api.php";
const params = new URLSearchParams({
action: 'parse',
format: 'json',
contentmodel: 'wikitext',
text: wikitext,
prop: 'text'
});
fetch(apiEndpoint + "?" + params.toString(), {
method: 'POST',
credentials: 'same-origin'
})
.then(response => response.json())
.then(data => {
const parsedHtml = data.parse.text['*'];
document.getElementById('critterList').innerHTML = parsedHtml;
})
.catch(error => console.error('Error parsing content:', error));
}
window.addEventListener('load', function() {
updateCritterList(); // Initial update
setInterval(updateCritterList, 60000); // Refresh every minute
}); |