Spaces:
Sleeping
Sleeping
| () => { | |
| return new Promise((resolve) => { | |
| const filterImage = (img) => { | |
| // Filter out images that are too small | |
| if (img.width < 100 && img.height < 100) return false; | |
| // Filter out images that are not visible | |
| const rect = img.getBoundingClientRect(); | |
| if (rect.width === 0 || rect.height === 0) return false; | |
| // Filter out images with certain class names (e.g., icons, thumbnails) | |
| if (img.classList.contains("icon") || img.classList.contains("thumbnail")) return false; | |
| // Filter out images with certain patterns in their src (e.g., placeholder images) | |
| if (img.src.includes("placeholder") || img.src.includes("icon")) return false; | |
| return true; | |
| }; | |
| const images = Array.from(document.querySelectorAll("img")).filter(filterImage); | |
| let imagesLeft = images.length; | |
| if (imagesLeft === 0) { | |
| resolve(); | |
| return; | |
| } | |
| const checkImage = (img) => { | |
| if (img.complete && img.naturalWidth !== 0) { | |
| img.setAttribute("width", img.naturalWidth); | |
| img.setAttribute("height", img.naturalHeight); | |
| imagesLeft--; | |
| if (imagesLeft === 0) resolve(); | |
| } | |
| }; | |
| images.forEach((img) => { | |
| checkImage(img); | |
| if (!img.complete) { | |
| img.onload = () => { | |
| checkImage(img); | |
| }; | |
| img.onerror = () => { | |
| imagesLeft--; | |
| if (imagesLeft === 0) resolve(); | |
| }; | |
| } | |
| }); | |
| // Fallback timeout of 5 seconds | |
| // setTimeout(() => resolve(), 5000); | |
| resolve(); | |
| }); | |
| }; | |