Anyone else missing auto expanding images in the settings?
Anyone else missing auto expanding images in the settings?
With 0.18 update the nsfw patch is missing yet, so in the meantime I found this userscript and modified it to work with NSFW.
P.S. I know this is not the best community for this, but nothing else fits.
Use your userscript manager of choice to install it. Violentmonkey, Tampermonkey
// ==UserScript==
// @name Lemmy Image Expand (modified)
// @namespace Violentmonkey Scripts
// @match *://*/*
// @grant none
// @version 1.0.1
// @author SlyFabi
// @description Auto expands all image posts including NSFW ones.
// @license MIT
// ==/UserScript==
(function() {
'use strict';
// Thanks to CodingAndCoffee for isLemmy
let isLemmy;
try {
isLemmy = document.head.querySelector("[name~=Description][content]").content === "Lemmy";
} catch (_er) {
isLemmy = false;
}
if(isLemmy) {
// https://stackoverflow.com/questions/18177174/how-to-limit-handling-of-event-to-once-per-x-seconds-with-jquery-javascript
function throttle(func, interval) {
var lastCall = 0;
var nextCall = -1;
return function() {
var now = Date.now();
clearTimeout(nextCall);
if (lastCall + interval < now) {
lastCall = now;
func.apply(this, arguments);
} else {
nextCall = setTimeout(function() {
lastCall = Date.now();
func.apply(this, arguments);
}, interval);
}
};
}
const targetNode = document.getElementById('app');
const config = { attributes: false, childList: true, subtree: true };
let observer = null;
const callback = throttle(function(mutationsList) {
if(observer != null) {
observer.disconnect();
}
setTimeout(function() {
let postList = [];
document.querySelectorAll('.post-listing a.text-body svg.icon use').forEach(function(postIcon) {
const imgPreview = postIcon.parentElement.parentElement;
if(postIcon.getAttribute('xlink:href') !== "/static/assets/symbols.svg#icon-image") {
return;
}
postList.push(imgPreview);
});
let uniqueList = postList.reduce((unique, o) => {
if(!unique.some(obj => obj.getAttribute('href') === o.getAttribute('href'))) {
unique.push(o);
}
return unique;
},[]);
uniqueList.forEach(function(imgPreview) {
const postListing = imgPreview.closest(".post-listing");
const isExpanded = postListing.querySelector('.img-expanded') != null;
if(!isExpanded) {
imgPreview.click();
}
//console.log('UElement: ' + imgPreview + ' Exp: ' + isExpanded);
});
/*postList.forEach(function(imgPreview) {
imgPreview.style.pointerEvents = 'none';
//console.log('Element: ' + imgPreview);
});*/
setTimeout(function() {
observer = new MutationObserver(callback);
observer.observe(targetNode, config);
}, 500);
}, 500);
}, 1000);
setTimeout(function() {
callback([]);
}, 500);
}
})();
You're viewing a single thread.
All Comments
6 comments
This script has the same issue for me as the built-in auto expand: the images on screen (and some distance away) collapse when I vote on a post.
1 0 ReplyIt's the issue with the 0.18 Lemmy version. Hopefully it gets resolved with the new version.
2 0 Reply
6 comments
Scroll to top