123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- document.addEventListener("DOMContentLoaded", async () => {
- const id = decodeURIComponent(window.location.pathname.split("/")[2]);
- document.getElementById("account-button-anchor").href = `/user/${encodeURIComponent(Cookies.get('user'))}`
- document.getElementById(
- "no-videos"
- ).innerText = `There seems to be no videos published by user of the site "skibidihub" by the name of "${id}".`;
- const user = await getUserInfo(id)
- if(user.verified) document.getElementById("verified").classList.remove('disabled');
- if(Cookies.get("user") === id) document.getElementById("edit-profile").classList.remove("disabled")
- if(user.website) {
- document.getElementById("website-anchor").href = user.website;
- } else {
- document.getElementById("website-anchor").remove();
- }
- document.getElementById("subscribers").innerText = `${user.subscribers} subscribers`;
- document.getElementById("social-score").innerText = `${user.social_score} social credit score`
- if(user.description) {
- if(user.description.length > 18) {
- document.getElementById("description").innerText = (user.description.slice(0, -(user.description.length - 15)) + "...").replace(/(\r\n|\n|\r)/gm, " ");
- document.getElementById("description").classList.add("description-click");
- document.getElementById("description").addEventListener("click", () => {
- document.getElementById("description-dialog-text").innerText = user.description;
- document.getElementById("description-dialog").showModal()
- })
- } else {
- document.getElementById("description").innerText = user.description.replace(/(\r\n|\n|\r)/gm, " ")
- }
- } else {
- document.getElementById("description").innerText = "no description set"
- }
-
- // Check if the user is already subscribed
- if(!localStorage.getItem("subscribed")) localStorage.setItem("subscribed", JSON.stringify([]))
- // If so, disable the subscribe button
- if(JSON.parse(localStorage.getItem("subscribed")).includes(user.name)) document.getElementById("subscribe").setAttribute("disabled", "true");
- document.getElementById("subscribe").onclick = function(event) { subscribe(user) }
- if (Cookies.get("user") != null) {
- document.getElementById("user-info-name").innerText = id;
- document.getElementById("login-button").classList.add("disabled");
- document.getElementById("logout-button").classList.remove("disabled");
- document.getElementById("account-button").classList.remove("disabled");
- document.getElementById("upload-button").classList.remove("disabled");
- } else {
- document.getElementById("user-info-name").innerText =
- "⚠️⚠️⚠️⚠️SIGN IN to see this EPIC content❌❌💋🩻";
- }
- const videos = await getAllUserVideos(encodeURIComponent(id))
- document.getElementById("loading").classList.add("disabled");
- if (videos.data.length > 0) {
- videos.data.forEach((video) => {
- makeVideo(video.id, video);
- });
- } else {
- document.getElementById("no-videos").classList.remove("disabled");
- }
- });
- 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}`);
- 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);
- }
- // TODO: for now subscribe function is fine but maybe polish it up a little
- function subscribe(authorInfo) {
- return axios.get(`/api/subscribe/${encodeURIComponent(authorInfo.name)}`).then(data => {
- if(data.status != 200) {
- return document.getElementById("subscribers").innerText = "ERROR ERROR ERROE SEREVER ERROR!!!!"
- }
- // Write to localStorage
- if(!localStorage.getItem("subscribed")) localStorage.setItem("subscribed", JSON.stringify([]))
- const subscribed = JSON.parse(localStorage.getItem("subscribed"));
- subscribed.push(authorInfo.name);
- localStorage.setItem("subscribed", JSON.stringify(subscribed))
- // Disable subscribed button
- document.getElementById("subscribe").setAttribute("disabled", "true");
- // Update subscribed counter
- document.getElementById("subscribers").innerText = `${authorInfo.subscribers + 1} subscribers`;
- }).catch(error => {
- console.error(error);
- return document.getElementById("subscribers").innerText = "ERROR ERROR ERROE SEREVER ERROR!!!!"
- })
- }
|