mica Profile picture
Jun 22 12 tweets 6 min read Read on X
La semana pasada les conte como saque pasajes a 60 dólares para conocer Europa gracias a que me arme un bot en Telegram para avisarme cuando una aerolínea especifica pusiera precios bajos en una ruta que yo estaba esperando. Aca enseño como pueden armarse uno. Image
La premisa: La aerolínea anuncio que "en algun momento" del mes iba a lanzar una promo de pasajes a 8 usd y avisarlo por mail. Yo sabia que si esperaba ese mail probablemente no sea de las primeras en recibirlo, y seguro no lo iba a abrir a tiempo...
Antes de seguir, les recomiendo @belo_app: si cobran por Deel, Payoneer o PayPal, belo les abre una cuenta gratis en EE.UU, pueden recibir USD con 0% de comisión. Usen mi referido MICAELAS198, me ayudan a seguir haciendo estos hilos gratuitos! <3 simple.belo.app/app/referral?r…
Investigación general de la pagina: todas son distintas y tienen mas o menos medidas para evitar que interactúen bots, asi que primero tuve que investigar un poco como estaba armada. Aca podemos usar webscrapping con Selenium, o consultas via API
Selenium es una herramienta para que interactue como un humano normal, con la ventaja de que es mas difícil que sea detectado, pero con la desventaja de que hay que estar indicándole paso por paso que botón debe tocar, y que hacer, lo que suele tomar mucho tiempo mas.
Esta opcion es super valida, los que me siguen desde hace mas tiempo quizas saben en la epoca en la que costaba menos un viaje a mar del plata que un alfajor (2022), habia armado un bot para conseguir esos pasajes. El problema era que las apis de los trenes eran cerradas, poco claras y eficientes, y para conseguir un pasaje habia que hacer muchos pasos hasta descubrir si habian disponibles o no, en casos como esos Selenium es una buena opcion!
Lo que hice en este caso fue consultar por API. Me fije en la pagina de la aerolínea, abriendo las opciones de desarrollador, y busque en el Network cual era la pagina interna a la que le pegaba cada vez que se hacia una consulta al calendario. La probe un poco y descubri algo clave: no pedia autenticacion, no validaba sesiones abiertas ni tenia un rate-limit de consultas, no es el comportamiento ideal si sos el dueño de la pagina, pero si el mejor para nosotros que queremos hacer un bot para reventarlos a consultas periodicamente.
Desde ahí vemos que se le pasan varios parámetros como la ruta de destino, llegada, y fechas, y tambien tenemos un formato de un JSON de como llegan esos datos, esto va a ser clave para analizar despues!Image
Image
Ya con toda esta información pasamos a Cursor, que para quien no lo conoce, es un IDE que tiene integrados varios modelos de lenguaje natural de inteligencia artificial lo que nos permite pasarle varias especificaciones de algo que nos interese hacer y directamente escribe el código para nosotros. Se lo pueden descargar desde su pagina oficial (cursor.com), yo lo pago porque lo uso siempre, pero tienen version de prueba gratis por 2 semanas, alcanza y sobra para esto.

