Quantcast
Channel: Planeta Código
Viewing all articles
Browse latest Browse all 2715

Picando Código: Procesando Feeds RSS de TinyRSS para consumo OPML

$
0
0

Ruby RSSHace un buen tiempo usaba TinyRSS, un lector RSS web alojado en mi servidor. Pero no recuerdo si fue por actualizar PHP o el código de Tiny Tiny RSS mismo, se rompió la instalación. Decidí volver a usar alguna aplicación de escritorio, por el momento estoy usando Akregator en KDE, pero vi que Thunderbird también permitía la importación de Feeds RSS.

Como no quería ingresar los feeds a los que estaba suscripto de a uno y a mano, entré al phpMyAdmin de mi servidor, y me fijé en qué tabla se encontraban mis feeds. La tabla en cuestión es ttrss_feeds, que incluye los campos title y feed_url. Este último el único que realmente me importa para poder tener mis suscripciones. Desde phpMyAdmin mismo tenemos una funcionalidad de exportar las filas de una tabla, y podemos elegir entre varios formatos. Así que exporté los datos en formato JSON al archivo ‘feeds.json’, que en Ruby es súper fácil de procesar.

Intentando importar en Thunderbird o Akregator, OPML era una de las opciones. Así que tenía que ver cómo se formatea un OPML y traducir el JSON a este formato. Agregué un feed de ejemplo a Thunderbird, exporté mis feeds a un archivo OPML, y ahí tenía mi ejemplo. OPML (Outline Processor Markup Language) es un formato XML para esquemas. Y no necesitamos demasiados detalles, en cada “outline” (esquema), hay que definir el título y la URL del sitio y el feed. Todo información que pude extraer del JSON exportado en phpMyAdmin. Cada elemento dentro de la data del JSON se ve algo así:

{"id":"4", 
"title":"OMG! Ubuntu!", 
"feed_url":"http:\/\/feeds.feedburner.com\/d0od",
"site_url":"https:\/\/www.omgubuntu.co.uk", "auth_login":"", 
... # varios campos más que son irrelevantes
}, 

Con los campos title, feed_url y site_url, tenemos lo necesario.

Usando el OPML exportado de ejemplo, abrimos el JSON, lo procesamos, y creamos un nuevo archivo ‘feeds.opml’ con lo necesario:

require 'json'
require 'json'
require 'time'

file = File.read('./feeds.json') # El archivo con los feeds
data = JSON.parse(file)[2]['data']

template = []
template << <<~OPML

  
    Custom Ruby OPML Export - Blogs & News Feeds
    #{Time.now.httpdate}
  
  
OPML

feeds = []
data.each do |feed|
  title = feed['title'].gsub('&', '&')
  feed_item = <<-OPML
    
  OPML
  feeds << feed_item
end
template << feeds

template << <<~OPML
  

OPML
File.write('feeds.opml', template.join)

El resultado feeds.opml:

  

  
    Custom Ruby OPML Export - Blogs & News Feeds
    Fri, 11 Nov 2022 08:53:46 GMT
  
  
    
    
    
    ...
    
  

No sólo lo tengo importado en Akregator, ahora tengo una forma de mantener mis feeds en un archivo portable para leer en cualquier dispositivo.
Espero que a alguien más le sirva de algo 👍🏻

El post Procesando Feeds RSS de TinyRSS para consumo OPML fue publicado originalmente en Picando Código.

Viewing all articles
Browse latest Browse all 2715

Trending Articles


Girasoles para colorear


mayabang Quotes, Torpe Quotes, tanga Quotes


Tagalog Quotes About Crush – Tagalog Love Quotes


OFW quotes : Pinoy Tagalog Quotes


Long Distance Relationship Tagalog Love Quotes


Tagalog Quotes To Move on and More Love Love Love Quotes


5 Tagalog Relationship Rules


Best Crush Tagalog Quotes And Sayings 2017


Re:Mutton Pies (lleechef)


FORECLOSURE OF REAL ESTATE MORTGAGE


Sapos para colorear


tagalog love Quotes – Tiwala Quotes


Break up Quotes Tagalog Love Quote – Broken Hearted Quotes Tagalog


Patama Quotes : Tagalog Inspirational Quotes


Pamatay na Banat and Mga Patama Love Quotes


Tagalog Long Distance Relationship Love Quotes


BARKADA TAGALOG QUOTES


“BAHAY KUBO HUGOT”


Vimeo 10.7.0 by Vimeo.com, Inc.


Vimeo 10.7.1 by Vimeo.com, Inc.