# -*- 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'
', item) #support.dbg() data = httptools.downloadpage(item.url, headers=headers).data # pulizia di data, in caso commentare le prossime 2 righe data = re.sub('\n|\t', ' ', data) data = re.sub(r'>\s+<', '> <', data) block = scrapertoolsV2.find_single_match(data, r'') if re.findall('', 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 decommentando portiamo data nella def senza doverla riscaricare )) ############## Fondo Pagina # da adattare al canale def search(item, text): support.log('search', item) itemlist = [] text = text.replace(' ', '+') item.url = host + '/index.php?do=search&story=%s&subaction=search' % (text) # bisogna inserire item.contentType per la ricerca globale # se il canale è solo film, si può omettere, altrimenti bisgona aggiungerlo e discriminare. item.contentType = item.contentType try: 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(): 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 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 # da adattare... # consultare il wiki sia per support.server che ha vari parametri, # sia per i siti con hdpass #support.server(item, data='', itemlist=[], headers='', AutoPlay=True, CheckLinks=True) def findvideos(item): support.log('findvideos ->', item) return support.server(item, headers=headers)