diff --git a/miniflux_scripts/feed_organizer.js b/miniflux_scripts/feed_organizer.js index 754203d..27be4be 100644 --- a/miniflux_scripts/feed_organizer.js +++ b/miniflux_scripts/feed_organizer.js @@ -1,24 +1,15 @@ -// ==UserScript== -// @name Miniflux Feed Organizer -// @namespace http://tampermonkey.net/ -// @version 0.1 -// @description Group Miniflux feed entries by feed/author on unread, read, and starred pages -// @author https://gitea.zoemp.be/sansguidon -// @match https://YOUR_MINIFLUX_DOMAIN/unread* -// @match https://YOUR_MINIFLUX_DOMAIN/category/*/entries -// @match https://YOUR_MINIFLUX_DOMAIN/starred* -// @grant none -// ==/UserScript== - (function() { 'use strict'; - // Function to group items by the author/feed name function groupItemsByAuthor() { const items = document.querySelectorAll('.item.entry-item'); + if (!items.length) { + setTimeout(groupItemsByAuthor, 500); // Retry after 500 ms + return; + } + const grouped = {}; - // Group articles by feed/author items.forEach(item => { const author = item.querySelector('.item-meta-info-title a').innerText.trim(); if (!grouped[author]) { @@ -27,13 +18,11 @@ grouped[author].push(item); }); - // Clear existing items safely const container = document.querySelector('.items'); while (container.firstChild) { container.removeChild(container.firstChild); } - // Append grouped items to the DOM Object.keys(grouped).forEach(author => { const block = document.createElement('div'); block.classList.add('author-block'); @@ -49,6 +38,5 @@ }); } - // Run the grouping function - window.addEventListener('load', groupItemsByAuthor); -})(); + setTimeout(groupItemsByAuthor, 500); // Delay after initial page loading +})(); \ No newline at end of file