Add miniflux_scripts/feed_organizer.js
This commit is contained in:
parent
fe1c0a2d3d
commit
29785ebd24
54
miniflux_scripts/feed_organizer.js
Normal file
54
miniflux_scripts/feed_organizer.js
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
// ==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');
|
||||||
|
const grouped = {};
|
||||||
|
|
||||||
|
// Group articles by feed/author
|
||||||
|
items.forEach(item => {
|
||||||
|
const author = item.querySelector('.item-meta-info-title a').innerText.trim();
|
||||||
|
if (!grouped[author]) {
|
||||||
|
grouped[author] = [];
|
||||||
|
}
|
||||||
|
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');
|
||||||
|
const header = document.createElement('h2');
|
||||||
|
header.textContent = author;
|
||||||
|
block.appendChild(header);
|
||||||
|
|
||||||
|
grouped[author].forEach(item => {
|
||||||
|
block.appendChild(item);
|
||||||
|
});
|
||||||
|
|
||||||
|
container.appendChild(block);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// Run the grouping function
|
||||||
|
window.addEventListener('load', groupItemsByAuthor);
|
||||||
|
})();
|
Loading…
Reference in New Issue
Block a user