Vamos a usar la librería Tweepy de Python para hacer una copia de seguridad de nuestras listas de usuarios de Twitter: Listas, bloqueados, silenciados, seguidores y seguidos; de manera que más adelante, si algo le pasara a nuestra cuenta, los pudiéramos restaurar (los seguidores no, evidentemente) en otra cuenta.
Lo primero, nos validamos y obtenemos el objeto api
import time
import tweepy
import csv
from secrets import *
miuser = "yo"
currkeys=keys[miuser]
auth = tweepy.OAuthHandler(currkeys['consumer_key'], currkeys['consumer_secret'])
auth.set_access_token(currkeys['access_token'], currkeys['access_secret'])
api = tweepy.API(auth, wait_on_rate_limit=True, wait_on_rate_limit_notify=True, compression=True)
Lenguaje del código: JavaScript (javascript)
A continuación, depende de lo que queramos hacer copia de seguridad:
Listas
Tenemos una lista de usuarios favoritos llamada “Gente que seguiría”. La tenemos que pasar a formato slug. El formato slug ya sabeis lo que es: El nombre sustituyendo acentos y cualquier otro carácter extendido por uno simple, y espacios por guiones. Se puede convertir cualquier nombre a formato slug online, por ejemplo en Slugify
Aunque ojo, porque he visto que en Twitter, los acentos los sustituye también por guiones. Por lo tanto nos queda:
lista = “gente-que-seguir-a”
Y sacamos los usuarios de esa lista, donde “yo” es el username propietario de esa lista.
users = tweepy.Cursor(api.list_members, "yo",lista).items()
Lenguaje del código: JavaScript (javascript)
Bloqueados
users = tweepy.Cursor(api.blocks).items()
Silenciados
users = tweepy.Cursor(api.mutes).items()
Seguidores
users = tweepy.Cursor(api.followers, screen_name="yo").items()
Lenguaje del código: JavaScript (javascript)
Seguidos
users = tweepy.Cursor(api.friends, screen_name="yo").items()
Lenguaje del código: JavaScript (javascript)
Una vez tenemos la lista de usuarios que vamos a guardar, la pasamos a un fichero CSV.
HEADER = ['Screenname']
def processing_loop(csvfile):
csv_writer = csv.writer(csvfile)
csv_writer.writerow(HEADER)
while True:
try:
user = next(users)
print(user.screen_name)
except tweepy.TweepError:
time.sleep(20)
user = next(users)
except StopIteration:
break
csv_writer.writerow([user.screen_name])
csvfile.flush()
time.sleep(2)
with open('lista.csv', 'w') as csvfile:
processing_loop(csvfile)
Lenguaje del código: JavaScript (javascript)
Y ahora, vamos a ver el procedimiento de restaurar esas listas.
Partimos de nuevo del objeto api. Leemos el fichero CSV grabado antes:
with open('lista.csv') as f:
reader = csv.reader(f)
next(reader) # nos saltamos la HEADER del CSV
for row in reader:
try:
print(row[0])
COMANDO
except tweepy.TweepError:
time.sleep(20)
except StopIteration:
break
time.sleep(5)
Lenguaje del código: PHP (php)
Donde pone “COMANDO”, lo sustituimos por la acción que corresponda, dependiendo si estamos restaurando:
Listas
api.add_list_member(screen_name=row[0], slug=lista, owner_screen_name='yo')
Lenguaje del código: JavaScript (javascript)
Bloqueados
api.create_block(screen_name=row[0])
Silenciados
api.create_mute(screen_name=row[0])
Seguidos
api.create_friendship(row[0])
Lenguaje del código: CSS (css)
Ojo con esta última. Hacerla de manera muy escalonada, ya que seguir a muchos usuarios de golpe no gusta nada a Twitter, ya que independientemente de las limitaciones que tiene de seguidos por día, puede empezar a enviarte validaciones de “No soy un bot”, de teléfono, meterte shadowbans o peor.
Deja una respuesta