Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Cola De Descargas (solucionado)
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Cola De Descargas (solucionado) 
 
Buenas, tengo un problema con lo que llamo una "cola de descargas".. Intentaré explicarme..

Tengo una matriz de string con enlaces (un numero variable de enlaces) y me gustaría que se descarguen (con wget) uno tras otro (no a la vez) hasta que se terminen... El problema es que no puedo porque si meto un bucle el programa se bloquea esperando el final del bucle..

Se que hay una aplicación donde se hace algo por el estilo (downloadergoear).. Pero no saco nada en claro.. :S

Aquí el fragmento del proyecto: http://www.megaupload.com/?d=JD3HVJRA
 



 
última edición por BrunoIV el Lunes, 25 Julio 2011, 08:40; editado 1 vez 
 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Cola De Descargas 
 
No he ido al enlace pero si lo que tu quieres es bajarte una lista de enlaces con wget ¿porque no usas wget?

Extraído de wikipedia
* Recoger sólo los enlaces específicos listados línea a línea en
* el archivo local "my_movies.txt"
* Usar una espera arbitraria de 0 a 33 segundos entre archivos.
* Cuando hay un fracaso, reintente para hasta 22 veces con 48 segundos
* entre cada reintento. No envíe ningún agente de usuario en absoluto. Ignore exclusiones de robot.
* Colocar todos los archivos capturados en el directorio "/movies"
* y recoger los resultados de acceso al archivo local "my_movies.log"
* Bueno sólo para descargar imágenes específicas conocidas u otros archivos.
wget -t 22 --waitretry=48 --wait=33 --random-wait --user-agent=""
     -e robots=off -o ./my_movies.log -P/movies -i ./my_movies.txt

Enlace

No necesitas nada salvo facilitarle a wget los datos oportunos y él lo hace todo.
 



 
soplo - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Cola De Descargas 
 
El wget ya lo estoy usando con SHELL(), y probé eso mismo pero desde concola de comandos, leer desde un fichero unos enlaces...
Esa solución no me sirve (si hubieras mirado el comprimido...) porque efectivamente puedo leer los enlaces desde un fichero pero wget no se da cuenta de los cambios en el fichero...

fichero.txt que contiene:
http://imagen.png

Ejecutas
wget -i fichero.txt

Mientras se descarga agregas a fichero.txt:
http://imagen.gif

Solo descarga imagen.png :s


¿Alguna idea?
 



 
última edición por BrunoIV el Domingo, 24 Julio 2011, 10:20; editado 1 vez 
 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Cola De Descargas 
 
Osea que tu tquieres que mientras están descargando un archivo se le pueda dar la orden de que descargue otro detrás.

Pues para eso tienes que declarar una variable string[] y pensar bien a que nivel la declaras o bien utilizar un fichero.

Debe haber un método para llenar esa variable o fichero.
Debe haber otro método para hacer las descargas.

Ambos procesos deben ser concurrentes así que tienes que considerar a que nivel declarar esa variable o usar ese fichero. Lo que veo claro es que en vez de descargar una lista de ficheros con wget debes descargar solo uno y controlar cuando acabas si en la lista hay alguno mas. En ese caso descargas el siguiente pero solo el siguiente. La orden shell debe llear la claúsula wait para que no se haga en segundo plano o acabarás bajando varios ficheors a la vez, bueno que igual eso no es un problema.
 



 
soplo - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Cola De Descargas 
 
Lo que pasa es que tienes que definir el manejador (si se llama así?¿?¿ je) del proceso, para saber en que momento termina la descarga (con el evento _Kill).
He modificado tu código, he agregado un botón llamado "bDown" que dispara las descargas.

' gambas class file
PRIVATE enlaces AS NEW String[]

PUBLIC SUB Form_Open()
' enlaces.Add("ftp://ftp.rediris.es/sites/releases.ubuntu.com/releases//10.04/ubuntu-10.04-netbook-armel+imx51.img")
' enlaces.Add("ftp://ftp.rediris.es/sites/releases.ubuntu.com/releases//10.04/ubuntu-10.04-netbook-armel+imx51.img")
' enlaces.Add("ftp://ftp.rediris.es/sites/releases.ubuntu.com/releases//10.04/ubuntu-10.04-netbook-armel+imx51.img")
enlaces.Add("http://dl.dropbox.com/u/3701367/www/images/anarquia_peque.gif")
enlaces.Add("http://dl.dropbox.com/u/3701367/www/images/cargando.gif")
enlaces.Add("http://dl.dropbox.com/u/3701367/www/images/redstar.jpg")

listado.Columns.Count = 1
listado.Rows.Count = enlaces.Count
mostrarDatos()
END

PUBLIC SUB bAgregar_Click()
  enlaces.Add(enlace.Text)
  listado.Rows.Count = enlaces.Count
  mostrarDatos()
END

PRIVATE FUNCTION mostrarDatos()
  DIM i AS Integer = 0
  
  FOR i = 0 TO enlaces.Length - 1 STEP 1
    listado[i, 0].Text = enlaces[i]
  NEXT
END

' PUBLIC SUB listado_DblClick()
'   SHELL ("wget " & enlaces[listado.Row])
' END

PUBLIC SUB bDown_Click()

  IF listado.Rows.Count THEN
    bDown.Enabled = FALSE
    EXEC ["wget", listado[0, 0].Text] FOR READ AS "downProc"
  ENDIF

END

PUBLIC SUB downProc_Kill()
  
  listado.Rows.Remove(0)
  listado.Refresh()
  IF listado.Rows.Count THEN
    EXEC ["wget", listado[0, 0].Text] FOR READ AS "downProc"
  ELSE
    bDown.Enabled = TRUE
  ENDIF
  
END

 


Creo que el anterior código cumple con lo que quieres.

Saludos!

EDITO:
Otra cosa, no veo la necesidad de vaciar los enlaces a un array y luego al gridView. Puedes hacerlo todo directo con el gridView.
 



 
última edición por razaAztk el Lunes, 25 Julio 2011, 05:42; editado 1 vez 
razaAztk - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuarioVer la galería personal del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Cola De Descargas 
 
Ohh.. Que grande eres... Estaba modificando el proyecto para hacer la chapuza del siglo pero parece que me libro de ello...
Gracias...
 



 
 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Uso De BD En 000webhost (solucionado) jsbsan Bases de Datos 3 Domingo, 07 Agosto 2011, 17:48 Ver último mensaje
jsbsan
No hay nuevos mensajes Key Already Used Error(solucionado) Dani26 Bases de Datos 2 Viernes, 21 Octobre 2011, 02:56 Ver último mensaje
Dani26
No hay nuevos mensajes Descargas del foro jguardon Sobre Gambas-es 0 Miercoles, 18 Septiembre 2013, 23:17 Ver último mensaje
jguardon
No hay nuevos mensajes Archivos Para Copiar En Cola Shell Mundo Linux 5 Martes, 09 Enero 2018, 09:35 Ver último mensaje
Shell
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron