Skip to content

rubenmartinm/news-digest

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 

Repository files navigation

news-digest

Script para recibir por correo electronico nuevos números de publicaciones en PDF, enlaces de noticias de sitios sin feed RSS, etc.

Introducción

¿Has visto alguna vez una publicación mensual de una revista o dossier en PDF que te interesa y no puedes suscribirte por RSS? ¿Alguna web con artículos sin feed RSS?

O simplemente, quieres recibir ciertos contenidos en un correo de toda la vida para leerlos tranquilamente.

La motivación de hacer este script nace de esa necesidad.

A grandes rasgos, se trata de disponer de un equipo con conexión continua a internet (EC2 de Amazon, Raspberry Pi, DD-WRT, Tomato, SnakeOS, etc.) con un pequeño script que nos envíe un resumen diario o semanal con los cambios en ciertas páginas.

Alternativas

Existen varios sitios en internet que pueden dar un servicio análogo pero un script personalizado siempre se ajusta mas a nuestro gusto. Algunos ejemplos son:

Si no encuentras nada que te guste siempre puedes empezar a usar news-digest ;-)

Fuentes de publicaciones

Principalmente hay tres tipos de fuentes:

  • Definidas por el usuario mediante el archivo CSV contenidos.txt
  • Fuentes con URLs especiales autogeneradas. P.e.: http://es.globalvoicesonline.org/AÑO/MES/DIA
  • Fuentes adicionales incluidas a fuego en el script: Actualmente Wikiquote aleatoria y Wikipedia aleatoria

Instalación

$ git clone https://github.com/rubenmartinm/news-digest.git

Configuracion

Configuración de las fuentes de datos

Abrimos contenidos.txt con nuestro editor habitual para añadir/modificar nuestras fuentes. Cada fuente esta definida en una línea del archivo en formato CSV.

Los parámetros necesarios son los siguientes:

fuente            : nombre identificador de la fuente
url               : url del html

La ´fuente´ es el nombre identificador que aparecerá como título seguido de sus enlaces (si ha habido cambios en la fuente al generar el correo), p.e.: web de revista

La 'url' es la dirección de la página p.e. http://url.a.mirevista.es/ArchivoRevista/Hemeroteca

sw_rama           : 1 = buscar desde rama, 0 = buscar en todo el html

etiqueta_rama     : tag para buscar la rama a partir de la cual buscar
atributo_rama     : atributo para filtrar = title, class, etc
valor_rama        : cadena a buscar

Este bloque de parametros marca si necesitamos circunscribir la búsqueda a una rama concreta dentro del html.

El valor de 'sw_rama' definirá esta opción.

Si 'sw_rama' es '1':

La 'etiqueta_rama' es el tag de la rama raiz, 'atributo_rama' es el atributo y 'valor_rama' el valor a buscar p.e. div;class;columna_principal -> < div class="columna_principal" >

Para encontrar los valores adecuados es recomendable usar el Firebug para Firefox o en Chrome Menu -> Tools -> Developer Tools.

etiqueta_elemento : tag html a buscar para los enlaces
atributo_elemento : atributo para filtrar = title, class, etc
valor_elemento    : cadena a buscar

Idem que para la rama pero esta vez para los enlaces concretos a las noticias.

no_deseados       : cadena expresion regular no deseados
lineas_a_truncar  : cualquier linea antes del <html> que hace fallar el script

Por último dos parámetros adicionales que me han resultado necesarios:

'no_deseados' es una cadena para descartar enlaces no deseados mediante una expresion regular.

'lineas_a_truncar' es un contador de líneas a descartar antes de < html > que en alguna página es necesario :-?

Configuración necesaria para el envío de correo electrónico

Abrimos news-digest.py con nuestro editor habitual para modificar nuestra configuración de envío del mail, en mi caso el elegido es el SMTP de Gmail.

# Envio de correo por smtp.google.com
gmail_user = "USUARIO_GMAIL"
gmail_pwd = "PASSWORD_GMAIL"

# Correo destinatario
mail_to = "CORREO"

Configuración adicional para la ejecución desde un cron (opcional)

Simplemente para que las referencias a los archivos tengan las rutas completas.

# Para la ejecucion del script desde un cron
ruta = "RUTA COMPLETA"

Dependencias

About

Script para recibir por correo electrónico nuevos números de publicaciones en PDF, enlaces de noticias de sitios sin RSS, etc.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages