Scopo di queste righe in php è quello di creare una base dati (SQLite3) di video presenti sulle vostre periferiche, nel caso in cui avete file di tipo .nfo (gli .nfo - file di tipo xml - che ho usato sono stai generati da Kodi media center) con i generi, i registi e l'anno associati ai video, di aggiornare la basedati con i generi relativi ai video che avete memorizzato. Alla fine, lanciando playlistcasuale.php, di creare ed eseguire una playlist creata casualmente o meno dalla precedente basedati. In data 04/01/2019 ho aggiunto il file per lo scaping delle pagine IMDb in lingua inglese. Questo permette di "recuperare" direttamente dalle scede del sito (IMDb) i dati che inserisco successivamente nel database locale. Ho usato la libreria di scaping di sunra che ringrazio come ringrazio, lo faccio spesso, ma senza di loro sarei stato troppo pigro per creale da me, tutti gli altri da cui ho preso idee e codice. Vi direte a che serve: non ho molta voglia di scorrere i dischi pieni di video per crearmi una playlist per cui uso queste righe.
Gli script sono stati testati con php 7.0 in linux, ma cio' non toglie che poche modifiche se non nessuna, possano funzionare egregiamente anche sotto mac.
- il php 7.0 (se provate altre versioni fatemelo sapere) e relativo client con i moduli PDO e PDO-SQLite attivati;
- periferiche disco con tanti video;
- questi script, che basta solo decomprimere in una cartella di lavoro;
- un terminale per usare la riga di comando.
-
1) Dopo aver abilitato i PDO, lanciare la creazione
fisica della base dati: "php basedati.php" (non è sempre necessario
specialmente se l'avete fatto almeno una volta);
-
2) lanciare il seguente comando che si occupera' di recupare i dati utili
dei video e li memorizzerà nell base dati (video.sq3):
"php scandir.php 0|1 le/cartelle/dove/sono/i/video/separate/da/spazi/se/sono/diverse".
Esempio pratico:
"php scandir.php 1 /media/root/TrecStor/Films /media/root/backup/Films". Lo zero oppure l'uno subito dopo scandir.php determinano se la tabella video della base dati verrà svuotata (1) o meno (0). Usare lo zero è utile per accodare altre cartelle senza dover riiniziare. N.B.: le cartelle che contengono spazi vanno digitate dentro le virgolette (singole o doppie");
-
3) dopo aver usato scandir.php, usare "php aggrionadb.php" solo se avete dei file .nfo con
lo stesso nome dei video. Ovvero se non ci sono, non ha
senso lanciarlo ed è meglio passare direttamente al punto 4). In caso di presenza di .nfo sui dischi questo script associa i
generi, registi, anno e la durata al video, sempre che abbiano origine da Kodi;
-
4) con php aggiornadaimdb.php è possibile "recuperare" dalle pagine in inglese del sito IMDb tutti i dati che servono per completare la palylist (generi, registi, anno e durata). Recupera anche altri dati che al momento non sono gestiti dal database previsto per questi script. Nulla vieta di usare in combinazione il punto 3) ed il punto 4). aggiornadaimdb.php crea anche un log (nella cartella "log") per monitorare la ricerca dei titoli e l'aggiornamento della base dati.
N.B.: Usate questo script con discrezione, lo scabing non è sempre visto bene. -
5) per creare una play list casuale,
lanciare "php playlistcasuale.php -n4 -e"vob cd1 cd2" -g"Animazione Family".
-n è il numero di video da inserire nella play list,
-e esclude i video che contegono le parole elencate nel path e nel nome del file,
-g funziona solo se sono stati inseriti i generi, permette di filtrare i
generi associati ai video.
Lo script "generi.php"" ha il solo scopo di elencare i generi presi dai file .nfo. Lo script "list_txt", esporta la lista dei video in archivio in formato csv/txt con separatore il punto e virgola (;). I parametri per list_txt.php sono: -g per una lista ordinata per genere (per default è ordinata per ordine alfabetico crescente del titolo); -d ordina per titolo o per genere (-g) in ordine descrescente. Gli altri file php sono degli include necessari per il funzionamento.
Tutti i parametri sono opzionali in quanto sono dati tutti di default.
-n il numero di titoli che volete nella playlist (default "5"). Se si utilizza lo zero (0) il numero massimo verrà impostato a 9999.
-e termini che volete escludere dalla visione. I termini in questione sono il path ed il nome del file. Se sono presenti degli spazi è meglio includere i termini fra virgolette singole o doppie (default "cartoni inglesi cd1 cd2 originali vob serie volume originale");
-g i generi da includere nella visione. Se sono più di uno, separare con uno spazio ed includere fra le virgolette (funziona solo se l'archivio è stato aggionato con aggiornadb.php.);
-m il nome del player da utilizzare per la visione (default "smplayer");
-f il nome del file di playlist (default "testpl.xml.xspf");
-d la cartella dove va a risiedere il file di playlist (default "scalette/");
-r consente di selezionare i video dei registi da includere nella palylist in ordine di anno crescente o decresente determinato con l'opzione -o (si perde il principio di casualità);
-o opzione di ordine crescente o decrescente utilizzato solo nelle opzioni -r o -u (default crescente = A, opzione decrescente = D);
-u permette di visionare i titoli scaricati per ultimi o per primi (dipende dalla opzione -o che è per default crescente ovvero i primi inseriti) in funzione della data di modifica del file video. Anche con questa opzione, di fatto, si perde il principio di casualità;
-i permette di includere dei termini da ricercare nel path e nel titolo, è predominante sui termini da escludere (-e), ovvero i termini da includere sono prioritari rispetto a quelli da escludere;
-p permette di creare altre playlist. I formati gestiti sono: m3u e pls.
php playlistcasuale.php (lancia la creazione di una playlist con i parametri di default e relativa visione);
php playlistcasuale.php -u (lancia la creazione e la visione dei 5 video più vecchi con il resto dei parametri di default);
php playlistcasuale.php -u -o"D" -e"" (lancia la creazione e la visione di una playlist dei 5 video più recenti, senza termini esclusi);
php playlistcasuale.php -u -o"D" -e"" -g"Animazione Famiglia" (lancia la creazione e la visione di una playlist di 5 video più recenti, senza termini esclusi, dei generi: Animazione e Famiglia);
php playlistcasuale.php -n3 -g"Fantascienza Sci-fi" (lancia una playlist casuale per 3 video di genere Fantascienza e Sci-fi con esclusione dei termini di default);
php playlistcasuale.php -n3 -r"'Stanley Kubrick'" (lancia una playlist casuale per 3 video del regista 'Stanley Kubrick' dal piu' vecchio al piu' nuovo senza definizione di genere o esclusione dei termini di default);
php playlistcasuale.php -n3 -o"D" -r"'Rocco Papaleo'" (lancia una playlist casuale per 3 video del regista 'Rocco Papaleo' ad iniziare dal più recente, senza definizione di genere o esclusione dei termini di default).
...
Sono state aggiunte alcune interfacce grafiche realizzate grazie a Yad (Yet Another Dialog) che rendono l'interazione più facile. Vedi relativo repository