Greasy Fork is available in English.

imgur workaround fixed in RES v5.24.7 so DELETE or DISABLE this Script

imgur expandos on reddit workaround

// ==UserScript==
// @name         imgur workaround fixed in RES v5.24.7 so DELETE or DISABLE this Script
// @namespace    amyval1.com
// @version      2024-09-30
// @description  imgur expandos on reddit workaround
// @author       AmyVal1
// @match        https://*.reddit.com/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=reddit.com
// @license      MIT
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    var timercount = 0;

    var timerVar = setInterval (function() {DoMeEverySecond (); }, 1000);

    function DoMeEverySecond ()
    {
        timercount++;
        if (timercount > 999999){
            clearInterval (timerVar);
            timerVar = "";
        }

        var a = document.querySelectorAll("img[src*=imgur][src*=mp4]");
        var src, el, attrs;
        for(var i=0,l=a.length;i<l;i++) {
            src = a[i];
            el = document.createElement('video');
            attrs = src.attributes;
            for(var j=0,k=attrs.length;j<k;j++) {
                el.setAttribute(attrs[j].name, attrs[j].value);
            }
            //el.setAttribute("onloadeddata","this.play();");
            //el.setAttribute("autoplay","");
            el.autoplay = true;

            //el.setAttribute("muted","");
            //el.muted = true;

            //el.setAttribute("controls","");
            el.controls = true;

            //el.loop = true;

            el.setAttribute("type","video/mp4");
            el.volume = 0.2;

            el.innerHTML = src.innerHTML;

            var srcEl = document.createElement('source');
            srcEl.src = el.src;
            srcEl.setAttribute("type","video/mp4");
            el.prepend(srcEl);


            src.parentNode.replaceChild(el, src);
            el.closest("div[id*=thing]").querySelector("a.expando-button").onclick = function() {
                if(this.classList.contains("collapsed")){
                    this.closest("div[id*=thing]").querySelector("video").pause();
                }
                else {
                    this.closest("div[id*=thing]").querySelector("video").play();
                }
            };
        }

    }


})();