RSS Feed Reader

A simple RSS feed reader in Violentmonkey menu with NewsBlur support/Lettore di feed rss direttamente nel browser

  1. // ==UserScript==
  2. // @name RSS Feed Reader
  3. // @namespace http://tampermonkey.net/
  4. // @version 1.1
  5. // @description A simple RSS feed reader in Violentmonkey menu with NewsBlur support/Lettore di feed rss direttamente nel browser
  6. // @author Magneto1
  7. // @license MIT
  8. // @match *://*/*
  9. // @grant GM_xmlhttpRequest
  10. // @grant GM_registerMenuCommand
  11. // @grant GM_setValue
  12. // @grant GM_getValue
  13. // ==/UserScript==
  14.  
  15. (function() {
  16. 'use strict';
  17.  
  18. // Funzione per recuperare e analizzare il feed RSS
  19. function fetchRSS(url) {
  20. GM_xmlhttpRequest({
  21. method: "GET",
  22. url: url,
  23. onload: function(response) {
  24. if (response.status === 200) {
  25. const parser = new DOMParser();
  26. const xmlDoc = parser.parseFromString(response.responseText, "text/xml");
  27. const items = xmlDoc.getElementsByTagName("item");
  28. let feedItems = [];
  29.  
  30. for (let i = 0; i < items.length; i++) {
  31. const title = items[i].getElementsByTagName("title")[0].textContent;
  32. const link = items[i].getElementsByTagName("link")[0].textContent;
  33. feedItems.push({ title, link });
  34. }
  35.  
  36. saveFeed(url, feedItems);
  37. } else {
  38. console.error("Failed to fetch RSS feed");
  39. }
  40. }
  41. });
  42. }
  43.  
  44. // Funzione per salvare il feed
  45. function saveFeed(url, feedItems) {
  46. let savedFeeds = GM_getValue("savedFeeds", {});
  47. savedFeeds[url] = feedItems;
  48. GM_setValue("savedFeeds", savedFeeds);
  49. alert("Feed salvato con successo!");
  50. }
  51.  
  52. // Funzione per visualizzare i feed salvati
  53. function viewSavedFeeds() {
  54. let savedFeeds = GM_getValue("savedFeeds", {});
  55. let feedList = "Feed salvati:\n";
  56.  
  57. for (let url in savedFeeds) {
  58. feedList += `${url}:\n`;
  59. savedFeeds[url].forEach(item => {
  60. feedList += ` - ${item.title} (${item.link})\n`;
  61. });
  62. feedList += "\n";
  63. }
  64.  
  65. alert(feedList || "Nessun feed salvato.");
  66. }
  67.  
  68. // Aggiungi un'opzione al menu di Violentmonkey
  69. GM_registerMenuCommand("Leggi Feed RSS", function() {
  70. const rssUrl = prompt("Inserisci l'URL del feed RSS:");
  71. if (rssUrl) {
  72. fetchRSS(rssUrl);
  73. }
  74. });
  75.  
  76. GM_registerMenuCommand("Visualizza Feed Salvati", function() {
  77. viewSavedFeeds();
  78. });
  79. })();