Documentazione di QPictureDownloader
Sommario
- Introduzione
- Installazione
- Aggiornamento
- Panoramica
- Cartelle, indici e file
- Compilatore di URL
- Analisi della pagina
- Licenza
Introduzione
QPictureDownloader ti permette di esplorare un insieme combinatorio di pagine web e di scaricare tutte le immagini (o qualsiasi tipo di file) linkate da esse.
L'insieme obiettivo può essere definito staticamente attraverso il compilatore di URL oppure dinamicamente, attraverso gli strumenti analisi della pagina.
Installazione
QPictureDownloader è scritto in C++ usando il toolkit Qt 4.3
Istruzioni per utenti Windows
Scarica ed esegui l'intuitivo programma di installazione in stile Windows.
Istruzioni per utenti Linux
Gli utenti Linux possono scegliere tra un comodo pacchetto RPM oppure la installazione da sorgenti.
Installazione da RPM
Se effettui la installazione da RPM, eventuali dipendenze mancanti saranno scaricate dai repository appropriati.
- Configurare il repository di fioreltech.net
-
Installare il pacchetto qpicturedownloader
$ su -c "yum install qpicturedownloader"
Parola d'ordine: <tua password>
Installazione da sorgenti
Se effettui la installazione da sorgenti, dovrai provvedere ad installare eventuali dipendenze mancanti.
- Scaricare i sorgenti di QPictureDownloader
-
Scompattare i sorgenti
$ tar xvzf qpicturedownloader-2.0.0.tar.gz -
Entrare nel source tree
$ cd qpicturedownloader-2.0.0 -
Creare il Makefile
$ chmod +x ./configure
$ ./configureLo script potrebbe fallire qualora non sia in grado di rilevare lo strumento qmake appartenente al toolkit Qt 4.x. In tal caso è necessario salvare nella variabile d'ambiente QMAKE il percorso all'omonimo programma e lanciare nuovamente lo script.
$ QMAKE=<path-to-qmake> ./configure -
Costruire QPictureDownloader
$ make -
Installare QPictureDownloader
$ su -c "make install"
Parola d'ordine: <tua password>
Aggiornamento
Ad ogni avvio QPictureDownloader si connette al server www.fioreltech.net per verficare la presenza di una nuova versione del programma. In tal caso, nella estremità destra della barra di stato viene mostrata una etichetta, che può essere premuta per aprire nel browser predefinito una pagina contenente le istruzioni per l'aggiornamento.
Panoramica
L'utente medio dovrebbe avere a che fare esclusivamente con la finestra principale.
La comune sequenza di eventi è:
- L'utente inserisce una URL nel campo di testo in alto
- L'utente sceglie di interpretare le URL come indici oppure come file attraverso l'apposito selettore
- Se le URL sono interpretate come indici, allora l'utente deve selezionare le estensioni dei file da scaricare attraverso i check box oppure una lista di estensioni separate da spazi
- L'utente preme il pulsante [Carica], al fine di compilare la URL in un insieme di URL: se sono interpretate come indici, allora essi vengono scaricati e filtrati per determinare l'insieme dei file da scaricare
- La vista in basso mostra i file da scaricare e le cartelle in cui essi saranno collocati nella macchina locale
- L'utente sceglie la cartella di lavoro, dove sono piazzati i file scaricati e le cartelle
- L'utente preme il pulsante [Download]
- Il programma tenta di scaricare ogni file nello stato di Default
Gestore del download
Un file può essere in tre stati differenti:
- Default (mostrato in nero)
- se non è stato precedentemente scaricato
- Okay (mostrato in verde)
- se è stato scaricato con successo
- Failure (mostrato in rosso)
- se si è verificato un errore durante il trasferimento del file
Durante il trasferimento dei file, viene visualizzata una finestra modale che mostra lo stato di avanzamento e permette all'utente di interrompere l'operazione premendo il pulsante [Annulla].
Se l'utente preme ancora il pulsante [Download], allora il download riprende dal punto in cui è stato interrotto.
Menu File
Sotto il menu file ci sono le seguenti voci:
- Esporta la lista dei trasferimenti...
- per esportare la lista dei traferimenti in un file XML
- Importa la lista dei trasferimenti...
- per importare la lista dei trasferimenti da un file XML
Puoi utilizzare queste funzioni per distribuire il trasferimento dei file tra differenti sessioni (ogni volta continui a scaricare i file nello stato di Default)
Menu Filtro
Sotto il menu filtro ci sono le seguenti voci:
- Filtro predefinito
per usare il filtro predefinito
- Filtro personalizzato...
-
per aprire una finestra nella quale scegliere un filtro personalizzato
Nel menu a tendina sottostante puoi selezionare la codifica del file (System è un alias della codifica predefinita)
Cartelle, indici e file
QPictureDownloader lavora su questi elementi: indici, file e cartelle.
Indici
Un indice è una pagina web che viene scandita in cerca di file. Per impostazione predefinita, il programma riconosce
l'attributo href dei tag <a> e filtra i file rispetto ad una data lista di estensioni:
che possono essere selezionate sia da un insieme di valori predefiniti (come .jpeg, .bmp, ...)
oppure immessi sottoforma di lista di valori separati da spazi (senza il punto davanti).
Tuttavia, gli strumenti di analisi della pagina permettono di specificare pienamente
come effettuare l'analisi sintattica degli indici.
File
Un file è semplicemente una risorsa remota che deve essere scaricata. I file sono il prodotto principale dell'analisi di una pagina, ma possono essere modificati manualmente per correggere possibili errori.
Cartelle
Quando esplora un dato insieme di indici, QPictureDownloader assicura che ogni file linkato da un certo indice è scaricato nella medesima sottocartella della cartella di lavoro.
Compilatore di URL
È capace di espandere una data URL in un insieme combinatorio di URL che possono essere interpretate come indici oppure come file.
La data URL è analizzata sintatticamente rispetto ad una certa grammatica, che identifica alcune sue porzioni come espressioni.
Dal momento che una espressione denota una sequenza di valori, la data URL è espansa in un insieme di URL considerando ogni valore per ciascuna espressione.
Il disegno sottostante descrive il processo di espansione quando la URL contiene
nell'ordine le espressioni ["a","b"] and ["c","d"]
Introduzione alle espressioni
Un'espressione è una porzione della data URL, delimitata da una coppia di parentesi quadre. Essa rappresenta una sequenza di valori, che sono usati per espandere la data URL in un insieme di stringhe.
SintassiUna semplice espressione è una lista di elementi separati da virgole. Essa rappresenta la sequenza di valori ottenuta unendo le sequenze corrispondenti a ciascun elemento.
[elemento1, elemento2, ..., elementoN]
Gli elementi possono essere:
Intervalli
Un intervallo è un elemento multi-valore che rappresenta una sequenza di interi.
Sintassileft [ - right ][ { step [ , width [ , padding ] ] } ]
Ogni coppia di parentesi quadre rappresenta una parte opzionale della sintassi
- left [obbligatorio]
- L'estremo sinistro dell'intervallo
- right
- L'estremo destro dell'intervallo
- step
- La differenza tra due valori consecutivi (default: 1)
- width
- La larghezza minima del campo (default: 0, vale a dire che non viene applicato alcun riempimento)
- padding
- Il carattere di riempimento (default: "0")
1 rappresenta 1
1{1,5} rappresenta 00001
999{1,2} rappresenta 999
1-10 rappresenta 1, 2, 3, ..., 10
1-10{2} rappresenta 1, 3, 5, ... 9
1-10{2,2} rappresenta 01, 03, 05, ... 09
1-10{2,2,"*"} rappresenta *1, *3, *5, ... *9
Stringhe
Una stringa è una stringa di zero o più caratteri circondata da una coppia di apici doppi ("). È un elemento a singolo valore, che denota la medesima sequenza di caratteri.
Sintassi
"caratteri"
"stringa" rappresenta stringa
Riferimenti
La data URL può essere interpretata come una sequenza di espressioni alternate a testo semplice (vale a dire la sequenza di caratteri tra due espressioni consecutive).
Per esempio nella URL seguente le due espressioni sono colorate di rosso:
http://www.fioreltech.net/[1-10]/hello/[1-10]
Le espressioni sono indicizzate da sinistra verso destra a partire da zero.
Un riferimento ad una espressione è un token della forma \n, dove n è l'indice
della espressione cui si riferisce.
Un riferimento non può puntatare nè direttamente nè indirettamente alla espressione che lo contiene.
Sintassi
[\n]
L'espressione assume lo stesso valore dell'n-esima espressione.
[\n : sequenza]
L'espressione assume l'i-esimo valore della sequenza quando l'n-esima espressione viene espansa alla i-esimo valore.
sequenza è una lista di elementi separati da virgole, che denota una sequenza di tanti valori quanti sono quelli rappresentati dalla n-esima espressione.
In entrambi i casi l'espansione è condizionata alla espansione della espressione cui si fa riferimento, cosicchè la prima espressione ha soltanto un valore per ogni espansione della seconda.
Esempi
http://www.fioreltech.net/[1-12{1,2}]/[\0 : "january", "february", "march", "april", "may", "june", "july", "august", "september", "october", "november","december"]/index.html
si espande in
http://www.fioreltech.net/01/january/index.html
http://www.fioreltech.net/02/february/index.html
http://www.fioreltech.net/03/march/index.html
http://www.fioreltech.net/04/april/index.html
http://www.fioreltech.net/05/may/index.html
http://www.fioreltech.net/06/june/index.html
http://www.fioreltech.net/07/july/index.html
http://www.fioreltech.net/08/august/index.html
http://www.fioreltech.net/09/september/index.html
http://www.fioreltech.net/10/october/index.html
http://www.fioreltech.net/11/november/index.html
http://www.fioreltech.net/12/december/index.html
Analisi della pagina
È una collezione di strumenti che permettono di:
- modificare come avviene l'analisi sintattica dell'indice
- espandere dinamicamente l'insieme degli indici
Filtrare la pagina
Il contenuto degli indici è filtrato da una funzione, chiamata filter, definita in un linguaggio di
scripting basato su ECMAScript 3.0.
function filter( content, downloadManager )
{
var matches = new Array(); // lista di URLs
return matches;
}
Il primo parametro è il contenuto dell'indice. Il secondo parametro è collegato alla possibilità di espandere dinamicamente l'insieme degli indici.
La funzione ritorna un array contenente le URL da scaricare. Queste URL possono essere assolute oppure relative all'indice.
NB: Le URL vengono comunque filtrate rispetto alle estensioni selezionate nella finestra principale del programma.
Espandere dinamicamente l'insieme degli indici
Il secondo parametro della funzione filter può essere usato per programmare la visita di altri indici.
Sintassi
downloadManager.addRequest(url, folder);
- url
- URL dell'indice da scaricare
- folder
- nome della cartella dove scaricare i file linkati da questo indice. Se questo argomento viene omesso, allora viene usato un nome generato automaticamente.
La funzione restituisce true se e solo se la richiesta è stata aggiunta correttamente. La funzione può fallire
se il nome della cartella non è corretto (es. contiene / oppure è uguale a . oppure .. ).
È responsabilità del programmatore garantire che cicli infiniti non possano occorrere.
Licenza
QPictureDownloader 2.0.0, un downloader gratuito di immagini
Copyright (C) 2007 2008 Manuel Fiorelli <manuel.fiorelli@gmail.com>
Questo programma è software libero; puoi ridistribuirlo e/o modificarlo sotto i termini della GNU General Public License (versione 2) come pubblicata dalla Free Software Foundation.
Questo programma viene distribuito nella speranza che sia utile, ma SENZA ALCUNA GARANZIA; senza neppure la garanzia implicita di COMMERCIALITÀ o ADEGUATEZZA PER UN PARTICOLARE SCOPO. Vedi la GNU General Public License per maggiori dettagli.
Dovresti aver ricevuto una copia della GNU General Public License insieme a questo programma; altrimenti, scrivi alla Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

