MiguelGalp / odio_oido

**Odio oído** es una herramienta predictiva. Trackeamos el riesgo de toxicidad en Twitter por país 24/7
https://odio-oido.lat
Other
2 stars 1 forks source link

Definir la frecuencia de fetch #11

Open MiguelGalp opened 8 months ago

MiguelGalp commented 8 months ago

El fetch se hace desde una IP no oficial (dado que la app scrapea Twitter). Este script muestra cómo se realiza ese fetch (sin incluir información sensible). Es necesario optmizar la frecuencia sin sobrepasar el límite. Ver documentación Twscrape.

rolivencia commented 8 months ago

Para definir la frecuencia del fetch tal vez sería importante considerar los horarios en los cuales se recomienda publicar en Twitter. La plataforma Buffer tiene tres o cuatro horarios por día recomendados, que más o menos giran en torno a estos:

image

MiguelGalp commented 8 months ago

Gracias por el dato @rolivencia, Buffer es un excelente servicio.

En este caso, sin embargo, el tema es que la idea central es aproximarse lo más posible al tiempo real. Es decir, la idea es explorar los límites de la API.

En este sentido, la documentación de la librería de scrapeo (twscrape) dice:

the reqest limit is updated every 15 minutes for each endpoint individually e.g. each account have 50 search requests / 15 min, 50 profile requests / 15 min, etc. API data limits: user_tweets & user_tweets_and_replies – can return ~3200 tweets maximum

El script limita a 10 tweets nuevos por fetch (un límite que puse a razón de que no creo que alguien pueda publicar más que eso cada 15 minutos). Es decir que el número total de tweets no parece ser problema, sobretodo porque no hace falta seguir a muchos usuarios (en este momento 20, tal vez sea necesario bajar este número para hacer más corto el intervalo)

Los detalles son los siguientes:

Si el usuario es baneado por pasarse del límite aparece un tema sensible porque no son infinitas las cuentas que se pueden crear con un mismo número de teléfono como 2FA. No sería grave, pero...

El límite de la API marca 50 requests cada 15 minutos. Entonces... ¿serán 20 los requests por fetch que hace el script? ¿Un request por usuario? Es posible que la función "gather" haga más de un request por user...estoy leyendo los issues y PRs para ver si alguien aclara sobre esto.

Actualmente el fetch funciona cada 30 minutos, mi duda está en bajarlo a 15 a riesgo de que baneen alguno de los usuarios.