aggiunto canale di esempio
+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>
|
||||
|
||||
@@ -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
|
||||
```
|
||||
Reference in New Issue
Block a user