Just a quick and dirty userscript to add some features I feel are super important. I’ll probably look into creating some real PRs, but I figure the devs are probably in “put out fires” mode right now.

  • le__el@fedia.io
    link
    fedilink
    arrow-up
    3
    ·
    1 year ago

    Hi there, thanks for the userscript!

    Using your code as base, I created for myself a function to add blur image to the nsfw thumbnails.

    It works with posts already marked as +18 and also the ones that are from the nsfw domain, but has been coming to the feed without the +18 tag (and because of that, it ignores the preference setting about not showing nsfw content).

    The code is probably bad, but if you like the idea, feel free to use/modify

      function thumbBlur(article) {
        article.querySelectorAll("figure > a > img").forEach(el => {
            applyBlur(el, 10);
          el.addEventListener('mouseover', function hover() {
            applyBlur(el, 0, 0.5);
          });
          el.addEventListener('mouseleave', function leave() {
            applyBlur(el, 10, 0.5);
          });
        });
      }
    
      function applyBlur(el, value, transition = 0) {
        if(transition != 0 ) {
          el.style.transitionDuration  = transition+"s";
        }
        el.style.webkitFilter = "blur("+value+"px)";
      }
    
      function addBlurNsfw() {
        document.querySelectorAll("article.subject").forEach(article => {
          article.querySelectorAll("small.danger").forEach(small => {
            if( small.textContent == "+18" ) {
              thumbBlur(article);
            }
          });
          article.querySelectorAll(".magazine-inline, .user-inline").forEach(link => {
            const parts = link.title.split("@");
            if( parts[2] == "lemmynsfw.com" ) {
              thumbBlur(article);
            }
          });
        });
      }
      addBlurNsfw();