README.md 2.95 KB
Newer Older
ALEJANDRO LARES PACHECO's avatar
ALEJANDRO LARES PACHECO committed
1
2
# BotSorteosTwitter

3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
En Twitter todos los días se llevan a cabo sorteos. Por desgracia son muchos, por lo que la única forma de tener una oportunidad de ganar es participando en tantos como sea posible. Por ello, con ayuda de la API de Twitter y la librería 'Tweepy', hemos automatizado la participación de sorteos en twitter.

**Análisis del problema**
A la hora de participar en un sorteo en Twitter, es muy probable que tenga el siguiente formato:

_¡SORTEO ÚLTIMA OPORTUNIDAD!_

_¡Llévate el nuevo 𝗣𝗰𝗖𝗼𝗺 𝗗𝗶𝘀𝗰𝗼𝘃𝗲𝗿𝘆 27" por la cara!_

_- RT_

_- Sigue a_
_@pccomponentes y @pccom_

Como podemos observar, para participar en este sorteo, debemos seguir una serie de pasos que nos pide el tweet. Por suerte, la gran mayoría de tweets piden los mismos pasos:
- Seguir al creador del tweet y a las cuentas mencionadas
- RT
- Me gusta

**Objetivo**
Nuestro bot realizará estos pasos en tweets seleccionados, participando en los sorteos que estos ofrecen para aumentar nuestras probabilidades de éxito.

**Desarrollo**

1. Obtención de tweets

A través de los ejemplos provistos en el GitHub de Twitter '@TwitterDev' obtenemos código de la API para la funcionalidad de 'search recent' en python.
Dicha funcionalidad nos devuelve de los tweets producidos en los últimos 7 días que coincidan con la query que le indiquemos.
En nuestro caso, dicha query especifica que queremos tweets que cumplan lo siguiente:
- Debe contener el string 'sorteo' o 'sorteazo' o 'giveaway'
- Debe contener el string 'rt'
- Debe contener el string 'ps5' o 'switch' o 'Xbox' o 'logitech' o 'iPhone 13'

La API nos devolverá un diccionario con los tweets e información (como el ID del tweet) sobre los mismos que será de utilidad para el siguiente paso.

2. Procesado de tweets
Para este apartado entero, nos aprovecharemos de la librería 'tweepy' que hace que interactuar con los tweets usando python sea muy sencillo.
Por lo que como paso previo, inicializamos tweepy con nuestras claves y tokens.

- RT:

Con el ID del tweet obtenido en el paso anterior, llamamos a la función 'retweet' de tweepy.

- Like:

Con el ID del tweet obtenido en el paso anterior, llamamos a la función 'like' de tweepy.

- Follows:

Aquí hay dos objetivos: Seguir al autor del tweet y a todos los usuarios presentes en el tweet en sí.

a. Autor del tweet:

Simplemente llamamos a la función 'follow_user' de tweepy con el UserID del tweet obtenido en el paso anterior.

b. Mencionados en el tweet:

En primer lugar tratamos el texto del tweet, obteniendo los usuarios. Esto lo logramos extrayendo las palabras inmediatamente posteriores a un '@'(función get_usernames), y guardándolos en una lista que luego será recorrida para obtener su UserID y poder seguirlos con 'follow_user'.

**Resultados**

Podemos comprobar en la cuenta de Twitter usada, que efectivamente 'contesta' a los tweets requeridos con los pasos pedidos, por lo que estaríamos efectivamente participando en dichos sorteos.