dev mode e altro

mac12m99
2020-01-16 23:00:12 +01:00
committed by marco
parent 220edddaa4
commit 6805d93e3e
4 changed files with 46 additions and 24 deletions
+3 -2
@@ -1,7 +1,8 @@
* [Testare i Canali](https://github.com/kodiondemand/addon/wiki/Testare-un-canale)
* [Modalità di sviluppo](https://github.com/kodiondemand/addon/wiki/dev-mode)
* [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)
* [Testare i Canali](https://github.com/kodiondemand/addon/wiki/Testare-un-canale)
* [Installazione e aggiornamenti](https://github.com/kodiondemand/addon/wiki/aggiornamenti)
* [Installazione e aggiornamenti](https://github.com/kodiondemand/addon/wiki/aggiornamenti)
+2 -3
@@ -10,7 +10,7 @@ Inoltre, lato utente, kodi cerca gli aggiornamenti ogni tanto (spesso si devono
scarica l'intero addon di nuovo anche se è stata modificata una sola linea.
L'updater "ad hoc" di kod invece, non necessita di nessun effort aggiuntivo (a parte per le Major release), basta pushare su github ed hai già fatto un aggiornamento.<br>
Gli aggiornamenti vengono cercati ad ogni avvio di kodi, viene scaricato solo il minimo indispensabile (le singole modifiche ai singoli file) e viene mostrato un messaggio con il changelog (il nome del commit).
Gli aggiornamenti vengono cercati ad ogni avvio di kodi (e periodicamente, ogni volta che si utilizza ed è passata più di un ora dall'ultimo check), viene scaricato solo il minimo indispensabile (le singole modifiche ai singoli file) e viene mostrato un messaggio con il changelog (il nome del commit).
## Funzionamento in sintesi:
All'avvio di kodi l'updater chiama le api di GitHub per vedere qual'è l'ultimo commit e quindi se è necessario aggiornare:
@@ -41,5 +41,4 @@ In tal caso, siccome non saprà a che commit si trova, cercherà di capirlo calc
## Dev mode
Lato sviluppo, è necessario che l'updater sia disattivato, per evitare di interferirsi a vicenda.
Pertanto, se esiste una cartella .git (si presume che gli sviluppatori lavorino direttamente con git), si abiliterà la Dev mode, che, tra le altre cose,
disabilita l'updater.
Pertanto, la [dev mode](https://github.com/kodiondemand/addon/wiki/dev-mode) disabilita l'updater.
+32 -19
@@ -115,6 +115,38 @@ 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
* debugBlock
>Uguale a debug ma per l'attributo patronBlock
* anime
>Se è True attiva l'autorenumberer (per rinominare gli episodi in modo da poterli aggiungere in videoteca)
* addVideolibrary
>Attiva/disattiva l'aggiunta in videoteca, True di default
* search
>Mostra solo i risultati che contengono questa stringa
* typeActionDict
>Permette di associare ai valori trovati con il gruppo 'type' (nella regex), una action (funzione da chiamare)
```python
# il sito mostra film e serie tutte insieme, ma possiede un parametro che indica di che cosa si tratta
# patron lo estrae (gruppo 'type') e in base al tipo di contenuto viene utilizzata la funzione apposita
typeActionDict={'findvideos': ['movies'], 'episodios': ['tvshows']}
```
* typeContentDict
>Simile a typeActionDict, ma per il contentType (film, serie ecc..), se film e serie sono insieme indichiamo a kod quale valore significa film e quale serietv.<br>
>(support si comporta in maniera diversa a seconda del tipo di contenuto)
```python
typeContentDict={'film': ['movies'], 'serie': ['tvshows']}
```
* pagination
>Se settato divide il risultato in più pagine, facendo in modo che kod debba caricare solo una parte dei reali risultati
>Utile se la pagina web mostra tantissimi risultati e il conseguente scraping diventa lento (es: Ultimi 100 film aggiunti)
```python
pagination = 30 # 30 risultati per pagina
pagination = '' # basta che la variabile sia settata e prende il default, ovvero 20 risultati
```
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.
@@ -129,22 +161,3 @@ def itemHook(item):
* 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)
* anime
>Se è True attiva l'autorenumberer (per rinominare gli episodi in modo da poterli aggiungere in videoteca)
* addVideolibrary
>Attiva/disattiva l'aggiunta in videoteca, True di default
* search
>Mostra solo i risultati che contengono questa stringa
* typeActionDict
* typeContentDict
* pagination
>Se settato divide il risultato in più pagine, facendo in modo che kod debba caricare solo una parte dei reali risultati
>Utile se la pagina web mostra tantissimi risultati e il conseguente scraping diventa lento (es: Ultimi 100 film aggiunti)
```python
pagination = 30 # 30 risultati per pagina
pagination = '' # basta che la variabile sia settata e prende il default, ovvero 20 risultati
```
+9
@@ -0,0 +1,9 @@
# Modalità di sviluppo
Se nella directory dell'addon esiste una cartella .git (si presume che gli sviluppatori lavorino direttamente con git), si abiliterà la Dev mode, che abilita
un set di funzionalità atte al [debug](https://github.com/kodiondemand/addon/wiki/funzioni-di-debug) o all'automazione di alcune operazioni ripetitive.
- sarà possibile utilizzare le [funzioni di debug](https://github.com/kodiondemand/addon/wiki/funzioni-di-debug) (per fare in modo che, anche se ci si dimentica di toglierle, l'utente non sia disturbato dalle loro azioni)
- apparirà un nuovo menù "Redirect" nella home, esso è un automatismo per aggiornare gli url dei canali (prende [channels.json](https://raw.githubusercontent.com/kodiondemand/addon/master/channels.json) e chiama uno tutti gli url, aggiornandolo in presenza di redirect e mostrando quelli offline)
- verrà disabilitato [l'updater](https://github.com/kodiondemand/addon/wiki/aggiornamenti)
- apparirà un nuovo menu contestuale in tutte le schermate, itemInfo, che mostra l'oggetto Item selezionato sottoforma di JSON