¡Hola, Invitado! (Iniciar sesiónRegístrate)
Hora: 24 Nov 2024, 01:16

[Mega] Cómo comprobar el estado de los enlaces

10 Aug 2022, 01:41
Mensaje: #1

[Mega] Cómo comprobar el estado de los enlaces


Hola,

Cuando se suben muchos enlaces de descarga directa surge el problema de que, al tiempo, los enlaces ya no funcionan y no nos enteramos hasta que alguien lo señala. Con Mega podemos hacer uso de su API para comprobar grandes listas de enlaces y así tenerlos actualizados. Para esto, ejecutaremos:
Windows — CMD:
Mostrar
Código:
curl --data-ascii "[{\"a\":\"g\", \"g\":1, \"ssl\":0, \"p\":\"[b]<Primer código>[/b]\"}]" https://eu.api.mega.co.nz/cs

Linux — Terminal:
Mostrar
Código:
curl --data-ascii '[{"a":"g", "g":1, "ssl":0, "p":"[b]<Primer código>[/b]"}]' https://eu.api.mega.co.nz/cs

Una URL puede tener dos formatos:
Primer formato:
Mostrar
https://mega.nz/file/FOVTVBjZ#V5B7Ln9NaHUQ3B4lxnlfuKs33QDmQhQOo9KyLRa4r-o

Segundo formato:
Mostrar
https://mega.nz/#!FOVTVBjZ!V5B7Ln9NaHUQ3B4lxnlfuKs33QDmQhQOo9KyLRa4r-o

El código resaltado en negrita de las URLs es el que sustituimos por <Primer código>.

Al ejecutarlo, nos puede arrojar:
  • [-2]: Hay algún error en el comando ejecutado, posiblemente de algún signo que tengamos que escapar.
  • [-9]: El enlace está caído.
  • [{Mensaje muy largo}]: El enlace está vivo.

Sabiendo esto ya podríamos hacer una lista con nuestros enlaces y revisarlos todos, ejecutando un script manualmente. Luego podríamos programarlo cada cierto tiempo para que se ejecute solo, con cron o acron (Linux) o el programador de tareas (Windows). También podríamos hacer que nos avisara al correo cuando se encontrara con una salida [-9] (enlace caído).

Por lo pronto, vamos a hacer que revise una lista de enlaces —en Linux por el momento—, con el nombre de «enlaces-mega.txt». Creamos el archivo del script, «comprobar-enlaces-mega.sh» y le damos permisos de ejecución con el comando «chmod +x comprobar-enlaces-mega.sh». Lo editamos e incluimos lo siguiente:
comprobar-enlaces-mega.sh:
Mostrar
Código:
#!/bin/bash

rm enlaces-mega.log
while read p; do
    echo -n "$p - " >> enlaces-mega.log
    curl --silent --data-ascii '[{"a":"g", "g":1, "ssl":0, "p":"'$p'"}]' https://eu.api.mega.co.nz/cs >> enlaces-mega.log
    echo "" >> enlaces-mega.log
    sleep 1
done < enlaces-mega.txt

Primero elimina el archivo de traza si lo hay, y después recorre la lista línea por línea ejecutando el comando que hace uso de la API para comprobar los enlaces. La comprobación la deja en el archivo «enlaces-mega.log». Al finalizar el script, podemos mirar si algún enlace está caído con:
Comprobación:
Mostrar
Código:
cat enlaces-mega.log | grep "\[\-9\]"

Si nos arroja algo (por ejemplo: 9oI3gJqR - [-9]), quiere decir que el enlace con ese código está caído. En mi caso tengo una lista con cada archivo y su respectivo enlace, por lo que buscaría en ella el código para saber qué archivo es el que tendría que volver a subir.


Espero que sea de utilidad,
un saludo.


Usuario(s) navegando en este tema: 1 invitado(s)