Bili Hires Emoji

Render bilibili live room emojis in high resolution

// ==UserScript==
// @name         Bili Hires Emoji
// @namespace    http://tampermonkey.net/
// @version      0.2
// @author       TZFC
// @description  Render bilibili live room emojis in high resolution
// @match        https://live.bilibili.com/*
// @grant        none
// @license MIT
// ==/UserScript==

(function() {
    'use strict';

    const removeAt = function(img) {
        const src = img.src.replace(/@[0-9a-z]*\.webp/g, '');
        img.src = src;
    };

    const observeImages = function(images) {
        images.forEach(function(img) {
            const src = img.src;
            if (src && src.includes('.webp') && src.includes('@')) {
                removeAt(img);
            }
        });
    };

    const observer = new MutationObserver(function(mutations) {
        mutations.forEach(function(mutation) {
            if (mutation.addedNodes.length > 0) {
                const images = mutation.target.querySelectorAll('img');
                observeImages(images);
            }
        });
    });

    observer.observe(document.documentElement, { childList: true, subtree: true });

    window.addEventListener('load', function() {
        const images = document.querySelectorAll('img');
        observeImages(images);
    });
})();