// feed count sort controls (function() { 'use strict'; if (!window.location.href.match(/\/feeds$/)) return; function parseTotal(feed) { const counter = feed.querySelector('.feed-entries-counter'); if (!counter) return 0; const spans = counter.querySelectorAll('span[aria-hidden="true"]'); if (!spans.length) return 0; const txt = spans[spans.length - 1].textContent || ''; const m = txt.match(/\d+/); return m ? parseInt(m[0], 10) : 0; } function sortFeeds(desc) { const feeds = Array.from(document.querySelectorAll('article.item.feed-item')); if (!feeds.length) return; const parent = feeds[0].parentNode; feeds .sort((a, b) => desc ? parseTotal(b) - parseTotal(a) : parseTotal(a) - parseTotal(b) ) .forEach(f => parent.appendChild(f)); } const navList = document.querySelector('nav[aria-label="Feeds Menu"] ul'); if (!navList) return; ['↑', '↓'].forEach((arrow, idx) => { const li = document.createElement('li'); const btn = document.createElement('button'); btn.className = 'page-link'; btn.type = 'button'; btn.textContent = `Entries ${arrow}`; btn.onclick = () => sortFeeds(idx === 1); li.appendChild(btn); navList.appendChild(li); }); })();