fix: aggiunte/modifiche ai files del canale 0example
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
Rev:0.1
|
Rev:0.2
|
||||||
Update: 18-9-2019
|
Update: 03-10-2019
|
||||||
#####################
|
#####################
|
||||||
|
|
||||||
Promemoria da cancellare pena la non visibilità del canale in KOD!!
|
Promemoria da cancellare pena la non visibilità del canale in KOD!!
|
||||||
@@ -11,8 +11,7 @@ le voci in settings sono state inserite per l'unico scopo
|
|||||||
di velocizzare la scrittura del file
|
di velocizzare la scrittura del file
|
||||||
Vanno lasciate solo quelle voci il cui funzionamento sul
|
Vanno lasciate solo quelle voci il cui funzionamento sul
|
||||||
canale non vanno attivate.
|
canale non vanno attivate.
|
||||||
Per esempio se il canale non ha: newest()
|
"not_active": ["include_in_newest"], VA INSERITO nei canali che NON hanno nessuna voce newest.
|
||||||
lasciare le voci dove c'è newest nell'id. Es: include_in_newest_series
|
|
||||||
Ovviamente va mantenuto tutto il codice di quell'id tra le {}
|
Ovviamente va mantenuto tutto il codice di quell'id tra le {}
|
||||||
se vanno cancellati tutti deve rimanere la voce:
|
se vanno cancellati tutti deve rimanere la voce:
|
||||||
"settings": []
|
"settings": []
|
||||||
@@ -20,12 +19,13 @@ se vanno cancellati tutti deve rimanere la voce:
|
|||||||
{
|
{
|
||||||
"id": "nome del file .json",
|
"id": "nome del file .json",
|
||||||
"name": "Nome del canale visualizzato in KOD",
|
"name": "Nome del canale visualizzato in KOD",
|
||||||
"language": ["ita", "vos"],
|
"language": ["ita", "vosi"],
|
||||||
"active": false,
|
"active": false,
|
||||||
"adult": false,
|
"adult": false,
|
||||||
"thumbnail": "",
|
"thumbnail": "",
|
||||||
"banner": "",
|
"banner": "",
|
||||||
"categories": ["movie", "tvshow", "anime", "vos", "documentary", "adult"],
|
"categories": ["movie", "tvshow", "anime", "vos", "documentary", "adult"],
|
||||||
|
"not_active": ["include_in_newest"],
|
||||||
"settings": [
|
"settings": [
|
||||||
{
|
{
|
||||||
"id": "include_in_global_search",
|
"id": "include_in_global_search",
|
||||||
|
|||||||
+79
-46
@@ -1,30 +1,42 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
# ------------------------------------------------------------
|
# ------------------------------------------------------------
|
||||||
# Canale per 'idcanale nel json'
|
# Canale per 'idcanale nel json'
|
||||||
|
# By: pincopallo!
|
||||||
|
# Eventuali crediti se vuoi aggiungerli
|
||||||
# ------------------------------------------------------------
|
# ------------------------------------------------------------
|
||||||
# Rev: 0.2
|
# Rev: 0.2
|
||||||
# Update 18-09-2019
|
# Update 12-10-2019
|
||||||
# fix:
|
# fix:
|
||||||
# 1. aggiunto pagination e sistemate alcune voci
|
# 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.
|
# 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!
|
# I commenti sono più un promemoria... che una vera e propria spiegazione!
|
||||||
# Niente di più.
|
# Niente di più.
|
||||||
# Ulteriori informazioni sono reperibili nel wiki:
|
# Ulteriori informazioni sono reperibili nel wiki:
|
||||||
# https://github.com/kodiondemand/addon/wiki/decoratori
|
# https://github.com/kodiondemand/addon/wiki/decoratori
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
Questi sono commenti per i beta-tester.
|
||||||
|
|
||||||
Problemi noti che non superano il test del canale:
|
Su questo canale, nella categoria 'Ricerca Globale'
|
||||||
- indicare i problemi
|
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:
|
Avvisi:
|
||||||
- Eventuali avvisi per i tester
|
- Eventuali avvisi per i tester
|
||||||
|
|
||||||
Ulteriori info:
|
Ulteriori info:
|
||||||
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
# CANCELLARE Ciò CHE NON SERVE per il canale, lascia il codice commentato
|
# CANCELLARE Ciò CHE NON SERVE per il canale, lascia il codice commentato ove occorre,
|
||||||
# ma fare PULIZIA quando si è finito di testarlo
|
# ma fare PULIZIA quando si è finito di testarlo
|
||||||
|
|
||||||
# Qui gli import
|
# Qui gli import
|
||||||
@@ -37,7 +49,7 @@ from platformcode import config
|
|||||||
|
|
||||||
# in caso di necessità
|
# in caso di necessità
|
||||||
#from core import scrapertoolsV2, httptools, servertools, tmdb
|
#from core import scrapertoolsV2, httptools, servertools, tmdb
|
||||||
#from core.item import Item
|
from core.item import Item # per newest
|
||||||
#from lib import unshortenit
|
#from lib import unshortenit
|
||||||
|
|
||||||
##### fine import
|
##### fine import
|
||||||
@@ -48,7 +60,7 @@ from platformcode import config
|
|||||||
# da cancellare se non utilizzata
|
# da cancellare se non utilizzata
|
||||||
__channel__ = "id nel json"
|
__channel__ = "id nel json"
|
||||||
# da cancellare se si utilizza findhost()
|
# da cancellare se si utilizza findhost()
|
||||||
host = config.get_channel_url('id nel json OR '__channel__) # <-- ATTENZIONE
|
host = config.get_channel_url('id nel json' OR __channel__) # <-- ATTENZIONE
|
||||||
headers = [['Referer', host]]
|
headers = [['Referer', host]]
|
||||||
|
|
||||||
# Inizio findhost() - da cancellare se usato l'altro metodo
|
# Inizio findhost() - da cancellare se usato l'altro metodo
|
||||||
@@ -62,7 +74,7 @@ def findhost():
|
|||||||
permUrl = httptools.downloadpage('INSERIRE-URL-QUI', follow_redirects=False).headers
|
permUrl = httptools.downloadpage('INSERIRE-URL-QUI', follow_redirects=False).headers
|
||||||
host = 'https://www.'+permUrl['location'].replace('https://www.google.it/search?q=site:', '')
|
host = 'https://www.'+permUrl['location'].replace('https://www.google.it/search?q=site:', '')
|
||||||
# cancellare host non utilizzato
|
# cancellare host non utilizzato
|
||||||
host = scrapertoolsV2.find_single_match(data, r'<div class="elementor-button-wrapper"> <a href="([^"]+)"')
|
host = scrapertoolsV2.find_single_match(permUrl, r'<div class="elementor-button-wrapper"> <a href="([^"]+)"')
|
||||||
headers = [['Referer', host]]
|
headers = [['Referer', host]]
|
||||||
|
|
||||||
findhost() # così le imposta una volta per tutte
|
findhost() # così le imposta una volta per tutte
|
||||||
@@ -83,8 +95,7 @@ def mainlist(item):
|
|||||||
|
|
||||||
# Ordine delle voci
|
# Ordine delle voci
|
||||||
# Voce FILM, puoi solo impostare l'url
|
# Voce FILM, puoi solo impostare l'url
|
||||||
film = ['',
|
film = ['', # url per la voce FILM, se possibile la pagina principale con le ultime novità
|
||||||
#'url', # url per la voce FILM, se possibile la pagina principale con le ultime novità
|
|
||||||
#Voce Menu,['url','action','args',contentType]
|
#Voce Menu,['url','action','args',contentType]
|
||||||
('Al Cinema', ['', 'peliculas', '']),
|
('Al Cinema', ['', 'peliculas', '']),
|
||||||
('Generi', ['', 'genres', 'genres']),
|
('Generi', ['', 'genres', 'genres']),
|
||||||
@@ -97,19 +108,17 @@ def mainlist(item):
|
|||||||
]
|
]
|
||||||
|
|
||||||
# Voce SERIE, puoi solo impostare l'url
|
# Voce SERIE, puoi solo impostare l'url
|
||||||
tvshow = ['',
|
tvshow = ['', # url per la voce Serie, se possibile la pagina con titoli di serie
|
||||||
#'url', # url per la voce Serie, se possibile la pagina con titoli di serie
|
|
||||||
#Voce Menu,['url','action','args',contentType]
|
#Voce Menu,['url','action','args',contentType]
|
||||||
('Novità', ['', '', ''])
|
('Novità', ['', '', '']),
|
||||||
('Per Lettera', ['', 'genres', 'letters']),
|
('Per Lettera', ['', 'genres', 'letters']),
|
||||||
('Per Genere', ['', 'genres', 'genres']),
|
('Per Genere', ['', 'genres', 'genres']),
|
||||||
('Per anno', ['', 'genres', 'years'])
|
('Per anno', ['', 'genres', 'years'])
|
||||||
|
]
|
||||||
# Voce ANIME, puoi solo impostare l'url
|
# Voce ANIME, puoi solo impostare l'url
|
||||||
anime = ['',
|
anime = ['', # url per la voce Anime, se possibile la pagina con titoli di anime
|
||||||
#'url', # url per la voce Anime, se possibile la pagina con titoli di anime
|
|
||||||
#Voce Menu,['url','action','args',contentType]
|
#Voce Menu,['url','action','args',contentType]
|
||||||
('Novità', ['', '', ''])
|
('Novità', ['', '', '']),
|
||||||
('In Corso',['', '', '', '']),
|
('In Corso',['', '', '', '']),
|
||||||
('Ultimi Episodi',['', '', '', '']),
|
('Ultimi Episodi',['', '', '', '']),
|
||||||
('Ultime Serie',['', '', '', ''])
|
('Ultime Serie',['', '', '', ''])
|
||||||
@@ -133,52 +142,53 @@ def mainlist(item):
|
|||||||
nome = [( '' ['', '', '', ''])
|
nome = [( '' ['', '', '', ''])
|
||||||
return locals()
|
return locals()
|
||||||
|
|
||||||
# riepilogo key per il match nei patron
|
# Legenda known_keys per i groups nei patron
|
||||||
# known_keys = ['url', 'title', 'title2', 'season', 'episode', 'thumb', 'quality',
|
# known_keys = ['url', 'title', 'title2', 'season', 'episode', 'thumb', 'quality',
|
||||||
# 'year', 'plot', 'duration', 'genere', 'rating', 'type', 'lang']
|
# 'year', 'plot', 'duration', 'genere', 'rating', 'type', 'lang']
|
||||||
# url = link relativo o assoluto
|
# url = link relativo o assoluto alla pagina titolo film/serie
|
||||||
# title = titolo Film/Serie/Anime/Altro
|
# title = titolo Film/Serie/Anime/Altro
|
||||||
# title2 = titolo dell'episodio Serie/Anime/Altro
|
# title2 = titolo dell'episodio Serie/Anime/Altro
|
||||||
# season = stagione in formato numerico
|
# season = stagione in formato numerico
|
||||||
# episode = numero episodio, in formato numerico. Se il sito ha stagionexepisodio potete omettere season
|
# episode = numero episodio, in formato numerico.
|
||||||
# thumb = locandina Film/Serie/Anime/Altro
|
# thumb = linkrealtivo o assoluto alla locandina Film/Serie/Anime/Altro
|
||||||
# quality = qualità indicata del video
|
# quality = qualità indicata del video
|
||||||
# year = anno in formato numerico (4 cifre)
|
# year = anno in formato numerico (4 cifre)
|
||||||
# duration = durata del Film/Serie/Anime/Altro
|
# duration = durata del Film/Serie/Anime/Altro
|
||||||
# genere = genere del Film/Serie/Anime/Altro. Es: avventura, commedia
|
# genere = genere del Film/Serie/Anime/Altro. Es: avventura, commedia
|
||||||
# rating = punteggio/voto in formato numerico
|
# rating = punteggio/voto in formato numerico
|
||||||
# type = tipo del video. Es. movie per film o tvshow per le serie. Di solito sono discrimanti usati dal sito
|
# type = tipo del video. Es. movie per film o tvshow per le serie. Di solito sono discrimanti usati dal sito
|
||||||
# lang = lingua del video. Es: ITA, Sub-ITA, Sub, SUB ITA. Se non appare 'ITA' è di default
|
# lang = lingua del video. Es: ITA, Sub-ITA, Sub, SUB ITA.
|
||||||
|
# AVVERTENZE: Se il titolo è trovato nella ricerca TMDB/TVDB/Altro allora le locandine e altre info non saranno quelle recuperate nel sito.!!!!
|
||||||
|
|
||||||
|
|
||||||
@support.scrape
|
@support.scrape
|
||||||
def peliculas(item):
|
def peliculas(item):
|
||||||
support.log(item)
|
support.log(item)
|
||||||
#dbg # decommentare per attivare web_pdb
|
#support.dbg() # decommentare per attivare web_pdb
|
||||||
|
|
||||||
action = ''
|
action = ''
|
||||||
blacklist = ['']
|
blacklist = ['']
|
||||||
patron = r''
|
patron = r''
|
||||||
patronBlock = r''
|
patronBlock = r''
|
||||||
patronNext = ''
|
patronNext = ''
|
||||||
pagination = 0
|
pagination = ''
|
||||||
|
|
||||||
debug = False # True per testare le regex sul sito
|
#debug = True # True per testare le regex sul sito
|
||||||
return locals()
|
return locals()
|
||||||
|
|
||||||
@support.scrape
|
@support.scrape
|
||||||
def episodios(item):
|
def episodios(item):
|
||||||
support.log(item)
|
support.log(item)
|
||||||
#dbg
|
#support.dbg()
|
||||||
|
|
||||||
action = ''
|
action = ''
|
||||||
blacklist = ['']
|
blacklist = ['']
|
||||||
patron = r''
|
patron = r''
|
||||||
patronBlock = r''
|
patronBlock = r''
|
||||||
patronNext = ''
|
patronNext = ''
|
||||||
pagination = 0
|
pagination = ''
|
||||||
|
|
||||||
debug = False
|
#debug = True
|
||||||
return locals()
|
return locals()
|
||||||
|
|
||||||
# Questa def è utilizzata per generare i menu del canale
|
# Questa def è utilizzata per generare i menu del canale
|
||||||
@@ -186,28 +196,50 @@ def episodios(item):
|
|||||||
@support.scrape
|
@support.scrape
|
||||||
def genres(item):
|
def genres(item):
|
||||||
support.log(item)
|
support.log(item)
|
||||||
#dbg
|
#support.dbg()
|
||||||
|
|
||||||
action = ''
|
action = ''
|
||||||
blacklist = ['']
|
blacklist = ['']
|
||||||
patron = r''
|
patron = r''
|
||||||
patronBlock = r''
|
patronBlock = r''
|
||||||
patronNext = ''
|
patronNext = ''
|
||||||
pagination = 0
|
pagination = ''
|
||||||
|
|
||||||
debug = False
|
#debug = True
|
||||||
return locals()
|
return locals()
|
||||||
|
|
||||||
############## Fine ordine obbligato
|
############## Fine ordine obbligato
|
||||||
## Def ulteriori
|
## Def ulteriori
|
||||||
|
|
||||||
|
# per quei casi dove il sito non differenzia film e/o serie e/o anime
|
||||||
|
# e la ricerca porta i titoli mischiati senza poterli distinguere tra loro
|
||||||
|
# andranno modificate anche le def peliculas e episodios ove occorre
|
||||||
|
def select(item):
|
||||||
|
support.log('select --->', 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
|
############## Fondo Pagina
|
||||||
# da adattare al canale
|
# da adattare al canale
|
||||||
def search(item, text):
|
def search(item, text):
|
||||||
support.log('search', item)
|
support.log('search', item)
|
||||||
itemlist = []
|
itemlist = []
|
||||||
text = text.replace(' ', '+')
|
text = text.replace(' ', '+')
|
||||||
item.url = '/index.php?do=search&story=%s&subaction=search' % (text)
|
item.url = host + '/index.php?do=search&story=%s&subaction=search' % (text)
|
||||||
# bisogna inserire item.contentType per la ricerca globale
|
# bisogna inserire item.contentType per la ricerca globale
|
||||||
# se il canale è solo film, si può omettere, altrimenti bisgona aggiungerlo e discriminare.
|
# se il canale è solo film, si può omettere, altrimenti bisgona aggiungerlo e discriminare.
|
||||||
item.contentType = item.contentType
|
item.contentType = item.contentType
|
||||||
@@ -240,14 +272,15 @@ def newest(categoria):
|
|||||||
except:
|
except:
|
||||||
import sys
|
import sys
|
||||||
for line in sys.exc_info():
|
for line in sys.exc_info():
|
||||||
log('newest log: ', {0}.format(line))
|
support.log('newest log: ', {0}.format(line))
|
||||||
return []
|
return []
|
||||||
|
|
||||||
return itemlist
|
return itemlist
|
||||||
|
|
||||||
# da adattare... ( support.server ha vari parametri )
|
# 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)
|
#support.server(item, data='', itemlist=[], headers='', AutoPlay=True, CheckLinks=True)
|
||||||
def findvideos(item):
|
def findvideos(item):
|
||||||
support.log('findvideos ->', item)
|
support.log('findvideos ->', item)
|
||||||
return support.server(item, headers=headers)
|
return support.server(item, headers=headers)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user