BandaAncha.eu

Comunidad de usuarios
de fibra, móvil y ADSL

Duda con plowlist (plowshare)

BocaDePez
BocaDePez

La aplicación plowlist (incluida en el paquete plowshare) permite, a través de línea de comandos, extraer y mostrar los enlaces de descarga de archivos presentes en directorios compartidos en Internet de Mediafire y Hotfile. Su funcionamiento común es el siguiente:

$ plowlist (URL del directorio compartido)

Ejemplo:

usuario@usuario-desktop:~$ plowlist mediafire.com/?sharekey=b91f19e943432476…ba49b5870170

Retreiving list (mediafire): mediafire.com/?sharekey=b91f19e943432476…ba49b5870170

(link roto)

(link roto)

(link roto)

(link roto)

(link roto)

(link roto)

(link roto)

(link roto)

(link roto)

(link roto)

(link roto)

(link roto)

(link roto)

(link roto)

usuario@usuario-desktop:~$

Para que en vez de mostrar en consola los enlaces los envíe a un archivo de texto plano:

$ plowlist (URL del directorio compartido) >> lista_con_enlaces_de_archivos_resultantes.txt

Para que muestre de forma automática los enlaces de archivos de varios directorios compartidos, presentes las URL's de estos en un archivo de texto plano:

$ while read URL; do plowlist $URL; done < lista_con_URL's_de_los_directorios_compartidos.txt

Ejemplo:

usuario@usuario-desktop:~/Escritorio$ cat > lista_directorios.txt

mediafire.com/?sharekey=b91f19e943432476…ba49b5870170
mediafire.com/?px7991u19z0c3
^C
usuario@usuario-desktop:~/Escritorio$ while read URL; do plowlist $URL; done < lista_directorios.txt
Retreiving list (mediafire): mediafire.com/?sharekey=b91f19e943432476…ba49b5870170
(link roto)
(link roto)
(link roto)
(link roto)
(link roto)
(link roto)
(link roto)
(link roto)
(link roto)
(link roto)
(link roto)
(link roto)
(link roto)
(link roto)
Retreiving list (mediafire): mediafire.com/?px7991u19z0c3
mediafire.com/file/5zwjd2jyjgt/The_Chose…rt2.rar/file
mediafire.com/file/1qnbztqyyyd/Traduccio…1ol.rar/file
mediafire.com/file/demk12m0utg/The_Chose…rt3.rar/file
mediafire.com/file/dlmjmtjyn1n/The_Chose…rt1.rar/file

usuario@usuario-desktop:~/Escritorio$

Y he aquí mi cuestión: ¿cómo puedo hacer, usando la última línea de comandos expuesta, para que en vez de mostrarme los enlaces en consola exporte cada resultado de cada directorio a sendos archivos de texto plano, cada uno con el nombre de la URL de su directorio, para así diferenciarlos?

He probado lo siguiente, pero me da error:

usuario@usuario-desktop:~/Escritorio$ while read URL; do plowlist $URL > "$URL.txt"; done < lista_directorios.txt

bash: www.mediafire.com/?sharekey=b91f19e94343 … 5870170.txt: No existe el fichero ó directorio
bash: www.mediafire.com/?sharekey=18374f32c2a1 … ae8665a.txt: No existe el fichero ó directorio

usuario@usuario-desktop:~/Escritorio$

Quizás estoy pidiendo mucho (y no puede ser). De todas formas, gracias por leer toda esta parrafada.

Salud.

BocaDePez
BocaDePez

Bueno, bueno. En otro foro me han dado la solución a mi duda:

$ cat lista_directorios.txt | while read URL; do KEY=$(echo "$URL" | grep -o "[[:alnum:]]\+$"); plowlist $URL > ${KEY}.txt; done

Parece ser que el problema era que no es posible crear un nombre de fichero que contenga el carácter "/". Con las instrucciones arriba indicadas se usa, como nombre de archivo, el identificador de los directorios (lo que hay a la derecha del signo "=").

Saludos.

PD: ¿Alguien podría explicarme qué es lo que hace, en la susodicha línea de comandos, las instrucciones?:

"[[:alnum:]]\+$"

Gracias.

🗨️ 2
BocaDePez
BocaDePez

es una expresión regular. Y hace "match" con 1 o más simbolos alfanumerico ([0-9A-Za-z]) que acaban en fin de linea (el $)

🗨️ 1
BocaDePez
BocaDePez

Creo que lo he pillado: con grep se separa toda la cadena de caracteres alfanumérica contigua que acabe en fin de línea. Como el signo de "=" no es un carácter alfanumérico, grep empieza a separar a la derecha del signo.

Muchas gracias por su explicación.

Saludos.