Para este bot lo que necesitamos fue:
1. Crear una app que tenga un cronjob (una función que se llame constantemente cada x cantidad de tiempo) con frecuencia 2 minutos
2. Que consulte a una API (aca le pasamos el link que encontramos en los headers) y retorna lo siguiente en cada llamada: (aca le pasamos lo que encontramos que devuelve en el network ese llamado)
3. Crear una base de datos donde podamos guardar la información conseguida.
4. Informar via un bot de Telegram, cuando haya un precio encontrado por debajo de un umbral que vamos a definir, en este caso menos de 250 dólares.
Entonces con toda esa información podemos armar un prompt para Cursor, le podemos dar mas indicaciones como por ejemplo en que lenguaje hacerlo o que base de datos usar, yo por ejemplo use Nodejs (lo cual me sirvió de mucho porque existe la librería node-telegram-bot-api, lo que lo hace super fácil todo después) pero tambien podrian haber usado Python. Yo recomiendo el modelo claude-4-thinking porque me parece magnifico, pero creo que con un 3.7 o 4 normal se podría conseguir resultados similares. Lo clave aca es que podemos aprovechar para consultar TODO lo que no entendamos, por ejemplo yo nunca había hecho un bot asi que me aparecían cosas nuevas que yo no entendia, por ejemplo esto de el id del chat de Telegram, o como armar el bot en si.
Para levantar el bot una vez que tenemos todo listo. tenemos que hablarle a @/.BotFather en Telegram, es un servicio gratuito verificado al que simplemente le mandaremos el comando /newbot, le ponemos un nombre que termine en _bot y eso nos va a dar un token, ese es el que tenemos que copiar y pasárselo al bot que acabamos de hacer en Cursor, y ponerlo en un archivo .env, por ejemplo yo lo tenia en una variable que se llamaba "TELEGRAM_BOT_TOKEN" (esto va a depender de como se configure en su archivo). Aca una foto de como estaba el servicio de alertas. El chatID es el destinatario del mensaje. En mi caso personal, yo no hice este bot con intenciones de venta, por lo tanto los IDS los cargaba a mano y lo subia como variable de entorno, si no conocen cual es el id de su usuario de Telegram (no es un nombre, son solo números) lo pueden consultar al de bot @/.userinfobot.Image
Image
Con eso ya tienen lo básico, después de eso es inicializar la base de datos (le pueden pedir a cursor que les genere los archivos del SQL que necesiten, yo por ejemplo use Supabase porque lo tenia activo en diferentes computadoras y en algún momento pensé en dejarlo hosteado en vez de tenerlo corriendo en local (recomendado si lo van a hacer a largo plazo). Como siempre hosteo todo en Vercel en su versión gratuita, y en este caso no me dejaba tener cronjobs cada tan poco tiempo, preferí no enroscarme y hacerlo en local. Si no tienen conocimientos tecnicos, les recomiendo hacerlo todo en local, le piden ayuda a Cursor para que les haga una base SQLite, y que les enseñe el paso a paso de como levantarlo con algun gestor tipo DBeaver.
Una vez que ya tienen una versión inicial estable, es ir probando, jugando y haciéndole correcciones de como creen que quedaría mas fácil. A mi por ejemplo al principio me andaban raras las fechas porque se consultaban con otro formato, o me tomaba información que no me servia del todo. Todo error que nos aparezca por consola podemos mandárselo a Cursor para que nos ayude a entenderlo, o en todo caso, que corregir para que funcione.
El objetivo es poder ir personalizarlo de la forma que les resulte mas util para el fin que estan haciendo su bot.
Si llegaron hasta aca, les agradezco por leer! Voy a estar respondiendo consultas un ratito. Mis MDs estan abiertos siempre para preguntas y cotizaciones de freelos, tengo agenda abierta para desarrollos en julio :) Image

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with mica

mica Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @micascapino_

Mar 14
la parte más difícil de cobrar en dólares y trabajar para afuera, para mi, siempre fue entender cómo iba a lograr para comprarme una casa o un auto porque pensaba que facturar era difícil o muy caro y no me iba a convenir. les comparto algunas cosas que aprendí 🧵 Image
lo primero que aprendí es: blanquear como monotributista es MUCHO más barato que como empleado. yo siempre pensé que era al revés, en la primera foto están las escalas de 2025 del monotributo. Ahí se pueden ver las escalas del monotributo y cuánto pagas por mes (eso ya incluye aportes jubilación y obra social)
cuando era empleada, todos los meses sufría cuando veía mi sueldo bruto y todo lo que me descontaban, ni hablar si llegaba ganancias. 18% como mínimo, y hasta 35% extra por ganancias. hoy en día un sueldo de 2.4 millones bruto te descuentan mas de $450mil, como MT una facturación mensual del mismo monto, se paga menos de $100milImage
Image
Read 8 tweets
Dec 10, 2024
a un amigo le salió un laburo en europa y tiene que estar allá ESTE SÁBADO, el no tiene tarjeta, consiguió que le presten una y estuvo HORAS llamando a visa intentando que autoricen la compra, me pidió ayuda porque estaba como loco, abro hilo del momento más lindo de esta semana Image
arrancó el día con mi amigo pidiéndome ayuda para conseguir un vuelo barato porque le salió esta oportunidad de la nada y el, además de ser recontra laburador ama viajar y nunca pudo ir a europa hasta ahora así que era toda ANSIEDAD.
ya de por sí fue un quilombo porque él no tiene tarjeta de crédito ni caja de ahorro en dólares, si pagaba con alguna tarjeta tipo mercado pago le iban a cobrar el dólar a 1600, asi que era una opción descartada. un pariente le prestó una tarjeta pero no le pasó, autorizar en visa, en el banco y llamar por poco al presidente no funcionó, porque la aerolínea además tenía un método de validación específico donde llegarían mensajes a un número de teléfono o mail asociado a la tarjeta (y no llegaban)
Read 8 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us!

:(