VoidLayoutDesigner

Design AniList profile layouts

ही स्क्रिप्ट इंस्टॉल करण्यासाठी तुम्हाला Tampermonkey, Greasemonkey किंवा Violentmonkey यासारखे एक्स्टेंशन इंस्टॉल करावे लागेल.

You will need to install an extension such as Tampermonkey to install this script.

ही स्क्रिप्ट इंस्टॉल करण्यासाठी तुम्हाला Tampermonkey किंवा Violentmonkey यासारखे एक्स्टेंशन इंस्टॉल करावे लागेल..

You will need to install an extension such as Tampermonkey or Userscripts to install this script.

ही स्क्रिप्ट इंस्टॉल करण्यासाठी तुम्हाला Tampermonkey यासारखे एक्स्टेंशन इंस्टॉल करावे लागेल..

ही स्क्रिप्ट इंस्टॉल करण्यासाठी तुम्हाला एक युझर स्क्रिप्ट व्यवस्थापक एक्स्टेंशन इंस्टॉल करावे लागेल.

(माझ्याकडे आधीच युझर स्क्रिप्ट व्यवस्थापक आहे, मला इंस्टॉल करू द्या!)

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला Stylus सारखे एक्स्टेंशन इंस्टॉल करावे लागेल.

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला Stylus सारखे एक्स्टेंशन इंस्टॉल करावे लागेल.

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला Stylus सारखे एक्स्टेंशन इंस्टॉल करावे लागेल.

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला एक युझर स्टाईल व्यवस्थापक इंस्टॉल करावे लागेल.

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला एक युझर स्टाईल व्यवस्थापक इंस्टॉल करावे लागेल.

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला एक युझर स्टाईल व्यवस्थापक इंस्टॉल करावे लागेल.

(माझ्याकडे आधीच युझर स्टाईल व्यवस्थापक आहे, मला इंस्टॉल करू द्या!)

// ==UserScript==
// @name         VoidLayoutDesigner
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  Design AniList profile layouts
// @author       voidnyan
// @match        https://anilist.co/*
// @license MIT
// ==/UserScript==

(function() {
    'use strict';

    const profileUserName = "voidnyan";
    const refreshIntervalInSeconds = 1;

    const banner = "";
    const pfp = "";
    const bio = "";
    const pinned = "";
    const colorRgb = "77, 199, 222";

    async function replaceImages() {
        const bannerElement = document.querySelector(".banner");
        const pfpElement = document.querySelector("img.avatar");
        const pfpLinkElements = document.querySelectorAll(`a.avatar[href*="${profileUserName}"]`);
        const bioElement = document.querySelector(".about img");
        const pinnedElement = document.querySelector(".activity-text:has(.pinned) img");
        const link = document.querySelector(".page-content > .user");

        if (colorRgb.length > 0) {
            link.style.setProperty("--color-blue", colorRgb);
            link.style.setProperty("--color-blue-dim", colorRgb);
        }

        if (banner.length > 0) {
            bannerElement.style = `background-image: url("${banner}")`;
        }

        if (pfp.length > 0) {
            pfpElement.src = pfp;
            for (const pfpLink of pfpLinkElements) {
                pfpLink.style = `background-image: url("${pfp}")`;
            }
        }

        if (bioElement && bio.length > 0){
            bioElement.src = bio;
        }
        if (pinnedElement && pinned.length > 0) {
            pinnedElement.src = pinned;

        }
    }

    let currentPath = "";
    let tryCount = 0;

    setInterval(() => {
        const path = window.location.pathname;
        if (path !== currentPath || tryCount < 3) {
            currentPath = path;
            if (path === `/user/${profileUserName}/`) {
                replaceImages();
            }
        }
    }, refreshIntervalInSeconds * 1000);

})();