Autore Topic: wget e progress bar  (Letto 5916 volte)

Offline ira83

  • Gambero
  • **
  • Post: 85
    • Mostra profilo
wget e progress bar
« il: 09 Febbraio 2010, 16:46:46 »
Ciao a tutti... a un certo punto del mio programma ho messo un

Codice: [Seleziona]
SHELL "wget link/file.zip; mv file.zip $HOME

nella veste grafica ho posizionato una progressbar.... volevo chiedere se c'e modo di far interagire il suo avanzamento con l'avanzamento di wget, o se esistono altri metodi\comandi per farlo..

grazie mille

ciao a tutti

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.484
    • Mostra profilo
Re: wget e progress bar
« Risposta #1 il: 09 Febbraio 2010, 19:24:31 »
se l' outpt di wget di da un valore percentuale che cambia con l' avanzamento o un tot numero di caratteri in aumento(esempio le frecce) si altrimenti no
se guardi il codice di tube2mp3 io ho letto il progresso di dl-download e lo ho riportato su una progressbar

Offline ira83

  • Gambero
  • **
  • Post: 85
    • Mostra profilo
Re: wget e progress bar
« Risposta #2 il: 09 Febbraio 2010, 21:29:28 »
output del wget è questo... (ho provato a scaricar l'index del forum eheh)

Codice: [Seleziona]
[massimo@localhost ~]$ wget http://www.gambas-it.org/smf/index.php
--2010-02-09 21:26:41--  http://www.gambas-it.org/smf/index.php
Risoluzione di www.gambas-it.org... 69.89.25.193
Connessione a www.gambas-it.org|69.89.25.193|:80... connesso.
HTTP richiesta inviata, in attesa di risposta... 200 OK
Lunghezza: non specificato [text/html]
Salvataggio in: "index.php"

    [    <=>                                                                 ] 39.763      53,8K/s   in 0,7s

2010-02-09 21:26:44 (53,8 KB/s) - "index.php" salvato [39763]

[massimo@localhost ~]$

dove

Codice: [Seleziona]
   [    <=>                                                                 ] 39.763      53,8K/s   in 0,7s

varia nel tempo

<=>   va avanti indietro poi si ha i k scaricati (mi pare) poi la velocità e infine il tempo restante

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.484
    • Mostra profilo
Re: wget e progress bar
« Risposta #3 il: 09 Febbraio 2010, 21:40:59 »
prima della barra di avanzamento wget ti da anche la percentuale di avanzamento , quindi ti basta leggere l' output e prelevare il valore percentuale e collegarlo alla prograssbar

Offline ira83

  • Gambero
  • **
  • Post: 85
    • Mostra profilo
Re: wget e progress bar
« Risposta #4 il: 09 Febbraio 2010, 21:59:59 »
ehm... non proprio.. percentuali non ne vedo :D

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.484
    • Mostra profilo
Re: wget e progress bar
« Risposta #5 il: 09 Febbraio 2010, 22:13:12 »
che strano a me le da a sx delle frecce di prograssione

Offline ira83

  • Gambero
  • **
  • Post: 85
    • Mostra profilo
Re: wget e progress bar
« Risposta #6 il: 09 Febbraio 2010, 22:17:19 »
che versione hai?

io:
Codice: [Seleziona]
 wget --version
GNU Wget 1.12 compilato su linux-gnu.

+digest +ipv6 +nls +ntlm +opie +md5/openssl +https -gnutls +openssl
-iri

Wgetrc:
    /etc/wgetrc (sistema)
Locale: /usr/share/locale
Compilazione: gcc -DHAVE_CONFIG_H -DSYSTEM_WGETRC="/etc/wgetrc"
    -DLOCALEDIR="/usr/share/locale" -I. -I../lib -O2 -g -pipe -Wformat
    -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions
    -fstack-protector --param=ssp-buffer-size=4
Collegamento: gcc -O2 -g -pipe -Wformat -Werror=format-security
    -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector
    --param=ssp-buffer-size=4 -Wl,--as-needed -Wl,--no-undefined
    -Wl,-z,relro /usr/lib64/libssl.so /usr/lib64/libcrypto.so -ldl -lrt
    ftp-opie.o openssl.o http-ntlm.o gen-md5.o ../lib/libgnu.a

Copyright (C) 2009 Free Software Foundation, Inc.
Licenza GPLv3+: GNU GPL versione 3 o successiva
<http://www.gnu.org/licenses/gpl.html>.
Questo è software libero: siete liberi di modificarlo e redistribuirlo.
Non c'è ALCUNA GARANZIA, negli estremi permessi dalla legge.

Scritto da Hrvoje Niksic <hniksic@xemacs.org>.
Attualmente mantenuto da Micah Cowan <micah@cowan.name>.
Inviare segnalazioni di bug e suggerimenti a <bug-wget@gnu.org>.

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.484
    • Mostra profilo
Re: wget e progress bar
« Risposta #7 il: 09 Febbraio 2010, 22:22:01 »
la percentuale non compare se come nel tuo esempio scarichi una pagina dinamicao cmq un file che wget non riesce a predeterminare la grandezza e di conseguenza il tempo che ci impiegerà a scaricare, prova a scaricare un file e vedrai che compare

Offline ira83

  • Gambero
  • **
  • Post: 85
    • Mostra profilo
Re: wget e progress bar
« Risposta #8 il: 09 Febbraio 2010, 22:37:45 »
solo su alcuni file... strana la cosa  :o

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.484
    • Mostra profilo
Re: wget e progress bar
« Risposta #9 il: 09 Febbraio 2010, 22:59:58 »
Codice: [Seleziona]
' Gambas class file
PUBLIC hProcess AS Process

PRIVATE comando AS String
PRIVATE stringa AS String



PUBLIC SUB Button1_Click()

  comando = "wget " & TextBox1.Text
  PRINT comando
  stringa = ""
  Label1.Text = "scaricamento in corso"
 hProcess = SHELL comando FOR READ AS "hProcess" 'creazione del processo

  
  Timer1.Start

END
PUBLIC SUB hProcess_read()
'lettura del processo
DIM sLine AS String
DIM p, p1 AS String
DIM valore AS Float

 DIM sBuf AS String


 
'
 
  IF Lof(hProcess) THEN
    READ #hProcess, sBuf, Lof(hProcess)
    sBuf
  END IF
  
p = InStr(sBuf, "%")
p1 = InStr(sBuf, "\n", p - 5)

IF p <> 0 AND p1 <> 0 THEN

   TRY valore = Val(Trim(Mid$(sBuf, p1, p - p1))) / 100
    
    ProgressBar1.Value = valore
    
ENDIF  
END

PUBLIC SUB Timer1_Timer()

DIM i AS Integer

 
      i = hProcess.State
  
  IF i = 0 THEN
    Timer1.Stop
    
    ProgressBar1.Value = 100
    Label1.Text = "finito"
  ELSE
  
    
  ENDIF
      
    
END
questo è un esempio di codice per lettura di uno stream lanciato con shell
wget sembra cmq non rispondere a questo tipo di codice, un alternativa e avviarlo con opzione -o per cui scrive l' output su un file, poi ad ogni evento timer vai a leggere il file e la percentuale di scaricamento

Citazione
solo su alcuni file... strana la cosa  Scioccato
wget scrive la percentuale solo dei file di cui riesce a saper ela dimensione e quindi il tempo di scaricamento, le pagine php sono dinamiche quindi non può sapere la loro dimensione
« Ultima modifica: 09 Febbraio 2010, 23:01:44 da fsurfing »

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: wget e progress bar
« Risposta #10 il: 10 Febbraio 2010, 00:38:12 »
Tempo addietro provai una cosa simile con meteomachine...come ha detto fsunfing se non conosci a priori la dimensione del file non ne cavi nulla...altrimenti qualcosa si muove...poi lasciai perdere... :P

Offline leo72

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 2.163
    • Mostra profilo
    • http://www.leonardomiliani.com
Re: wget e progress bar
« Risposta #11 il: 10 Febbraio 2010, 01:20:18 »
Se hai accesso al server dove è locato il file da scaricare una soluzione potrebbe essere quella di mettere un piccolo file di testo con la dimensione del file da tirar giù. Prima leggi questo file e poi regoli la progress bar con i KB che ti dice wget ha scaricato rapportandoli a quelli totali.
Visita il mio sito personale: http://www.leonardomiliani.com

mae89

  • Visitatore
Re: wget e progress bar
« Risposta #12 il: 10 Febbraio 2010, 10:34:02 »
ciao a tutti
Io e ira stiam facendo il programma insieme..  non abbiamo accesso al server ma il file è di 14,5 mega... Non varia dimensione è un archivio di dati di un programma statale...
« Ultima modifica: 10 Febbraio 2010, 10:36:58 da mae89 »

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.484
    • Mostra profilo
Re: wget e progress bar
« Risposta #13 il: 10 Febbraio 2010, 12:42:34 »
e wget ne riconosce la dimensione e quindi ne indica la percentuale di scaricamento?

Offline ira83

  • Gambero
  • **
  • Post: 85
    • Mostra profilo
Re: wget e progress bar
« Risposta #14 il: 10 Febbraio 2010, 12:47:53 »
no wget non riconosce la dimensione... effettivamente scaricato possiamo notare  che occupa 13.5 MB... non 14.5  :P
però wget non ne riconosce dimensione e quindi non può fornire una percentuale...