Greasy Fork is available in English.

Ximalaya-UIModify

Self-use UI modify for Ximalaya.

// ==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/SynRGB/Ximalaya-UIModify
// @contributionURL     https://github.com/SynRGB/Ximalaya-UIModify
// @copyright           Copyright © 2022-PRESENT, TitanRGB (https://github.com/TitanRGB)
// ==/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("JS script Ximalaya-UIModify (Ximalaya-综合界面优化) loaded. See more details at https://github.com/SynRGB/Ximalaya-UIModify");