Con la ayuda de cron y python podemos pre-programar el envío de tweets sin que estos se repitan y llevar un registro de los que se han enviado. Este corto script hecho en python es mi segunda aventura con este lenguaje que poco a poco me esta enamorando.
La lógica es simple, leo un archivo que contiene un tweet por linea, actualizo mi estado en twitter con el contenido de esa linea, registro los resultados en un archivo y por ultimo elimino esa linea del archivo evitando así repetir el mismo tweet. Veamos el código fuente:
#!/usr/bin/python
import twitter
import datetime
now = datetime.datetime.now()
with open('/scheduler/lista.txt', 'r') as f:
first_line = f.readline()
first_line = first_line.strip('\n')
print first_line
f.close()
logfile = open('/scheduler/procesados.txt','a')
fecha=now.strftime("%Y-%m-%d_%H:%M:%S")
logfile.write(fecha + ' ' + first_line + '\n') # python will convert \n to os.linesep
logfile.close()
#Send Tweet
api = twitter.Api(consumer_key='<YOUR CONSUMER KEY>',
consumer_secret='<YOUR CONSUMER SECRET>',
access_token_key='<YOUR ACCESS TOKEN KEY>',
access_token_secret='<YOUR ACCESS TOKEN SECRET>')
status = api.PostUpdate(first_line)
print status.text
#removing status from queue
lines = open('/scheduler/lista.txt').readlines()
open('/scheduler/lista.txt', 'w').writelines(lines[1:])
Alimentando el script.
Como vieron en el código fuente, solo necesitamos proporcionarle el archivo lista.txt donde cada tweet dependiendo del tipo tiene limitaciones de longitud distintas. Si no posee un hyper vinculo el limite es de 117 caracteres excluyendo la URL mientras que si no tiene un hiper vinculo el limite es de 140 caracteres. El archivo /scheduler/lista.txt se vería algo así:
Just ran out of bacon, feel like the room seems to be shrinking, please help! send some bacon & while U are there a beer would be cool too
Programador de tweets hecho en python http://orvtech.com/howto/planificador-tweets-python/
...
Automatizando el envío de tweets.
Leí un poco y se que se puede hacer un demonio y dejar que python se encargue de esto pero para comenzar decidí hacerlo usando cron. Me decidí a tuitear dos veces por día entre semana mientras que los fines de semana solo una vez. Mi crontab se ve así:
15 15 * * 0,6 /usr/bin/python /scheduler/reader.py >> /scheduler/reader.log 2>&1
14 6 * * 1-5 /usr/bin/python /scheduler/reader.py >> /scheduler/reader.log 2>&1
11 20 * * 1-5 /usr/bin/python /scheduler/reader.py >> /scheduler/reader.log 2>&1
Programador de tweets hecho en python es un articulo de: orvtech.com
La entrada Programador de tweets hecho en python aparece primero en orvtech: Linux, Android, BASH Scripts, y Fedora.