aggiunto canale di esempio

marco
2020-02-16 14:19:21 +01:00
parent 6805d93e3e
commit 0b80e560e6
4 changed files with 45 additions and 6 deletions
+2 -1
@@ -1,8 +1,9 @@
* [Testare i Canali](https://github.com/kodiondemand/addon/wiki/Testare-un-canale)
* [Modalità di sviluppo](https://github.com/kodiondemand/addon/wiki/dev-mode)
* [Canale di esempio](https://github.com/kodiondemand/addon/wiki/canale-di-esempio)
* [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)
* [Installazione e aggiornamenti](https://github.com/kodiondemand/addon/wiki/aggiornamenti)
+1 -1
@@ -6,7 +6,7 @@ Modifiche che sarebbe meglio finissero il più velocemente possibile sui disposi
Utilizzare un repository kodi, come fanno tutti gli addon, implica
alcune operazioni "noiose" ogni qualvolta si vuole mandare un update.
Script come [repo_prep](https://forum.kodi.tv/showthread.php?tid=129401) aiutano, ma si tratta comunque di un operazione in più.<br>
Inoltre, lato utente, kodi cerca gli aggiornamenti ogni tanto (spesso si devono forzare se si vuole averli dubito) e
Inoltre, lato utente, kodi cerca gli aggiornamenti ogni tanto (spesso si devono forzare se si vuole averli subito) e
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>
+8
@@ -0,0 +1,8 @@
# Canale di esempio
E' un finto canale, presente nella cartella channels, con l'unico scopo di essere da base di partenza per tutti quelli che vogliono creare un canale per kod.<br>
Link: [json](https://github.com/kodiondemand/addon/blob/master/channels/0example.json.txt) - [py](https://github.com/kodiondemand/addon/blob/master/channels/0example.py.txt)
Tutti i canali sono costituiti da 2 file, un file .json che indica tutte le carattestiche (nome, tipologia di contenuti ecc..) un file .py contente il codice vero e proprio
Per incominciare, copiate questi 2 file e togliete l'estensione .txt, poi leggete ed eliminate man mano i commenti ed inziate a scrivere il vostro canale.
Guardate anche la [documentazione di support.py](https://github.com/kodiondemand/addon/wiki/Documentazione-support) in quanto i canali ne fanno uso
+34 -4
@@ -2,6 +2,19 @@
* [menu](#menu)
* [scrape](#scrape)
Per degli esempi vedere gli altri canali (la maggior parte li usano), o anche il [canale di esempio](https://github.com/kodiondemand/addon/wiki/canale-di-esempio) <br>
NB: i decoratori si usano in questo modo
```python
@decoratore
def funzione(parametri):
....
```
Per questi in particolare ricordatevi di mettere sempre
```python
return locals()
```
alla fine, in quanto il decoratore chiamerà la funzione stessa, si farà ritornare i parametri e agirà di conseguenza.
## menu
Decoratore per la creazione dei menu (incluse le thumbnail), da utilizzare per la funzione mainlist.
Utilizza le seguenti variabili:
@@ -125,7 +138,13 @@ headers = [['Referer', host]]
>Attiva/disattiva l'aggiunta in videoteca, True di default
* search
>Mostra solo i risultati che contengono questa stringa
>Mostra solo i risultati che contengono questa stringa (cerca nel titolo)
```python
@support.scrape
def search(item, texto):
search = texto
....
```
* typeActionDict
>Permette di associare ai valori trovati con il gruppo 'type' (nella regex), una action (funzione da chiamare)
```python
@@ -156,8 +175,19 @@ def itemHook(item):
return item
```
* 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
>Chiamata quando tutti gli item (risultati) sono stati aggiunti, nel caso sia necessaria una manipolazione "finale", ad esempio rimozione/accorpamento duplicati, o, nel caso qui sotto, ordinamento.<br>
```python
def itemlistHook(itemlist):
itemlist.sort(key=lambda item: item.title)
return itemlist
```
* 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)
>Può essere utili in alcuni casi, ad esempio per modificare parametri degli item "speciali" sopracitati
```python
# modifico l'url della pagina successiva (itemlist[-1], dato che "pagina successiva" è sempre l'ultimo item)
def fullItemlistHook(itemlist):
msgId = int(itemlist[-1].url.split('/')[-1])
itemlist[-1].url = host + '?before=' + str(msgId) + '&after=' + str(msgId-20)
return itemlist
```