Greasy Fork

Greasy Fork is available in English.

Ximalaya-综合界面优化

自用喜马拉雅界面美化。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==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");