From 0b4eadc2635a2b0b3286e376b1f5858bb0fdae76 Mon Sep 17 00:00:00 2001 From: greko17 Date: Mon, 4 Nov 2019 00:40:48 +0100 Subject: [PATCH] fix: example estensione .txt per togliere errrore nei log --- channels/0example.json.txt | 116 +++++++++++++++ channels/0example.py.txt | 286 +++++++++++++++++++++++++++++++++++++ 2 files changed, 402 insertions(+) create mode 100644 channels/0example.json.txt create mode 100644 channels/0example.py.txt 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'
', 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)