greko17
2019-08-11 14:51:11 +02:00
11 changed files with 309 additions and 44 deletions
+3
@@ -1 +1,4 @@
.idea/
test/
+5
@@ -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)
+7 -1
@@ -1 +1,7 @@
Welcome to the addon wiki!
Benvenuto nella wiki di KoD!<br>
Naviga nella sidebar per vedere i contenuti
Link utili:
* [sito web](https://kodiondemand.github.io/)
* [canale telegram](https://t.me/KoDcanale)
+225
@@ -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!!!
+6
@@ -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)
+43 -43
@@ -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:<br>
>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:<br>
(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'.<br>
>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?).<br>
>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..).<br>
>Non c'è un vero e proprio motivo per cui è stato aggiunto, ma potrebbe risultare utile per casi molto particolari (ed è quindi meglio partire preparati)
+6
@@ -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.
+14
@@ -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
BIN
Binary file not shown.

After

Width:  |  Height:  |  Size: 763 KiB

BIN
Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

BIN
Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB