Este script hecho con Tweepy (librería de Twitter en Python) nos va a servir si queremos sanear nuestras listas de seguidores o seguidos, nos va a señalar los que son poco activos: O que hace mucho que ya no tuitean, por lo que podría ser una cuenta abandonada, o que tuitean muy poco, pasan grandes intervalos de tiempo entre tuits. No vamos a tener en cuenta los retweets, ya que esa acción es muy fácil de hacer e incluso de automatizar, nos centraremos en tweets y replys.
Lo primero, nos validamos y obtenemos el objeto api
import datetime
import tweepy
import csv
from secrets import *
miuser = "yo"
ck=keys[miuser]
auth = tweepy.OAuthHandler(ck['consumer_key'],ck['consumer_secret'])
auth.set_access_token(ck['access_token'], ck['access_secret'])
api = tweepy.API(auth, wait_on_rate_limit=True, wait_on_rate_limit_notify=True, compression=True)
Lenguaje del código: Python (python)
A continuación metemos en un array todos los IDs de nuestros followers o friends:
users = tweepy.Cursor(api.followers_ids, screen_name=miuser, count=10000).items():
Lenguaje del código: Python (python)
En el caso de los friends, sería “friends_ids”
Ahora procesamos esos IDs, de cada ID obtenemos los 3 últimos tweets o replys. Comparamos la fecha/hora actual con la de esos 3 tweets, y obtenemos la diferencia en horas.
now = datetime.datetime.now()
result=[]
for user in users:
try:
tweets = api.user_timeline(
user_id=user,
count=3,
include_rts=False)
times = []
for tweet in tweets:
tiempo = round((now - tweet.created_at).total_seconds() / 3600.0)
times.append(tiempo)
if len(times)>0:
times.insert(0,tweet.user.screen_name)
result.append(times)
time.sleep(1)
except tweepy.TweepError:
time.sleep(20)
final_result = sorted(result, reverse=True, key = lambda x:x[1])
with open("resultado.csv", 'w') as csvfile:
csv_writer = csv.writer(csvfile)
for k in final_result:
csv_writer.writerow(k)
csvfile.flush()
Lenguaje del código: PHP (php)
Y grabamos cada username de cada follower/friend con las 3 diferencias horarias separadas por comas en un fichero CSV llamado ‘resultado.csv’. Previamente hemos ordenado la lista por el valor del primer tiempo de forma descendente, de manera que los usuarios con el primer tweet con más diferencia horaria saldrían arriba.
Nos quedaría una lista con lineas de este tipo:
pepe,21,36,39
Lo que quiere decir que el usuario “pepe” tuiteó sus tres últimos tweets hace 21 horas, hace 36 y hace 39 .
Deja una respuesta