Crear un Demonio en Twitter con Python

Demonio en Twitter con Python
Demonio en Twitter con Python

He ido un poco más allá con Twitter y Python y la idea de hoy es compartirles un demonio que realicé para subir artículos del blog a Twitter. Para los que no conocen el termino "Demonio" no se asusten jeje, el termino "Demonio" en programación significa algo que se está ejecutando en segundo plano y no tiene interacción con el usuario.

No explicaré de cero como conectarse con una aplicación Twitter, para eso les dejo la entrada anterior que lo explica: Enviar un Tweet con Python

También puedes seguirme en Twitter @PythonDiario para ver como siguen mis investigaciones.


¿Que es lo que hace el Demonio?

Lo que hace es publicar cada 10 minutos en Twitter el titulo y el enlace de una entrada del blog. Estos datos los saco de un archivo de texto (cada linea es un titulo + url). Y con un while True y un for hago que esto se repita de manera infinita. Cuando el archivo de texto se queda sin líneas (Tweet) se vuelve a repetir desde el principio.

Ventajas:

  • Olvidarte de estar haciendo tweets a cada rato para hacerles acordar a tus seguidores que tienes entradas super interesantes 😉
  • Pueden surgir nuevos seguidores con los reTweets
  • Puedes trabajar en otra cosa mientras el demonio hace su trabajo 
  • Alguna más que no se me ocurre 😀

Desventajas:

  •  Una de las desventajas mas grandes es agobiar al seguidor. Quizá se pueda estirar la duración entre Tweets o usar alguna otra extrategia.
  • Cada vez que apagas el PC se corta el envío.
  • Se cae nuestra conexión a internet y fuimos jeje
  • Alguna más que no se me ocurre 😀

El script lo hice recientemente y no tiene mucho Testing, al momento de escribir el artículo van subiendo 7 entradas del blog a Twitter cada 10 minutos. Pero no se si puede fallar en algún momento 😡

También decirles que monté el Demonio en un servidor linux en la nube y lo ejecuté desde ahí para olvidarme de tener que apagar el PC o que se me flipe la conexión a internet (se ejecuta las 24 horas).

El servidor lo monté en Digital Ocean, 5 dólares por mes (ubuntu, 512 de RAM y 20GB de disco), pueden crearse una cuenta y experimentar ustedes mismos, cualquier duda de funcionamiento me pueden dejar un comentario. Les dejo el enlace para que se creen uno: Digital Ocean

Va el código, en los comentarios del mismo verán lo que hace cada parte:

from twython import Twython
import time
import os
 
# Claves de la aplicacion Twitter
 
app_key = ""
app_secret = ""
oauth_token = ""
oauth_token_secret = ""
twitter = Twython(app_key, app_secret, oauth_token, oauth_token_secret)
 
def leertxtenlista():
  
 # Bucle infinito
 while True:
  
  try:
   mensaje = ""
   
   # Abrimos el archivo
   archi=open('/home/diego123/Escritorio/Feed','r')
   lineas=archi.readlines()
   
   # Bucle para recorrer todas las entradas
   for li in lineas:
   time.sleep(0.01)
   mensaje = li
   # Agrega el Tweet
   twitter.update_status(status=mensaje)
   # Lapso de tiempo entre Tweets
   time.sleep(600)
    
   archi.close()
  
  except:
   
   time.sleep(3)
   pass
  
 
leertxtenlista()

Los datos de app_key, app_secret, oauth_token y oauth_token_secret van dentro de las comillas y lo sacan de la aplicación Twitter.

Este ejemplo muestra algo que me ha sido útil a mi para el blog, pero lo comparto para que puedan darse ideas y utilizarlo a su conveniencia.

Espero que esta entrada sea de ayuda. Más adelante seguiré publicando investigaciones sobre este tema. No dudes en dejar sugerencias, críticas o lo que sea, todo comentario enriquece.

Saludos, Diego...

  1. Anónimo dice:

    Muy interesante. ¿Habrá alguno para Gmail? (por ejemplo enviar correos a futuro). Salu2

    1. PythonDiario dice:

      Hola y gracias por visitar el blog!!! Puedes pasarte por esta entrada: Enviar correo con python, ahí puedes inventarte algún bucle infinito que te mande correos, es cuestión de ponerse a pensar ;). Saludos

  2. Er Coto dice:

    Para quien quiere iniciarse en Python, puedes darme algún enlace?

    1. PythonDiario dice:

      Hola Erwin, gracias por visitar el blog. Puedes fijarte en este enlace: Tutorial Python desde cero . Tutoriales hay muchos por la web, también puedes descargarte algún libro PDF. Saludos

  3. Bienestar_y-Salud dice:

    hola yo tengo una duda como puedo hacer si quiero crear ya sistemas de información con el lenguaje de python Diego Caraballo

    1. PythonDiario dice:

      Hola Princess, no entiendo tu pregunta. Saludos

  4. Unknown dice:

    Hola, a lo mejor es una pregunta muy tonta pero realmente no lo se; las app_key, app_secret, oauth_token, oauth_token_secret y todo esto de la aplicación twitter... de dónde las saco? Gracias

    1. PythonDiario dice:

      Hola José, gracias por pasarte por el blog ;). En el comienzo de la entrada hay un link que dice "Enviar un Tweet con Python", ahí explico bien de donde se sacan esos datos. Saludos

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir

Te has suscrito correctamente al boletín

Se produjo un error al intentar enviar tu solicitud. Inténtalo de nuevo.

Mi Diario Python will use the information you provide on this form to be in touch with you and to provide updates and marketing.