Onebox de Polling RSS

:information_source: Resumo O RSS Polling Onebox renderiza as importações do RSS Polling como oneboxes do artigo original, com resumos de feed, descrições do YouTube e formatos de título opcionais
:hammer_and_wrench: Link do Repositório Peter-Petrik/discourse-rss-onebox
:open_book: Guia de Instalação Como instalar plugins no Discourse

Funcionalidades

  1. Renderização de Onebox: As importações do RSS Polling nas categorias que você escolher se tornam uma onebox da URL do artigo - título, imagem e descrição da página do artigo - em vez do corpo do feed truncado no primeiro parágrafo. Importações em outras categorias permanecem inalteradas.
  2. “Mostrar Post Completo” oculto apenas nas categorias escolhidas.
  3. Resumos de feed (opcional): quando uma página de artigo não possui uma descrição própria, o resumo do feed aparece dentro da onebox, ou abaixo do link se não for possível criar uma onebox.
  4. Descrições do YouTube (opcional): a descrição completa do vídeo do feed do canal aparece abaixo do player, com quebras de linha e links clicáveis.
  5. Formatos de título (opcional): formatos separados para tópicos de blog e YouTube usando %{title} e %{source}, por exemplo %{source} blog: %{title}. As renomeações são silenciosas - sem revisão, bump ou notificação - e os links antigos continuam funcionando.
  6. Nomes de exibição: uma página de administrador lista todos os feeds do RSS Polling com seu nome publicado, onde você pode definir o nome usado para %{source}. Salvar re-renderiza os títulos daquele feed.
  7. Proteção contra atualizações de feed: um post de origem editado ou um formato de feed alterado não sobrescreve mais um tópico que já foi convertido em onebox.
  8. Tarefas Rake para tópicos existentes: rss_onebox:convert converte importações anteriores em oneboxes, e rss_onebox:enhance preenche resumos, descrições e títulos. Ambos têm execução simulada (dry run) por padrão.

Racional

Operamos um fórum que traz os blogs e canais do YouTube dos membros para uma única categoria. Os trechos do RSS Polling renderizavam muitos feeds de forma ruim - formatação quebrada, imagens faltando, um botão “Mostrar Post Completo” que refazia o scraping da página - enquanto a mesma URL colada em um post gerava uma onebox limpa. Este plugin faz com que cada importação pareça com aquele link colado, e preenche o que as páginas sozinhas não podiam fornecer.

Configuração

Após a instalação, vá em Admin → Plugins → RSS Polling Onebox:

  1. Configurações: ative o plugin, selecione as categorias cujas importações devem ser convertidas em onebox e ative os recursos opcionais.
  2. Nomes de exibição: defina o nome usado para %{source} nos títulos, por feed, ou deixe em branco para usar o nome que o feed publica. Atualizar nomes publicados lê todos os feeds habilitados.

Para tópicos importados antes da instalação, execute rake rss_onebox:convert e depois rake rss_onebox:enhance dentro do contêiner (ambos em modo de execução simulada; adicione APPLY=1 para gravar). O README documenta todas as configurações e tarefas, e o CHANGELOG lista todas as versões.

Ressalvas

  1. Testado no Discourse 2026.7 ESR; a compatibilidade com o main até setembro de 2026 é verificada no código. Versões mais antigas não foram testadas.
  2. Requer o RSS Polling, que é incluído com o Discourse.
  3. Alguns recursos envolvem os internos do RSS Polling e do TopicEmbed porque os ganchos documentados ainda não existem; veja RSS Polling: pontos de extensão para plugins.
  4. A leitura nativa de descrições do YouTube no RSS Polling está em discussão em RSS Polling: ler a descrição do vídeo dos feeds de canais do YouTube; se for implementado no núcleo, este plugin o utilizará.
  5. A qualidade da onebox depende das tags Open Graph de cada página de artigo.

Perguntas e problemas: responda aqui, ou abra uma issue no GitHub.

3 curtidas

Eu gostei da ideia e me pergunto o que acham de usá-la com LLMs para criar um resumo bem elaborado, em vez de um trecho arbitrário?

Poderia ser um meio-termo, porque, na minha humilde opinião, apenas colar links parece quebrar o propósito de um fórum.

Obrigado por compartilhar!

2 curtidas

Isso parece ótimo. Eu estava me perguntando: como o seu site é público, será que podemos dar uma olhada para vê-lo em ação, por assim dizer?

Como ele requer o plugin de RSS Polling, isso significa que é necessário configurar o feed em ambos os plugins? Ou apenas no seu?

1 curtida

Obrigado! O texto não é arbitrário, no entanto — é a própria descrição do artigo ou o resumo do feed do autor, então o que os membros veem são as palavras do blogueiro, e não uma paráfrase. O próprio tópico é onde os membros discutem a publicação; o onebox é a porta de entrada para ele.

Um resumo via LLM como opção é uma ideia interessante. Os resumos do Discourse AI resumem o conteúdo de um tópico, que aqui é apenas o link, o que significaria que o plugin leria o artigo e o passaria ao modelo configurado do fórum. Eu gostaria que fosse opcional (opt-in), pois consome tokens e substitui as palavras do autor por geradas — mas anotei a sugestão.

Infelizmente não — nosso fórum é exclusivo para membros, então as capturas de tela acima são direto dos tópicos ao vivo. Ficarei feliz em postar mais se houver algo específico que você gostaria de ver.

Apenas no RSS Polling. Você adiciona e gerencia os feeds lá exatamente como faz hoje; este plugin não tem feeds próprios. Ele atua sobre o que o RSS Polling importa para as categorias que você escolher, e a página de Nomes de Exibição simplesmente lista os feeds do RSS Polling para que você possa nomeá-los.

1 curtida

Que ótimo, Peter, obrigado por considerar isso! Veja, o prompt pode ser ajustado para não alterar o tom do autor e manter o resultado apenas com base nos dados especificados dos links.

Essa é a abordagem utilizada em https://ask.discourse.com, onde as respostas estão fortemente vinculadas à documentação e a uma base curada. O modelo praticamente não usa seus dados de treinamento, e acho que essa é a forma mais inteligente e produtiva de realmente aproveitar a tecnologia.

Também existem modelos de baixo custo que são muito bons em resumir. Portanto, espero que isso seja implementado; pode melhorar a experiência do leitor e também as práticas de SEO/IA-SEO.

1 curtida