diff options
Diffstat (limited to 'index.js')
| -rw-r--r-- | index.js | 159 |
1 files changed, 159 insertions, 0 deletions
diff --git a/index.js b/index.js new file mode 100644 index 0000000..923f028 --- /dev/null +++ b/index.js @@ -0,0 +1,159 @@ +const doc = document; + +function updateClock() { + var days = [ + "sunday", + "monday", + "tuesday", + "wednesday", + "thursday", + "friday", + "saturday", + ]; + var months = [ + "january", + "february", + "march", + "april", + "may", + "june", + "july", + "august", + "september", + "october", + "november", + "december", + ]; + var m = new Date(); + var dateStr = + days[m.getDay()] + + " " + + months[m.getMonth()] + + " " + + m.getDate() + + ", " + + m.getFullYear() + + " | " + + ("0" + m.getHours()).slice(-2) + + ":" + + ("0" + m.getMinutes()).slice(-2) + + ":" + + ("0" + m.getSeconds()).slice(-2); + doc.getElementById("time").innerHTML = dateStr; + setTimeout(updateClock, 500); +} + +function weather() { + var key = "40d2bf562ba19169b08d75a16f3756c1"; + var lat = "45.53929"; + var lon = "-122.38731"; + + fetch( + `https://api.openweathermap.org/data/2.5/onecall?units=metric&lat=${lat}&lon=${lon}&exclude=minutely,hourly&appid=${key}` + ) + .then((resp) => resp.json()) + .then((data) => { + displayWeather(data); + }) + .catch((e) => { + console.log(`ERROR! ${e}`); + }); +} + +function displayWeather(data) { + var conditions = { + 200: "thunderstorms, light rain", + 201: "thunderstorms, rain", + 202: "thunderstorms, heavy rain", + 210: "light thunderstorms", + 211: "thunderstorms", + 212: "heavy thunderstorms", + 221: "ragged thunderstorms", + 230: "thunderstorms, light drizzle", + 231: "thunderstorms, drizzle", + 232: "thunderstorms, heavy drizzle", + + 300: "light drizzle", + 301: "drizzle", + 302: "heavy drizzle", + 310: "light drizzle rain", + 311: "drizzle rain", + 312: "heavy drizzle rain", + 313: "rain showers and drizzle", + 314: "heavy rain showers and drizzle", + 321: "drizzle showers", + + 500: "light rain", + 501: "rain", + 502: "heavy rain", + 503: "very heavy rain", + 504: "extreme rain", + 511: "freezing rain", + 520: "light showers", + 521: "showers", + 522: "heavy showers", + 531: "ragged showers", + + 600: "light snow", + 601: "snow", + 602: "heavy snow", + 611: "sleet", + 612: "light sleet", + 613: "sleet showers", + 615: "light rain and snow", + 616: "rain and snow, glhf", + 620: "light snow showers", + 621: "snow showers", + 622: "heavy snow showers", + + 701: "mist", + 711: "smoke", + 721: "haze", + 731: "dust", + 741: "fog", + 751: "darude sandstorm", + 761: "dust", + 762: "stark mountain ash", + 771: "squalls", + 781: "tornado", + + 800: "clear", + 801: "light clouds", + 802: "scattered clouds", + 803: "broken clouds", + 804: "overcast", + }; + + var currentWeather = `${data.current.temp.toFixed(0)}°c + ${conditions[data.current.weather[0].id]} (feels like + ${data.current.feels_like.toFixed(0)}°c)`; + + var tmrrwWeather = `${data.daily[1].temp.day.toFixed(0)}°c + ${conditions[data.daily[1].weather[0].id]} (feels like + ${data.daily[1].feels_like.day.toFixed(0)}°c)`; + + doc.getElementById("current").innerHTML += currentWeather; + doc.getElementById("tmrrw").innerHTML += tmrrwWeather; +} + +function chooseWaifu() { + // imgs = [ + // "https://safebooru.org//images/4328/bd9ffeae0248d21841160ee8e605856371d11c4f.jpg", + // "https://safebooru.org//samples/4328/sample_03c998b6ad2f7f36116699b383890ae113e64fca.jpg", + // "https://safebooru.org//samples/4328/sample_fe9ee936fdf55235fcb31a2276f23b1b581773bb.jpg", + // ]; + // doc.getElementById("waifu").src = `${ + // imgs[Math.floor(Math.random() * imgs.length)] + // }`; + fetch("https://api.waifu.im/search").then((response) => { + response.json().then((json) => { + doc.getElementById("waifu").src = json["images"][0]["url"]; + }); + }); +} + +window.onload = function () { + chooseWaifu(); + weather(); +}; +updateClock(); |