')
+ if re.findall('rel="category tag">serie', data, re.IGNORECASE):
+ support.log('select = ### è una serie ###')
+ return episodios(Item(channel=item.channel,
+ title=item.title,
+ fulltitle=item.fulltitle,
+ url=item.url,
+ args='serie',
+ contentType='tvshow',
+ data1 = data
+ ))
+ elif re.findall('rel="category tag">anime', data, re.IGNORECASE):
+ if re.findall('episodio', block, re.IGNORECASE) or re.findall('stagione', data, re.IGNORECASE) or re.findall('numero stagioni', data, re.IGNORECASE):
+ support.log('select = ### è un anime ###')
+ return episodios(Item(channel=item.channel,
+ title=item.title,
+ fulltitle=item.fulltitle,
+ url=item.url,
+ args='anime',
+ contentType='tvshow',
+ data1 = data
+ ))
+ else:
+ support.log('select = ### è un film ###')
+ return findvideos(Item(channel=item.channel,
+ title=item.title,
+ fulltitle=item.fulltitle,
+ url=item.url,
+ args = '',
+ contentType='movie',
+ #data = data
+ ))
+ else:
+ support.log('select = ### è un film ###')
+ return findvideos(Item(channel=item.channel,
+ title=item.title,
+ fulltitle=item.fulltitle,
+ url=item.url,
+ contentType='movie',
+ #data = data
+ ))
+
+############## Fondo Pagina
+# da adattare al canale
+def search(item, text):
+ support.log('search', item)
+ itemlist = []
+ text = text.replace(' ', '+')
+ item.url = host + "/?s=" + text
+ item.contentType = item.contentType
+ try:
+ item.args = 'search'
+ item.contentType = 'episode' # non fa uscire le voci nel context menu
+ return peliculas(item)
+ # Se captura la excepcion, para no interrumpir al buscador global si un canal falla
+ except:
+ import sys
+ for line in sys.exc_info():
+ support.log('search log:', line)
+ return []
+
+
+# da adattare al canale
+# inserire newest solo se il sito ha la pagina con le ultime novità/aggiunte
+# altrimenti NON inserirlo
+def newest(categoria):
+ support.log('newest ->', categoria)
+ itemlist = []
+ item = Item()
+ try:
+ if categoria == 'peliculas':
+ item.url = host+'/category/film/'
+ item.contentType = 'movie'
+## item.action = 'peliculas'
+## itemlist = peliculas(item)
+ elif categoria == 'series':
+ item.contentType = 'tvshow'
+ item.args = 'update'
+ item.url = host+'/aggiornamenti-serie-tv/'
+ item.action = 'peliculas'
+ itemlist = peliculas(item)
+
+ if itemlist[-1].action == 'peliculas':
+ itemlist.pop()
+ # Continua la ricerca in caso di errore
+ except:
+ import sys
+ for line in sys.exc_info():
+ support.log('newest log: ', {0}.format(line))
+ return []
+
+ return itemlist
+
+
+#support.server(item, data='', itemlist=[], headers='', AutoPlay=True, CheckLinks=True)
+def findvideos(item):
+ support.log('findvideos ->', item)
+ #return support.server(item, headers=headers)
+ support.log(item)
+ if item.contentType == 'movie':
+ return support.server(item)
+ else:
+ return support.server(item, data= item.url)
diff --git a/channels/0example.json.txt b/channels/0example.json.txt
new file mode 100644
index 00000000..783193c6
--- /dev/null
+++ b/channels/0example.json.txt
@@ -0,0 +1,116 @@
+Rev:0.2
+Update: 03-10-2019
+#####################
+
+Promemoria da cancellare pena la non visibilità del canale in KOD!!
+
+#####################
+
+
+le voci in settings sono state inserite per l'unico scopo
+di velocizzare la scrittura del file
+Vanno lasciate solo quelle voci il cui funzionamento sul
+canale non vanno attivate.
+"not_active": ["include_in_newest"], VA INSERITO nei canali che NON hanno nessuna voce newest.
+Ovviamente va mantenuto tutto il codice di quell'id tra le {}
+se vanno cancellati tutti deve rimanere la voce:
+"settings": []
+##################### Cancellare fino a qui!
+{
+ "id": "nome del file .json",
+ "name": "Nome del canale visualizzato in KOD",
+ "language": ["ita", "sub-ita"],
+ "active": false,
+ "adult": false,
+ "thumbnail": "",
+ "banner": "",
+ "categories": ["movie", "tvshow", "anime", "vos", "documentary", "adult"],
+ "not_active": ["include_in_newest"],
+ "settings": [
+ {
+ "id": "include_in_global_search",
+ "type": "bool",
+ "label": "@70728",
+ "default": false,
+ "enabled": false,
+ "visible": false
+ },
+ {
+ "id": "include_in_newest_peliculas",
+ "type": "bool",
+ "label": "@70727",
+ "default": false,
+ "enabled": false,
+ "visible": false
+ },
+ {
+ "id": "include_in_newest_series",
+ "type": "bool",
+ "label": "@70727",
+ "default": false,
+ "enabled": false,
+ "visible": false
+ },
+ {
+ "id": "include_in_newest_anime",
+ "type": "bool",
+ "label": "@70727",
+ "default": false,
+ "enabled": false,
+ "visible": false
+ },
+ {
+ "id": "include_in_newest_italiano",
+ "type": "bool",
+ "label": "@70727",
+ "default": false,
+ "enabled": false,
+ "visible": false
+ },
+ {
+ "id": "checklinks",
+ "type": "bool",
+ "label": "Verifica se i link esistono",
+ "default": false,
+ "enabled": false,
+ "visible": false
+ },
+ {
+ "id": "checklinks_number",
+ "type": "list",
+ "label": "Numero di link da verificare",
+ "default": 2,
+ "enabled": false,
+ "visible": "eq(-1,false)",
+ "lvalues": [ "3", "5", "10", "15", "20" ]
+ },
+ {
+ "id": "filter_languages",
+ "type": "list",
+ "label": "@30019",
+ "default": 0,
+ "enabled": false,
+ "visible": false,
+ "lvalues": ["Non Filtrare"]
+ }
+ ],
+
+ "renumber": [
+ {
+ "id": "autorenumber",
+ "type": "bool",
+ "label": "@70712",
+ "default": false,
+ "enabled": false,
+ "visible": false
+ },
+ {
+ "id": "autorenumber_mode",
+ "type": "bool",
+ "label": "@70688",
+ "default": false,
+ "enabled": false,
+ "visible": "eq(-1,false)"
+ }
+ ]
+}
diff --git a/channels/0example.py.txt b/channels/0example.py.txt
new file mode 100644
index 00000000..f418da4a
--- /dev/null
+++ b/channels/0example.py.txt
@@ -0,0 +1,286 @@
+# -*- coding: utf-8 -*-
+# ------------------------------------------------------------
+# Canale per 'idcanale nel json'
+# By: pincopallo!
+# Eventuali crediti se vuoi aggiungerli
+# ------------------------------------------------------------
+# Rev: 0.2
+# Update 12-10-2019
+# fix:
+# 1. aggiunto pagination e sistemate alcune voci
+# 2. modificato problemi in eccezioni
+# 3. aggiunta la def select
+# 4. modifica alla legenda e altre aggiunte
+
+# Questo vuole solo essere uno scheletro per velocizzare la scrittura di un canale.
+# La maggior parte dei canali può essere scritta con il decoratore.
+# I commenti sono più un promemoria... che una vera e propria spiegazione!
+# Niente di più.
+# Ulteriori informazioni sono reperibili nel wiki:
+# https://github.com/kodiondemand/addon/wiki/decoratori
+
+"""
+ Questi sono commenti per i beta-tester.
+
+ Su questo canale, nella categoria 'Ricerca Globale'
+ non saranno presenti le voci 'Aggiungi alla Videoteca'
+ e 'Scarica Film'/'Scarica Serie', dunque,
+ la loro assenza, nel Test, NON dovrà essere segnalata come ERRORE.
+
+ Novità. Indicare in quale/i sezione/i è presente il canale:
+ - Nessuna, film, serie, anime...
+
+ Avvisi:
+ - Eventuali avvisi per i tester
+
+ Ulteriori info:
+
+"""
+# CANCELLARE Ciò CHE NON SERVE per il canale, lascia il codice commentato ove occorre,
+# ma fare PULIZIA quando si è finito di testarlo
+
+# Qui gli import
+#import re
+
+# per l'uso dei decoratori, per i log, e funzioni per siti particolari
+from core import support
+# se non si fa uso di findhost()
+from platformcode import config
+
+# in caso di necessità
+#from core import scrapertoolsV2, httptools, servertools, tmdb
+from core.item import Item # per newest
+#from lib import unshortenit
+
+##### fine import
+
+# impostazioni variabili o def findhost()
+
+# se necessaria la variabile __channel__
+# da cancellare se non utilizzata
+__channel__ = "id nel json"
+# da cancellare se si utilizza findhost()
+host = config.get_channel_url('id nel json' OR __channel__) # <-- ATTENZIONE
+headers = [['Referer', host]]
+
+# Inizio findhost() - da cancellare se usato l'altro metodo
+#impostati dinamicamente da findhost()
+host = ""
+headers = ""
+
+def findhost():
+ global host, headers
+ # da adattare alla bisogna...
+ permUrl = httptools.downloadpage('INSERIRE-URL-QUI', follow_redirects=False).headers
+ host = 'https://www.'+permUrl['location'].replace('https://www.google.it/search?q=site:', '')
+ # cancellare host non utilizzato
+ host = scrapertoolsV2.find_single_match(permUrl, r'
.*?Titolo