<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Ntfy on Christian Martínez De La Rosa</title><link>https://christt105.github.io/es/tags/ntfy/</link><description>Recent content in Ntfy on Christian Martínez De La Rosa</description><generator>Hugo -- gohugo.io</generator><language>es</language><atom:link href="https://christt105.github.io/es/tags/ntfy/index.xml" rel="self" type="application/rss+xml"/><item><title>InformadoRSS</title><link>https://christt105.github.io/es/projects/informadorss/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://christt105.github.io/es/projects/informadorss/</guid><enclosure url="https://christt105.github.io/projects/informadorss/cover.webp" length="34178" type="image/webp"/><description>&lt;p&gt;&lt;code&gt;InformadoRSS&lt;/code&gt; es un servicio ligero y self-hosted que vigila feeds RSS y Atom, filtra sus elementos por ruta y los entrega a canales de Discord o a &lt;a class="link" href="https://ntfy.sh/" target="_blank" rel="noopener"&#10; &gt;ntfy&lt;/a&gt;. Funciona en un único contenedor: un binario en C# con .NET 10 compilado con NativeAOT que sirve una interfaz web en Vue 3 y guarda todo en SQLite. Solo habla con Discord a través de la API REST del bot (sin gateway ni comandos). Es de código abierto con licencia MIT.&lt;/p&gt;&#10;&lt;p&gt;Características principales:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;Feeds y rutas&lt;/strong&gt;: Un feed es una URL; cada feed tiene rutas con un filtro, uno o varios destinos (Discord o ntfy) y una plantilla de mensaje.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Constructor de filtros y editor de plantillas&lt;/strong&gt;: Crea los filtros y edita los mensajes desde la interfaz web en lugar de escribirlos a mano.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Selector de servidor y canal de Discord&lt;/strong&gt;: Elige los destinos por nombre y comprueba en qué canales no puede publicar el bot.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Alertas&lt;/strong&gt;: Un aviso cuando un feed o un destino se rompe y otro cuando se recupera, por Discord o ntfy.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Copias de seguridad diarias&lt;/strong&gt;: Copias programadas de la base de datos en una carpeta, conservando las más recientes.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Importador de MonitoRSS&lt;/strong&gt;: Importa feeds y rutas desde una exportación de MonitoRSS, con simulación y un canal de pruebas para comparar los mensajes antes de cambiar.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Patrón de identidad para feeds que reescriben entradas&lt;/strong&gt;: Una expresión regular sobre la descripción que se añade al id del elemento, así un cambio de estado en una lista de MyAnimeList cuenta como elemento nuevo.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Cuento cómo y por qué lo hice en &lt;a class="link" href="https://christt105.github.io/es/blog/informadorss/" &gt;el post del blog&lt;/a&gt;. La imagen se publica en &lt;code&gt;ghcr.io/christt105/informadorss&lt;/code&gt;.&lt;/p&gt;&#10;&lt;p&gt;&lt;img alt="El editor de rutas: filtro, plantilla del mensaje y canal de destino" class="gallery-image" data-flex-basis="252px" data-flex-grow="105" height="1994" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://christt105.github.io/projects/informadorss/web-route.webp" srcset="https://christt105.github.io/projects/informadorss/web-route_hu_a1005d249803043c.webp 800w, https://christt105.github.io/projects/informadorss/web-route_hu_458b51e51904d625.webp 1600w, https://christt105.github.io/projects/informadorss/web-route.webp 2100w" width="2100"&gt;&lt;/p&gt;&#10;</description></item></channel></rss>