Ximalaya-UIModify

Self-use UI modify for Ximalaya.

Bu betiği kurabilmeniz için Tampermonkey, Greasemonkey ya da Violentmonkey gibi bir kullanıcı betiği eklentisini kurmanız gerekmektedir.

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

Bu betiği kurabilmeniz için Tampermonkey ya da Violentmonkey gibi bir kullanıcı betiği eklentisini kurmanız gerekmektedir.

Bu betiği kurabilmeniz için Tampermonkey ya da Userscripts gibi bir kullanıcı betiği eklentisini kurmanız gerekmektedir.

Bu betiği indirebilmeniz için ayrıca Tampermonkey gibi bir eklenti kurmanız gerekmektedir.

Bu betiği yüklemek için bir betik yöneticisi eklentisi yüklemeniz gerekecektir.

(Zaten bir betik yöneticim var, hadi yükleyelim!)

Bu stili yüklemek için Stylus gibi bir uzantı yüklemeniz gerekir.

Bu stili yüklemek için Stylus gibi bir uzantı kurmanız gerekir.

Bu stili yükleyebilmek için Stylus gibi bir uzantı yüklemeniz gerekir.

Bu stili yüklemek için bir kullanıcı stili yöneticisi uzantısı yüklemeniz gerekir.

Bu stili yüklemek için bir kullanıcı stili yöneticisi uzantısı kurmanız gerekir.

Bu stili yükleyebilmek için bir kullanıcı stili yöneticisi uzantısı yüklemeniz gerekir.

(Zateb bir user-style yöneticim var, yükleyeyim!)

// ==UserScript==
// @name                Ximalaya-UIModify
// @name:zh-CN          Ximalaya-综合界面优化
// @namespace           https://github.com/TitanRGB
// @version             2.0
// @description         Self-use UI modify for Ximalaya.
// @description:zh-CN   自用喜马拉雅界面美化。
// @author              https://github.com/TitanRGB
// @icon                data:image/png;base64,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
// @match               http*://www.ximalaya.com
// @match               http*://www.ximalaya.com/*
// @license             MPL-2.0
// @license^            Mozilla Public License 2.0
// @charset		        UTF-8
// @homepageURL         https://github.com/MehverSynRGB/Ximalaya-UIModify
// @contributionURL     https://github.com/MehverSynRGB/Ximalaya-UIModify
// @copyright           Copyright (c) 2022 Mehver (https://github.com/Mehver). All rights reserved.
// ==/UserScript==

let main = function () {
    // 移除 ad0: 主页顶部滚动推荐
    let zhu_ye = document.querySelector('#award > main > div:nth-child(1) > div.category-wrap.E_h > div');
    if (zhu_ye) {
        let ad0A = document.querySelector('#award > div.party-building._VZ');
        if (ad0A) {
            ad0A.remove();
        }
        let ad0B = document.querySelector('#award > main > div:nth-child(1) > div.banner-wrapper.cZ_');
        if (ad0B) {
            ad0B.remove();
        }
    }
    // 移除 ad1: 下载客户端领VIP弹窗
    let ad1A = document.querySelector('body > div:nth-child(16) > div > div.xui-modal-wrap.zj_ > div');
    if (ad1A) {
        let click = document.querySelector('body > div:nth-child(16) > div > div.xui-modal-wrap.zj_ > div > div > span');
        if (click) {
            click.click();
        }
    }
    let ad1B = document.querySelector('body > div:nth-child(17) > div > div.xui-modal-wrap.zj_ > div');
    if (ad1B) {
        let click = document.querySelector('body > div:nth-child(17) > div > div.xui-modal-wrap.zj_ > div > div > span');
        if (click) {
            click.click();
        }
    }
    // 移除 ad2: 下载客户端侧弹窗
    let ad2A = document.querySelector('#award > div:nth-child(4) > div');
    if (ad2A) {
        let targetText = '云端同步、一键下载 更好的收听体验!';
        let targetDiv = document.querySelector('#award > div:nth-child(4) > div > div');
        if (targetDiv && targetDiv.textContent === targetText) {
            ad2A.remove();
        }
    }
    let ad2B = document.querySelector('#award > div:nth-child(3)');
    if (ad2B) {
        let targetText = '云端同步、一键下载 更好的收听体验!';
        let targetDiv = document.querySelector('#award > div:nth-child(3) > div > div');
        if (targetDiv && targetDiv.textContent === targetText) {
            ad2B.remove();
        }
    }
    // 移除 ad3: 下载客户端右边栏置顶
    let ad3A = document.querySelector('#award > main > div.sound-detail > div.clearfix > div.side.layout-side > div:nth-child(1)');
    if (ad3A) {
        let targetText = '立即下载';
        let targetDiv = document.querySelector('#award > main > div.sound-detail > div.clearfix > div.side.layout-side > div:nth-child(1) > div > a > span.text._ib');
        if (targetDiv && targetDiv.textContent === targetText) {
            ad3A.remove();
        }
    }
    let ad3B = document.querySelector('#award > main > div.album-detail > div.clearfix > div.side.layout-side > div.mgb-20 > div.container.Kl_');
    if (ad3B) {
        let targetText = '立即下载';
        let targetDiv = document.querySelector('#award > main > div.album-detail > div.clearfix > div.side.layout-side > div.mgb-20 > div.container.Kl_ > a > span.text._ib');
        if (targetDiv && targetDiv.textContent === targetText) {
            ad3B.remove();
        }
    }
    // 移除 ad4: 检测到海外IP,下载国际版客户端
    let ad4 = document.querySelector('#award > div.himalaya-wrapper._ur');
    if (ad4) {
        let click = document.querySelector('#award > div.himalaya-wrapper._ur > i');
        if (click) {
            click.click();
        }
    }
    // 移除“评论区”
    let comment = document.querySelector('#award > main > div.sound-detail > div.clearfix > div.detail.layout-main > div.xm-comment.v_j');
    if (comment) {
        let targetText = '用户评论';
        let targetDiv = document.querySelector('#award > main > div.sound-detail > div.clearfix > div.detail.layout-main > div.xm-comment.v_j > h2');
        if (targetDiv && targetDiv.textContent === targetText) {
            comment.remove();
        }
    }
    // 移除“猜你喜欢”
    let album = document.querySelector('#award > main > div.sound-detail > div.clearfix > div.detail.layout-main > div.search-album-box.v_Q');
    if (album) {
        let targetText = '猜你喜欢';
        let targetDiv = document.querySelector('#award > main > div.sound-detail > div.clearfix > div.detail.layout-main > div.search-album-box.v_Q > div.panel-title.v_Q > span');
        if (targetDiv && targetDiv.textContent === targetText) {
            album.remove();
        }
    }
    // 个人主页元素居中
    const myPage = document.querySelector('#myPage > div.layout-main');
    if (myPage) {
        const width = document.querySelector('#rootHeader > div').clientWidth;
        myPage.style.width = width + 'px';
    }
}

let active = false;
let timer = null;
let halfSecondInterval = 500; // half second
let oneMinuteInterval = 60 * 1000; // one minute

function setActive() {
    active = true;
    if (!timer) {
        timer = setInterval(function () {
            if (active) {
                main();
            }
        }, halfSecondInterval);
        setTimeout(function () {
            active = false;
        }, oneMinuteInterval);
    }
}

document.addEventListener('DOMContentLoaded', setActive, false);
document.addEventListener('scroll', setActive, false);
document.addEventListener('click', setActive, false);

console.log("Script Ximalaya-UIModify (Ximalaya-综合界面优化) loaded successfully. https://github.com/MehverSynRGB/Ximalaya-UIModify");