Miniflux automatically refresh feeds

Automatically refreshes Miniflux feeds

当前为 2024-07-09 提交的版本,查看 最新版本

// ==UserScript==
// @name         Miniflux automatically refresh feeds
// @namespace    https://reader.miniflux.app/
// @version      7
// @description  Automatically refreshes Miniflux feeds
// @author       Tehhund
// @match        *://*.miniflux.app/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=miniflux.app
// @grant        none
// ==/UserScript==

const apiKey = ''; // Put your API key from Miniflux here.
const rateLimit = 86400000; // Only refresh once per day. 86400000  miliseconds = 24 hours. If a feed has an error (e.g., too many requests) its checked_at datetime still gets updated so we won't hit the feeds with too many requests.

const refreshFeeds = async () => {
  let req = await fetch('https://reader.miniflux.app/v1/feeds', { headers: { 'X-Auth-Token': apiKey } });
  let res = JSON.parse(await req.text());
  let feedsArray = res.map(currentFeed => currentFeed);
  for (let feed of feedsArray) {
    let lastChecked = new Date(feed.checked_at).getTime();
    if (Date.now() - lastChecked > rateLimit) {
      console.log('it\'s been more than 24 hours, refresh.');
      let res = await fetch(`https://reader.miniflux.app/v1/feeds/${feed.id}/refresh`, {
        method: "PUT",
        headers: { 'X-Auth-Token': apiKey }
      });
      console.log(res);
    } else console.log('it\'s been less than 24 hours, do nothing.')
  }
}

// run once when the page is loaded.
refreshFeeds();