BiliBiliTags

Display Tag for each following

Voor het installeren van scripts heb je een extensie nodig, zoals Tampermonkey, Greasemonkey of Violentmonkey.

Voor het installeren van scripts heb je een extensie nodig, zoals {tampermonkey_link:Tampermonkey}.

Voor het installeren van scripts heb je een extensie nodig, zoals Tampermonkey of Violentmonkey.

Voor het installeren van scripts heb je een extensie nodig, zoals Tampermonkey of Userscripts.

Voor het installeren van scripts heb je een extensie nodig, zoals {tampermonkey_link:Tampermonkey}.

Voor het installeren van scripts heb je een gebruikersscriptbeheerder nodig.

(Ik heb al een user script manager, laat me het downloaden!)

Voor het installeren van gebruikersstijlen heb je een extensie nodig, zoals {stylus_link:Stylus}.

Voor het installeren van gebruikersstijlen heb je een extensie nodig, zoals {stylus_link:Stylus}.

Voor het installeren van gebruikersstijlen heb je een extensie nodig, zoals {stylus_link:Stylus}.

Voor het installeren van gebruikersstijlen heb je een gebruikersstijlbeheerder nodig.

Voor het installeren van gebruikersstijlen heb je een gebruikersstijlbeheerder nodig.

Voor het installeren van gebruikersstijlen heb je een gebruikersstijlbeheerder nodig.

(Ik heb al een beheerder - laat me doorgaan met de installatie!)

// ==UserScript==
// @name         BiliBiliTags
// @name zh-CN   B站关注页面显示标签
// @namespace    http://tampermonkey.net/BiliBiliTags
// @version      0.1.3
// @description  Display Tag for each following
// @author       You
// @match        https://space.bilibili.com/*/fans/follow*
// @connect      api.bilibili.com
// @icon         data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
// @grant        GM_xmlhttpRequest
// ==/UserScript==

(function () {
    'use strict';
     function getFollowList() {
        return document.querySelector('.follow-content.section').querySelector(".content").querySelector('ul')
    }

    function update() {
        let items = getFollowList().querySelectorAll('.list-item')
            for (let item of items) {
                let uid = /\d+/.exec(item.querySelector('.cover').getAttribute('href'))[0]
                GM_xmlhttpRequest({
                    method: 'get', url: `https://api.bilibili.com/x/relation/tag/user?fid=${uid}&jsonp=jsonp`,
                    onload: (xhr) => {
                        let ret = JSON.parse(xhr.responseText).data
                        if (Object.keys(ret).length !== 0) {

                            item.querySelector('.fans-action-text').innerText = '<' + Object.values(ret).join(', ') + '>';
                        } else {
                            item.querySelector('.fans-action-text').innerText = '<默认分组>';
                            item.querySelector('.fans-action-text').style.color = "#ff9999";
                        }
                    }
                })
            }
    }

    var inter = window.setInterval(function () {
        if (getFollowList() != undefined) {
            clearInterval(inter)
            update()
            const observer = new MutationObserver(function (mutationsList, observer) { update() });
            observer.observe(getFollowList(), { attributes: false, childList: true, subtree: false });
        }
    }, 1000);

})();