diff --git a/.gitignore b/.gitignore index 65e3ba2..15ea0e3 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,4 @@ +.idea/ test/ + + diff --git a/Documentazione-support.md b/Documentazione-support.md new file mode 100644 index 0000000..a9a6004 --- /dev/null +++ b/Documentazione-support.md @@ -0,0 +1,5 @@ +Support è un [wrapper](https://it.wikipedia.org/wiki/Wrapper) creato appositamente per facilitare/velocizzare la creazione e il mantenimento dei canali, facendo anche in modo che siano il più possibile "standard". +Contiene: +* [decoratori](https://github.com/kodiondemand/addon/wiki/decoratori) per creare facilmente menu e fare scraping senza preoccuparsi troppo della programmazione in python +* [funzioni utili](https://github.com/kodiondemand/addon/wiki/funzioni-utili) per quando i canali utilizzano temi/servizi esterni famosi, in modo da non dover riscrivere più volte lo stesso scraper (è il caso del tema dooplay di wordpress, usato da parecchi siti) +* [funzioni di debug](https://github.com/kodiondemand/addon/wiki/funzioni-di-debug) \ No newline at end of file diff --git a/Home.md b/Home.md index 8f621af..5089a67 100644 --- a/Home.md +++ b/Home.md @@ -1 +1,7 @@ -Welcome to the addon wiki! +Benvenuto nella wiki di KoD!
+Naviga nella sidebar per vedere i contenuti + + +Link utili: +* [sito web](https://kodiondemand.github.io/) +* [canale telegram](https://t.me/KoDcanale) \ No newline at end of file diff --git a/Template-per-l'issue-per-il-test-del-Canale.md b/Template-per-l'issue-per-il-test-del-Canale.md new file mode 100644 index 0000000..2688c51 --- /dev/null +++ b/Template-per-l'issue-per-il-test-del-Canale.md @@ -0,0 +1,225 @@ +# Documento Template per il Test del canale + +## Da copia-incollare nell'ISSUE che si apre da project + + +Di ogni test mantieni la voce dell'esito e cancella le altre, dove occorre aggiungi informazioni. Specifica, dove possibile, il tipo di problema che incontri in quel test. +Se hai suggerimenti/consigli/dubbi sui test...Proponili e/o chiedi! + +*** + +Test #1: Lista Canali + +Cosa serve: il file .json + +1. Verifica del canale nelle sezioni indicate nel file .json, voce "categories". + +- [Tutte] +- [Alcune - Indicare le sezioni dove manca il canale] +- [Nessuna - Voce Canale mancante nella lista] In questo caso non puoi continuare il test. + +2. Icone del canale [] + +- [Presenti] +- [Non Presenti] + +*** + +Test #2: Configura Canale + +1. Presenza della voce "Configura Canale" + +- [Si] +- [No] + +2. Voci presenti in Configura Canale + +a. Cerca Informazioni extra (Default: Attivo) + +- [Si] +- [No] + +b. Includi in Novità (Default: Attivo) + +- [Si] +- [No] + +c. Includi in Novità - Italiano (Default: Attivo) + +- [Si] +- [No] + +d. Includi in ricerca globale (Default: Attivo) + +- [Si] +- [No] + +e. Verifica se i link esistono (Default: Attivo) + +- [Si] +- [No] + +f. Numero de link da verificare (Default: 10) + +- [Si] +- [No] + +g. Mostra link in lingua (Default: Non filtrare) + +- [Si] +- [No] + +*** + +Test #3: Voci menu nella pagina del Canale + +1. Configurazione Autoplay + +- [Si] +- [No] + +2. Configurazione Canale + +- [Si] +- [No] + +*** + +Test #4: Confronto Sito - Pagina Canale + +Cosa serve: il file .py, consultare la def mainlist() + +Promemoria: +della mainlist la struttura è: + +( 'Voce menu1', ['/url/', etc, etc]) +( 'Voce menu2', ['', etc, etc]) +Dove url è una stringa aggiuntiva da aggiungere all'url principale, se in url appare '' allora corrisponde all'indirizzo principale del sito. + +Questo Test confronta i titoli che trovi accedendo alle voci di menu del canale con quello che vedi nella corrispettiva pagina del sito. + +- [Voce menu con problemi - Tipo di problema] ( copiare per tutte le voci che non hanno corrispondenza ) +Tipo di problema = mancano dei titoli, i titoli sono errati, ai titoli corrispondono locandine errate o altro + + +I test successivi sono divisi a seconda si tratta di film, serie tv o anime. +Cancella le sezioni non interessate dal canale. Verificale dalla voce "categories" del file .json. + +**Sezione FILM + +Test da effettuare mentre sei nella pagina dei titoli. Per ogni titolo verfica ci siano le voci nel menu contestuale. + +1. Aggiungi Film in videoteca + +- [Si] +- [No] + +Aggiungi 2-3 titoli in videoteca. Verificheremo successivamente la videoteca. +- [Aggiunti correttamente] +- [Indica eventuali problemi] (copia-incolla per tutti i titoli con cui hai avuto il problema) + +2. Scarica Film + +- [Si] +- [No] + +3. Paginazione ( cliccare sulla voce "Successivo" e verifica la 2° pagina nello stesso modo in cui lo hai fatto per la 1°) + +- [Ok] +- [X - indica il tipo di problema] + +4. Cerca o Cerca Film... +Cerca un titolo a caso in KOD e lo stesso titolo sul sito. Confronta i risultati. + +- [Ok] +- [X - indica il tipo di problema] + +5. Entra nella pagina del titolo, verifica che come ultima voce ci sia "Aggiungi in videoteca": + +- [Si, appare] +- [Non appare] + +6. Eventuali problemi riscontrati +- [ scrivi qui il problema/i ] + +**Sezione Serie TV + +Test da effettuare mentre sei nella pagina dei titoli. Per ogni titolo verfica ci siano le voci nel menu contestuale. + +1. Aggiungi Serie in videoteca + +- [Si] +- [No] + +2. Aggiungi 2-3 titoli in videoteca. Verificheremo successivamente la videoteca. +- [Aggiunti correttamente] +- [Indica eventuali problemi] (copia-incolla per tutti i titoli con cui hai avuto il problema) + +3. Scarica Serie + +- [Si] +- [No] + +4. Cerca o Cerca Serie... +Cerca un titolo a caso in KOD e lo stesso titolo sul sito. Confronta i risultati. + +- [Ok] +- [X - indica il tipo di problema] + +5. Entra nella pagina della serie, verifica che come ultima voce ci sia "Aggiungi in videoteca": + +- [Non appare] +- [Si, appare] + +6. Entra nella pagina dell'episodio, NON deve apparire la voce "Aggiungi in videoteca": + +- [Non appare] +- [Si, appare] + +7. Eventuali problemi riscontrati +- [ scrivi qui il problema/i ] + +**Sezione Anime + +Test da effettuare mentre sei nella pagina dei titoli. Per ogni titolo verfica ci siano le voci nel menu contestuale. + +1. Aggiungi Serie in videoteca + +- [Si] +- [No] + +2. Aggiungi 2-3 titoli in videoteca. Verificheremo successivamente la videoteca. +- [Aggiunti correttamente] +- [Indica eventuali problemi] (copia-incolla per tutti i titoli con cui hai avuto il problema) + +3. Scarica Serie + +- [Si] +- [No] + +4. Rinumerazione + +- [Si] +- [No] + +5. Cerca o Cerca Serie... +Cerca un titolo a caso in KOD e lo stesso titolo sul sito. Confronta i risultati. + +- [Ok] +- [X - indica il tipo di problema] + +6. Entra nella pagina della serie, verifica che come ultima voce ci sia "Aggiungi in videoteca": + +- [Si, appare] +- [Non appare] + +7. Entra nella pagina dell'episodio, NON deve apparire la voce "Aggiungi in videoteca": + +- [Non appare] +- [Si, appare] + +8. Eventuali problemi riscontrati +- [ scrivi qui il problema/i ] + +**Fine test del canale preso singolarmente!!! + diff --git a/_Sidebar.md b/_Sidebar.md new file mode 100644 index 0000000..dd93210 --- /dev/null +++ b/_Sidebar.md @@ -0,0 +1,6 @@ +* [Documentazione support](https://github.com/kodiondemand/addon/wiki/Documentazione-support) + * [decoratori](https://github.com/kodiondemand/addon/wiki/decoratori) + * [funzioni utili](https://github.com/kodiondemand/addon/wiki/funzioni-utili) + * [funzioni di debug](https://github.com/kodiondemand/addon/wiki/funzioni-di-debug) +* [Test di un canale](https://github.com/kodiondemand/addon/wiki/Test-di-un-canale) + * [Template Test Canale](https://github.com/kodiondemand/addon/wiki/Template-per-l'issue-per-il-test-del-Canale) \ No newline at end of file diff --git a/Documentazione-core-support.py.md b/decoratori.md similarity index 67% rename from Documentazione-core-support.py.md rename to decoratori.md index 74ed415..00a901d 100644 --- a/Documentazione-core-support.py.md +++ b/decoratori.md @@ -1,18 +1,6 @@ -Support è un [wrapper](https://it.wikipedia.org/wiki/Wrapper) creato appositamente per facilitare/velocizzare la creazione e il mantenimento dei canali, facendo anche in modo che siano il più possibile "standard". -Contiene: -* decoratori per creare facilmente menu e fare scraping senza preoccuparsi troppo della programmazione in python -* funzioni utili per quando i canali utilizzano temi/servizi esterni famosi, in modo da non dover riscrivere più volte lo stesso scraper (è il caso del tema dooplay di wordpress, usato da parecchi siti) -* funzioni di debug - # Lista decoratori -* menu -* scrape - -# Lista funzioni utili -* hdpass_get_servers - -# Lista funzioni debug -* dbg +* [menu](#menu) +* [scrape](#scrape) ## menu Decoratore per la creazione dei menu (incluse le thumbnail), da utilizzare per la funzione mainlist. @@ -20,26 +8,38 @@ Utilizza le seguenti variabili: * film * tvshow * anime -* top -* search - -film, tvshow e anime creano i corrispettivi menu "di primo livello" (ed i sottomenù,leggi sotto) -![esempio con film e tvshow](https://i.ibb.co/R7wQTFv/film-TVshow.png) - -Si tratta di liste, in cui il primo valore è l'url relativo (il dominio è sottinteso quello del canale, se l'url relativo è vuoto è possibile ometterlo) e gli altri tuple che rappresentano i sottomenù, costituite in questo modo:
+>creano i corrispettivi menu "di primo livello" (ed i sottomenù,leggi sotto) +![esempio con film e tvshow](img/filmTVshow.png) +>Si tratta di liste, in cui il primo valore è l'url relativo (il dominio è sottinteso quello del canale, se l'url relativo è vuoto è possibile ometterlo) e gli altri tuple che rappresentano i sottomenù, costituite in questo modo:
(nome menu, [url, funzione, argomenti]) - -Top crea solo menu "di primo livello" - -![top](https://i.ibb.co/g71rGwG/top.png) - -L'utilizzo è identico a quelli di prima, solo che non possiede il primo valore (e non saranno sottomenù ma menu di primo livello). - -search è utilizzato quando nel sito c'è un solo campo di ricerca per tutti i tipi di fonti (ricerca unica per film e serie ad esempio), in sua assenza viene automaticamente creata una voce "cerca" per ogni menu di primo livello, es: Cerca Film... +```python +film = [ + # (nome menu, [url, funzione, argomenti]) + ('HD', ['', 'menu', 'Film HD Streaming']), + ('Generi', ['', 'menu', 'Film per Genere']), + ('Anni', ['', 'menu', 'Film per Anno']) + ] + tvshow = ['/serietv/', + ('Per Lettera', ['/serietv/', 'menu', 'Serie-Tv per Lettera']), + ('Per Genere', ['/serietv/', 'menu', 'Serie-Tv per Genere']), + ('Per anno', ['/serietv/', 'menu', 'Serie-Tv per Anno']) + ] +``` +* top +>crea solo menu "di primo livello" +![top](img/top.png) +>L'utilizzo è identico, solo che non possiede il primo valore (e non saranno sottomenù ma menu di primo livello). +```python +top = [('Novità',['', 'peliculas', 'new', 'tvshow']), + ('Aggiornamenti', ['', 'peliculas', 'last', 'tvshow']), + ('Popolari', ['', 'peliculas', 'most_view', 'tvshow'])] +``` +* search +>search è utilizzato quando nel sito c'è un solo campo di ricerca per tutti i tipi di fonti (ricerca unica per film e serie ad esempio), in sua assenza viene automaticamente creata una voce "cerca" per ogni menu di primo livello, es: Cerca Film... Il decoratore si occupera poi di includere le impostazioni per l'autoplay e la configurazione del canale -Esempio: +Esempio comprensivo di tutti i campi: ```python @support.menu def mainlist(item): @@ -115,17 +115,17 @@ headers = [['Referer', host]] >Se messa a True non appena la funzione viene chiamata, si aprirà una pagina di [regex101](https://regex101.com) contenente il codice html scaricato (o i singolo blocchi, se patronBlock è impostato) e la regex contenuta in 'patron'.
>Creata appositamente per testare le regex senza il bisogno di stamparsi nei log la pagina e copia-incollare tutto -## hdpass_get_servers -Scraper per hdpass.online, per intenderci: - -![hdpass](https://i.ibb.co/XCkt57z/hdpass.png) - -Esempio di utilizzo: -```python -itemlist = support.hdpass_get_servers(item) +Inoltre è possibile creare degli [hook](https://www.pierov.org/2011/06/10/cosa-sono-gli-hook/) creando funzioni con i seguenti nomi: +* itemHook(item) +>Chiamata ogni qualvolta un item sta per essere aggiunto, prende come parametro item e deve ritornare l'item con tutte le modifiche che ritieni neccessarie. +```python +def itemHook(item): + item.show = item.episode + item.title + return item ``` -Normalmente utilizzato nella funzione findvideos, dato l'item ritorna una itemlist contenente tutti i link presenti - -## dbg -Attiva [l'addon web-pdb](https://github.com/romanvm/kodi.web-pdb) ed apre la finestra del browser per poterlo subito utilizzare. -Utilissimo per fare debugging +* itemlistHook(itemlist) +>Chiamata quando tutti gli item (risultati) sono stati aggiunti, nel caso sia necessaria una manipolazione "finale" (rimozione/accorpamento duplicati?).
+>Attualmente non è ancora stata utilizzata quindi non ci sono esempi +* fullItemlistHook(itemlist) +>Chiamata poco prima di ritornare l'itemlist a kodi, contiene non solo i risultati dello scraping ma anche gli item "di contorno"("Successivo", "Aggiungi in videoteca" ecc..).
+>Non c'è un vero e proprio motivo per cui è stato aggiunto, ma potrebbe risultare utile per casi molto particolari (ed è quindi meglio partire preparati) diff --git a/funzioni-di-debug.md b/funzioni-di-debug.md new file mode 100644 index 0000000..546a07d --- /dev/null +++ b/funzioni-di-debug.md @@ -0,0 +1,6 @@ +# Lista funzioni debug +* [dbg](#dbg) + +## dbg +Attiva [l'addon web-pdb](https://github.com/romanvm/kodi.web-pdb) ed apre la finestra del browser per poterlo subito utilizzare. +Utilissimo per fare debugging. \ No newline at end of file diff --git a/funzioni-utili.md b/funzioni-utili.md new file mode 100644 index 0000000..f42f564 --- /dev/null +++ b/funzioni-utili.md @@ -0,0 +1,14 @@ +# Lista funzioni utili +* [hdpass_get_servers](#hdpass_get_servers) + + +## hdpass_get_servers +Scraper per hdpass.online, per intenderci: + +![hdpass](img/hdpass.png) + +Esempio di utilizzo: +```python +itemlist = support.hdpass_get_servers(item) +``` +Normalmente utilizzato nella funzione findvideos, dato l'item ritorna una itemlist contenente tutti i link presenti diff --git a/img/filmTVshow.png b/img/filmTVshow.png new file mode 100644 index 0000000..a0c2cd5 Binary files /dev/null and b/img/filmTVshow.png differ diff --git a/img/hdpass.png b/img/hdpass.png new file mode 100644 index 0000000..2a27807 Binary files /dev/null and b/img/hdpass.png differ diff --git a/img/top.png b/img/top.png new file mode 100644 index 0000000..814ed1d Binary files /dev/null and b/img/top.png differ