RaD3R escribió:#!/bin/bash
FLAG=1
AVISOS=0
while :;
do
clear
date
NUM=$(curl -H "Cache-Control: no-cache" https://www.pccomponentes.com/tarjetas-graficas/geforce-rtx-3080-series | grep "Recíbelo" | wc -l)
figlet $NUM
if [ ! "$NUM" -eq 0 ]
then
echo Hay Disponibles! Avisos: $AVISOS
if [ "$FLAG" -eq 1 ]
then
./telegram -t 137395:AAFI49qwYsl3sdL2HQssfFr7uBwpkPzM0I -c 1234 "Hay $NUM graficas 3080 disponibles!"
FLAG=0
AVISOS=$((AVISOS+1))
fi
else
echo No hay Disponibles... Avisos: $AVISOS
FLAG=1
fi
sleep 10
done
Este es un script "chusquero" que me he hecho yo. Checkea la página de pccomponentes cada 10 segundos, y si encuentra alguna disponible te envía un mensaje a través de un bot a telegram, asegurando así que te llega notificación al móvil. Para no dar la lata sólo te envía la primera vez que encuentra disponible, y no te lo vuelve a enviar hasta que se agoten y vuelvan a poner en stock. No compra la gráfica ni te dice cuál es, sólo te avisa en cuanto ponen cualquier 3080 con teórico stock. También podéis cambiar la url de las 3080 por otra url de pccomponentes que liste sólo las gráficas que te interesen, por ejemplo a través de una lista de deseos (en ese caso pon tu lista de deseos pública, si no no podrás acceder con el bot).
Lo que hay que hacer si alguien quiere utilizarlo. Habrá gente que ya lo sepa, pero lo escribo todo por si acaso.
IMPORTANTE: asegúrate que tienes el comando curl instalado en tu sistema. Si te da un error del tipo "command not found: curl" es por eso. En un comando básico, en Linux/Mac viene de base, pero quizá si te has instalado bash en windows tengas que buscar cómo instalarlo también. En la terminal de bash debería ser así:
sudo apt-get update
sudo apt install curl
Lo mismo para el comando figlet, pero eso sólo es estético para enseñar el número de gráficas disponibles. Si eliminas la línea que dice
figlet $NUM
funcionará igual. Pero ojo, no la dejes si no te instalas el comando figlet también.
Otra cosa
IMPORTANTE que me está preguntando mucha gente: asegúrate de tener los archivos que se necesitan (verás que son dos, el archivo del bot y uno de telegram que te tienes que descargar) en el
mismo directorio donde estés trabajando con la terminal. Puedes ver en qué directorio trabajas en la terminal poniendo
pwd
y si sale del tipo "/home/miusuario" y trabajas en windows, esa carpeta debería ser algo como "c:\Users\miusuario" para que copies los archivos ahí. Puedes verificar que tienes los archivos en el directorio escribiendo
ls
y verificando que los archivos salen en la lista.
Si no están en esa lista el código tal cual está no te va a funcionar.
INSTRUCCIONES (seguir paso a paso):1. Crea un archivo de texto con extensión .sh, por ejemplo
iwannaplay.sh, y copia el código ahí. Este será tu bot que tienes que ejecutar en una terminal bash. En MacOS o Linux la terminal ya es bash, si tienes windows, no tienes terminal bash y quieres instalarla aquí hay un
tutorial.
2. Descargar el archivo
telegram de este
repositorio.
3. Descargar la app telegram en tu móvil si no lo tienes ya y crearte un bot. Para eso busca el usuario
@botfather en telegram y utiliza el comando /newbot, luego sigue los pasos para darle un nombre de usuario, por ejemplo
@mybot. Se te dará un número de token de tu bot, por ejemplo 217216:WHJGHTyI.
4. Abre una conversación con tu bot en telegram, buscando su nombre de usuario, y escríbele cualquier cosa.
5. Encuentra el identificador del chat que abriste con tu bot en tu telegram, para que pueda escribirte después. Para eso ejecuta en la terminal el archivo telegram que descargaste, substituyendo <TOKEN> por el número de token de tu bot:
./telegram -t <TOKEN> -l
Esto te dará una lista un poco sucia donde tenéis que encontrar una línea de este estilo:
"chat":{"id":1234,"first_name":"Manolete","username":"soyyo","type":"private"}
Donde pone "id" es el identificador del chat, "Manolete" sería tu nombre, y "soyyo" tu usuario de telegram (si te has puesto alguno, que no es obligatorio).
6. Edita el archivo
iwannaplay.sh que habías hecho en el punto 1, en la línea que dice
./telegram -t 137395:AAFI49qwYsl3sdL2HQssfFr7uBwpkPzM0I -c 1234 "Hay $NUM graficas 3080 disponibles!"
sustituyendo "137395:AAFI49qwYsl3sdL2HQssfFr7uBwpkPzM0I" por el número de token de tu bot, y "1234" por el identificador de chat del punto 5.
7. Dale permisos a tu archivo
iwannaplay.sh para poder ejecutarlo, por ejemplo en la terminal con
chmod 777 iwannaplay.sh
y luego ejecútalo simplemente poniendo
./iwannaplay.sh
Debería salir algo así...
Lo de "Avisos" es para que sepas cuantas veces te ha avisado de que hay alguna gráfica disponible. Dejas el programa corriendo y nada, a ver si hay suerte. Cada vez que haya un aviso te llegará una notificación por telegram de tu bot. Obviamente no cierres el chat con tu bot o no te llegará...
Si queréis testear si funciona cambiad en el código la url de las 3080 por la url de las 2080, que siempre hay disponibles (
https://www.pccomponentes.com/tarjetas- ... 080-series). Debería llegaros un mensaje en telegram de vuestro bot. Exactamente igual si lo queréis para las 3070, simplemente cambiar la url. Suerte!