123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199 |
- // Gets all the videos uploaded to SkibidiHub
- async function getAllVideos() {
- return await axios.get("/api/getAllVideos").then(response => {
- return response.data;
- }).catch(error => {
- throw new Error(`getAllVideos() error: ${error}`);
- });
- }
- async function sunset() {
- return await axios.get("/api/sunset").then(response => {
- return response.data;
- }).catch(error => {
- throw new Error(`sunset(): error: ${error}`);
- })
- }
- function checkSunset(timestamp) {
- const countDownTime = timestamp
- const currentTime = new Date().getTime();
- return (countDownTime - currentTime) < 1
- }
- function updateTime(timestamp) {
- const countDownTime = timestamp
- const currentTime = new Date().getTime();
- var delta = Math.abs(countDownTime - currentTime) / 1000;
- var days = Math.floor(delta / 86400);
- delta -= days * 86400;
- var hours = Math.floor(delta / 3600) % 24;
- delta -= hours * 3600;
- var minutes = Math.floor(delta / 60) % 60;
- delta -= minutes * 60;
- var seconds = Math.floor(delta % 60); // in theory the modulus is not required
- document.getElementById("sunset-countdown").innerText = `${days} days, ${hours} hours, ${minutes} minutes, ${seconds} seconds`;
- }
- // Gets all the videos uploaded to SkibidiHub and sorts them randomly. (This is our algorithm)
- async function getRandomVideos(limit) {
- let videos = await getAllVideos();
- let newVideos = [];
- for (let i = 0; i < limit; i++) {
- if (videos.length < 1) continue; // If there are no more videos then do not run the code below
- let index = getRandomInt(videos.length);
- let video = videos[index];
- newVideos.push(video);
- videos.splice(index, 1); // Remove video from the list of videos
- }
- return newVideos;
- }
- // Returns a random int up to a set limit.
- function getRandomInt(max) {
- return Math.floor(Math.random() * max);
- }
- function badong() {
- document.getElementById("badong").play();
- setTimeout(badong, 4000);
- }
- document.addEventListener("DOMContentLoaded", async () => {
- const countdown = await sunset();
- if (countdown.sunset) { // Doom
- updateTime(countdown.timestamp)
- document.getElementById("sunset").style.display = "block";
- setInterval(() => {updateTime(countdown.timestamp)}, 1000)
- const container = document.getElementById("sunset-container");
- container.classList.remove("disabled")
- container.addEventListener("click", () => {
- if(checkSunset()) {
- } else {
- container.classList.add("disabled");
- window.scrollTo(0, 0)
- badong()
- }
- })
- }
- document.getElementById("account-button-anchor").href = `/user/${encodeURIComponent(Cookies.get('user'))}`
- if (Cookies.get("user") != null) {
- document.getElementById("login-button").classList.add("disabled");
- document.getElementById("logout-button").classList.remove("disabled");
- document.getElementById("upload-button").classList.remove("disabled");
- document.getElementById("account-button").classList.remove("disabled");
- document.getElementById("sign-in-msg").classList.add("disabled");
- }
- // john pork code
- if(johnPork()) {
- const container = document.getElementById("john-pork-container");
- container.classList.remove("disabled");
- container.addEventListener("click", handleJohnPorkClick);
- document.getElementById("john-pork-accept").addEventListener("click", () => {
- document.getElementById("john-pork").remove();
- document.getElementById("john-pork-ringtone").remove();
- document.getElementById("john-pork-call").classList.remove("disabled");
- document.getElementById("john-pork-accept").play();
- setTimeout(() => {
- container.remove();
- }, 3000);
- })
- document.getElementById("john-pork-decline").addEventListener("click", () => {
- container.remove();
- setTimeout(() => {
- alert("NEW MESSAGE (1) FROM John Pork:\nWe need to talk.")
- setTimeout(() => {
- alert("NEW MESSAGE (2) FROM John Pork:\nGet your ass downstairs now!")
- }, 3000)
- }, 3000)
- })
- }
- const videos = await getRandomVideos(30);
- videos.forEach(video => {
- makeVideo(video.id, video)
- })
- });
- function handleJohnPorkClick() {
- document.getElementById("john-pork").classList.remove("disabled");
- document.getElementById("john-pork-ringtone").play();
- document.getElementById("john-pork-container").removeEventListener("click", handleJohnPorkClick)
- }
- async function makeVideo(id, info) {
- const video = document.createElement("a");
- video.href = `/video/${id}`
- video.classList.add("video");
- const img = document.createElement("img");
- img.classList.add("thumbnail");
- img.setAttribute("src", `/api/thumbnail/${id}`);
- img.onclick = function (event) {
- window.location.pathname = `/video/${id}`;
- };
- video.appendChild(img);
- const videoInfoContainer = document.createElement("div");
- videoInfoContainer.classList.add("video-info-container");
- video.appendChild(videoInfoContainer);
- const videoTitle = document.createElement("h3");
- videoTitle.classList.add("video-title");
- const title = info.title
- if(info.title.length > 25) {
- videoTitle.innerText = title.slice(0, -(info.title.length - 22)) + "...";
- } else {
- videoTitle.innerText = title
- }
- videoTitle.onclick = function (event) {
- window.location.pathname = `/video/${id}`;
- };
- videoInfoContainer.appendChild(videoTitle);
- const videoUploader = document.createElement("a");
- videoUploader.href = `/user/${encodeURIComponent(info.uploader)}`
- videoUploader.classList.add("video-uploader");
- videoUploader.innerText = `published by: ${info.uploader}`;
- videoInfoContainer.appendChild(videoUploader);
- document.getElementById("videos").appendChild(video);
- }
- function isMobileOS() {
- const userAgent = window.navigator.userAgent;
- const platform = window.navigator?.userAgentData?.platform || window.navigator.platform;
- const iosPlatforms = ['iPhone', 'iPad', 'iPod'];
- if (iosPlatforms.indexOf(platform) !== -1) {
- return true;
- } else if (/Android/.test(userAgent)) {
- return true;
- }
- return false;
- }
- function johnPork() {
- if(isMobileOS()) return getRandomInt(100) < 12;
- return getRandomInt(100) < 5;
- }
|