Bubo Reader es un lector de feeds hiperminimalista (RSS, Atom, JSON) que puedes implementar en tu propio servidor, Netlify en unos pocos pasos o Glitch en incluso menos pasos. El objetivo del proyecto es generar una página web que muestre una lista de enlaces de una colección de feeds organizados por categoría y sitio web. Eso es todo.
Lleva el nombre de este tonto búho robot de Furia de titanes (1981).
Puedes leer más sobre este proyecto en mi blog:
npm install para instalar las dependencias.feeds.json para incluir categorías y enlaces a feeds que le gustaría ver.npm run build:bubo ¡Eso es todo! Ahora debería tener una página estática con enlaces al contenido más reciente de sus feeds en la carpeta public , lista para publicarse.
Las piezas estáticas:
conf/feeds.json : un archivo JSON que contiene las URL de su feed separadas en categorías.config/template.html : una plantilla de Nunjucks que le permite cambiar cómo se muestran los feeds. Esto se puede cambiar por cualquier otra cosa que desee; consulte a continuación.public/style.css : un archivo CSS para estilizar la salida de tu feed.public/index.html : el archivo HTML que se genera automáticamente cuando se ejecuta Bubo.El motor:
src/index.ts : el script principal que ejecuta cuando desea crear una nueva versión de Bubo. Obtendrá automáticamente el contenido más reciente de sus feeds y creará un nuevo archivo estático en public/index.html .src/renderer.ts : el renderizador que carga Nunjucks, la plantilla y comprende cómo procesar los datos del feed entrantes. ¿Prefieres algo más? ¡Este es el lugar para cambiarlo!src/utilities.ts : una variedad de utilidades de análisis y normalización para Bubo, ocultas para intentar mantener todo limpio. En el archivo index.ts principal encontrará dos valores que le permitirán agrupar y limitar sus solicitudes de feed:
MAX_CONNECTIONS dicta la cantidad máxima de solicitudes que un lote puede tener a la vez.DELAY_MS dicta la cantidad de tiempo de retraso entre cada lote. La configuración predeterminada no es procesamiento por lotes ni limitación porque MAX_CONNECTIONS está establecido en Infinity . Si desea cambiar Bubo para que solo obtenga un feed a la vez cada segundo, puede establecer estos valores en:
const MAX_CONNECTIONS = 1 ;
const DELAY_MS = 1000 ;Si desea limitar las cosas a 10 solicitudes simultáneas cada 2,5 segundos, puede configurarlo así:
const MAX_CONNECTIONS = 10 ;
const DELAY_MS = 2500 ; En la práctica, nunca me he encontrado con un problema al dejar MAX_CONNECTIONS configurado en Infinity pero esto parece una protección sensata para el diseño.
La forma más rápida es remezclar el proyecto en Glitch: https://glitch.com/edit/#!/bubo-rss
También hay una rama glitch en este repositorio si prefieres comenzar allí.
¡Simplemente cambie algunos feeds en el archivo ./config/feeds.json y listo! Si desea modificar el estilo o la plantilla, puede cambiar el archivo ./public/style.css o el archivo ./config/template.html respectivamente.
config/feeds.json para administrar sus feeds y categorías. La configuración de implementación debería importarse automáticamente desde el archivo netlify.toml . ¡Todo lo que necesitas hacer es confirmar y estarás listo para comenzar!
Para mantener sus feeds actualizados, querrá configurar un Build Hook para su sitio Netlify y utilizar otro servicio para hacer ping de vez en cuando para activar una reconstrucción. Sugeriría investigar:
Si ya tiene un servidor que ejecuta Linux y algo de experiencia en la línea de comandos, puede ser más sencillo configurar un trabajo cron.
Puede ver demostraciones en vivo aquí:
Si esto le resultó útil, considere patrocinarme a mí o a este proyecto.
Si prefiere ejecutar esto en su propio servidor, considere usar uno de estos enlaces de afiliados para configurar una microinstancia en Linode, Digital Ocean o Vultr.
Aquí hay algunos sitios web que utilizan Bubo Reader:
¡Comparte si quieres aparecer!