Bubo Reader é um leitor de feeds hiperminimalista (RSS, Atom, JSON) que você pode implantar em seu próprio servidor, Netlify em algumas etapas ou Glitch em ainda menos etapas! O objetivo do projeto é gerar uma página web que mostre uma lista de links de uma coleção de feeds organizados por categoria e site. É isso.
Seu nome vem desta coruja robô boba de Clash of the Titans (1981).
Você pode ler mais sobre esse projeto no meu blog:
npm install
para instalar as dependências.feeds.json
para incluir categorias e links para feeds que você gostaria de ver.npm run build:bubo
É isso! Agora você deve ter uma página estática com links para o conteúdo mais recente dos seus feeds na pasta public
, pronta para veiculação.
As peças estáticas:
conf/feeds.json
- um arquivo JSON contendo URLs de feed separados em categorias.config/template.html
- um modelo Nunjucks que permite alterar a forma como os feeds são exibidos. Isso pode ser alterado para qualquer outra coisa que você desejar - veja abaixo.public/style.css
- um arquivo CSS para estilizar a saída do seu feed.public/index.html
- O arquivo HTML que é gerado automaticamente quando o Bubo é executado.O motor:
src/index.ts
- O script principal que você executa quando deseja construir uma nova versão do Bubo. Ele buscará automaticamente o conteúdo mais recente de seus feeds e criará um novo arquivo estático em public/index.html
.src/renderer.ts
— O renderizador que carrega o Nunjucks, o modelo e entende como processar os dados do feed recebidos. Prefere outra coisa? Este é o lugar para mudar isso!src/utilities.ts
— Uma variedade de utilitários de análise e normalização para Bubo, escondidos para tentar manter as coisas limpas. No arquivo index.ts
principal, você encontrará dois valores que permitem agrupar e limitar suas solicitações de feed:
MAX_CONNECTIONS
determina o número máximo de solicitações que um lote pode receber ao mesmo tempo.DELAY_MS
determina a quantidade de tempo de atraso entre cada lote. A configuração padrão é sem lotes ou limitação porque MAX_CONNECTIONS
está definido como Infinity
. Se você quisesse alterar o Bubo para buscar apenas um feed por vez a cada segundo, você poderia definir estes valores para:
const MAX_CONNECTIONS = 1 ;
const DELAY_MS = 1000 ;
Se você quiser limitar as coisas a 10 solicitações simultâneas a cada 2,5 segundos, poderá configurá-lo assim:
const MAX_CONNECTIONS = 10 ;
const DELAY_MS = 2500 ;
Na prática, nunca tive problemas ao deixar MAX_CONNECTIONS
definido como Infinity
mas isso parece uma proteção sensata para o design.
A maneira mais rápida é remixar o projeto no Glitch: https://glitch.com/edit/#!/bubo-rss
Há também um branch glitch
neste repositório, se você preferir começar por aí.
Basta alterar alguns feeds no arquivo ./config/feeds.json
e pronto! Se desejar modificar o estilo ou o modelo, você pode alterar o arquivo ./public/style.css
ou o arquivo ./config/template.html
respectivamente.
config/feeds.json
para gerenciar seus feeds e categorias As configurações de implantação devem ser importadas automaticamente do arquivo netlify.toml
. Tudo que você precisa fazer é confirmar e você está pronto para começar!
Para manter seus feeds atualizados, você desejará configurar um Build Hook para seu site Netlify e usar outro serviço para fazer ping de vez em quando para acionar uma reconstrução. Eu sugiro investigar:
Se você já possui um servidor rodando Linux e alguma experiência em linha de comando, pode ser mais simples configurar um cron job.
Você pode ver demonstrações ao vivo aqui:
Se você achou isso útil, considere patrocinar a mim ou a este projeto.
Se preferir executar isso em seu próprio servidor, considere usar um desses links afiliados para configurar uma microinstância no Linode, Digital Ocean ou Vultr.
Aqui estão alguns sites que usam o Bubo Reader:
Por favor, compartilhe se você gostaria de ser apresentado!