preparazione terreno per i decoratori + funzioni utili
This commit is contained in:
@@ -30,7 +30,7 @@ def mainlist(item):
|
||||
support.menu(itemlist, 'Novità bold', 'ultimiep', "%s/fetch_pages.php?request=episodes" % host, 'tvshow')
|
||||
support.menu(itemlist, 'Anime bold', 'lista_anime', "%s/animelist?load_all=1" % host)
|
||||
support.menu(itemlist, 'Archivio A-Z submenu', 'list_az', '%s/animelist?load_all=1' % host, args=['tvshow', 'alfabetico'])
|
||||
support.menu(itemlist, 'Cerca', 'search', host)
|
||||
|
||||
support.aplay(item, itemlist, list_servers, list_quality)
|
||||
support.channel_config(item, itemlist)
|
||||
|
||||
|
||||
@@ -31,10 +31,10 @@ def mainlist(item):
|
||||
|
||||
support.menu(itemlist, 'ITA submenu bold', 'build_menu', host + '/filter?', args=["anime", 'language[]=1'])
|
||||
support.menu(itemlist, 'Sub-ITA submenu bold', 'build_menu', host + '/filter?', args=["anime", 'language[]=0'])
|
||||
support.menu(itemlist, 'Archivio A-Z submenu', 'alfabetico', host+'/az-list', args=["tvshow","a-z"])
|
||||
support.menu(itemlist, 'In corso submenu', 'video', host+'/', args=["in sala"])
|
||||
support.menu(itemlist, 'Generi submenu', 'generi', host+'/')
|
||||
support.menu(itemlist, 'Ultimi Aggiunti bold', 'video', host+'/newest', args=["anime"])
|
||||
('Archivio A-Z ', ['/az-list', 'alfabetico', ]), args=["tvshow","a-z"])
|
||||
('In corso ', ['/', 'video', ]), args=["in sala"])
|
||||
('Generi ', ['/')
|
||||
support.menu(itemlist, 'generi', ]), 'Ultimi Aggiunti bold', 'video', host+'/newest', args=["anime"])
|
||||
support.menu(itemlist, 'Ultimi Episodi bold', 'video', host+'/updated', args=["novita'"])
|
||||
support.menu(itemlist, 'Cerca...', 'search')
|
||||
support.aplay(item, itemlist, list_servers, list_quality)
|
||||
|
||||
@@ -79,19 +79,8 @@ def menu(item):
|
||||
return support.thumb(itemlist)
|
||||
|
||||
|
||||
def search(item, text):
|
||||
support.log(item.url, "search" ,text)
|
||||
|
||||
try:
|
||||
item.url = item.url + "/?s=" + text
|
||||
return peliculas(item)
|
||||
|
||||
# Continua la ricerca in caso di errore
|
||||
except:
|
||||
import sys
|
||||
for line in sys.exc_info():
|
||||
logger.error("%s" % line)
|
||||
return []
|
||||
|
||||
|
||||
def newest(categoria):
|
||||
|
||||
@@ -28,46 +28,25 @@ host = config.get_channel_url(__channel__)
|
||||
|
||||
headers = [['Referer', host]]
|
||||
|
||||
@support.menu
|
||||
def mainlist(item):
|
||||
logger.info('[cinemalibero.py] mainlist')
|
||||
|
||||
autoplay.init(item.channel, list_servers, list_quality) # Necessario per Autoplay
|
||||
|
||||
# Menu Principale
|
||||
itemlist = []
|
||||
support.menu(itemlist, 'Film bold', 'video', host+'/category/film/')
|
||||
support.menu(itemlist, 'Generi submenu', 'genres', host)
|
||||
support.menu(itemlist, 'Cerca film submenu', 'search', host)
|
||||
support.menu(itemlist, 'Serie TV bold', 'video', host+'/category/serie-tv/', contentType='episode')
|
||||
support.menu(itemlist, 'Anime submenu', 'video', host+'/category/anime-giapponesi/', contentType='episode')
|
||||
support.menu(itemlist, 'Cerca serie submenu', 'search', host, contentType='episode')
|
||||
support.menu(itemlist, 'Sport bold', 'video', host+'/category/sport/')
|
||||
|
||||
autoplay.show_option(item.channel, itemlist) # Necessario per Autoplay (Menu Configurazione)
|
||||
|
||||
support.channel_config(item, itemlist)
|
||||
|
||||
return itemlist
|
||||
|
||||
|
||||
def search(item, texto):
|
||||
logger.info("[cinemalibero.py] " + item.url + " search " + texto)
|
||||
item.url = host + "/?s=" + texto
|
||||
try:
|
||||
return video(item)
|
||||
# Continua la ricerca in caso di errore
|
||||
except:
|
||||
import sys
|
||||
for line in sys.exc_info():
|
||||
logger.error("%s" % line)
|
||||
return []
|
||||
film = '/category/film/'
|
||||
filmSub = [
|
||||
('Generi', ['', 'genres']),
|
||||
('Sport', ['/category/sport/', 'peliculas']),
|
||||
]
|
||||
tvshow = '/category/serie-tv/'
|
||||
tvshowSub = [
|
||||
('Anime ', ['/category/anime-giapponesi/', 'video'])
|
||||
]
|
||||
|
||||
return locals()
|
||||
|
||||
def genres(item):
|
||||
return support.scrape(item, patronBlock=r'<div id="bordobar" class="dropdown-menu(.*?)</li>', patron=r'<a class="dropdown-item" href="([^"]+)" title="([A-z]+)"', listGroups=['url', 'title'], action='video')
|
||||
return support.scrape2(item, patronBlock=r'<div id="bordobar" class="dropdown-menu(.*?)</li>', patron=r'<a class="dropdown-item" href="([^"]+)" title="([A-z]+)"', listGroups=['url', 'title'], action='video')
|
||||
|
||||
|
||||
def video(item):
|
||||
def peliculas(item):
|
||||
logger.info('[cinemalibero.py] video')
|
||||
itemlist = []
|
||||
|
||||
|
||||
@@ -24,12 +24,12 @@ def mainlist(item):
|
||||
|
||||
# Menu Principale
|
||||
itemlist = []
|
||||
support.menu(itemlist, 'Film bold', 'peliculas', host + '/film/')
|
||||
support.menu(itemlist, 'Per genere submenu', 'menu', host, args="Film per Genere")
|
||||
film = '/film/'
|
||||
('Per genere ', [, 'menu', ]), args="Film per Genere")
|
||||
support.menu(itemlist, 'Anime bold', 'peliculas', host + '/category/anime/')
|
||||
support.menu(itemlist, 'Serie TV bold', 'peliculas', host + '/serie-tv/', contentType='episode')
|
||||
support.menu(itemlist, 'Ultime Uscite submenu', 'peliculas', host + "/stagioni/", "episode", args='latests')
|
||||
support.menu(itemlist, 'Ultimi Episodi submenu', 'peliculas_latest_ep', host + "/episodi/", "episode", args='lateste')
|
||||
tvshow = '/serie-tv/'
|
||||
('Ultime Uscite ', ["/stagioni/", 'peliculas', ]), "episode", args='latests')
|
||||
('Ultimi Episodi ', ["/episodi/", 'peliculas_latest_ep', ]), "episode", args='lateste')
|
||||
support.menu(itemlist, '[COLOR blue]Cerca...[/COLOR]', 'search')
|
||||
|
||||
autoplay.init(item.channel, list_servers, list_quality)
|
||||
|
||||
@@ -35,10 +35,10 @@ def mainlist(item):
|
||||
itemlist = []
|
||||
|
||||
support.menu(itemlist, 'Serie TV', 'serietv', host, contentType = 'tvshow') # mettere sempre episode per serietv, anime!!
|
||||
support.menu(itemlist, 'Serie TV Archivio submenu', 'serietv', host + "/category/serie-tv-archive/", contentType = 'tvshow')
|
||||
support.menu(itemlist, 'Ultimi Aggiornamenti submenu', 'serietv', host + '/aggiornamento-episodi/', args='True', contentType = 'tvshow')
|
||||
('Serie TV Archivio ', ["/category/serie-tv-archive/", 'serietv', ]), contentType = 'tvshow')
|
||||
('Ultimi Aggiornamenti ', ['/aggiornamento-episodi/', 'serietv', ]), args='True', contentType = 'tvshow')
|
||||
support.menu(itemlist, 'Anime / Cartoni', 'serietv', host + '/category/anime-cartoni-animati/', contentType = 'tvshow')
|
||||
support.menu(itemlist, 'Cerca...', 'search', host, contentType = 'tvshow')
|
||||
|
||||
|
||||
## itemlist = filtertools.show_option(itemlist, item.channel, list_language, list_quality)
|
||||
# autoplay
|
||||
|
||||
@@ -38,8 +38,8 @@ def mainlist(item):
|
||||
|
||||
support.menu(itemlist, 'Novità bold', 'pelicuals_tv', host, 'tvshow')
|
||||
support.menu(itemlist, 'Serie TV bold', 'lista_serie', host, 'tvshow')
|
||||
support.menu(itemlist, 'Archivio A-Z submenu', 'list_az', host, 'tvshow', args=['serie'])
|
||||
support.menu(itemlist, 'Cerca', 'search', host, 'tvshow')
|
||||
('Archivio A-Z ', [, 'list_az', ]), 'tvshow', args=['serie'])
|
||||
|
||||
support.aplay(item, itemlist, list_servers, list_quality)
|
||||
support.channel_config(item, itemlist)
|
||||
|
||||
|
||||
@@ -31,8 +31,8 @@ def mainlist(item):
|
||||
support.menu(itemlist, 'Film alta definizione bold', 'peliculas', host, contentType='movie', args='film')
|
||||
support.menu(itemlist, 'Categorie Film bold', 'categorias_film', host , contentType='movie', args='film')
|
||||
support.menu(itemlist, 'Categorie Serie bold', 'categorias_serie', host, contentType='tvshow', args='serie')
|
||||
support.menu(itemlist, '[COLOR blue]Cerca Film...[/COLOR] bold', 'search', host, contentType='movie', args='film')
|
||||
support.menu(itemlist, '[COLOR blue]Cerca Serie...[/COLOR] bold', 'search', host, contentType='tvshow', args='serie')
|
||||
|
||||
|
||||
|
||||
autoplay.init(item.channel, list_servers, list_quality)
|
||||
autoplay.show_option(item.channel, itemlist)
|
||||
|
||||
@@ -40,7 +40,7 @@ def mainlist(item):
|
||||
support.menu(itemlist, 'Da non perdere bold submenu', 'serietv', "%s/lista-serie-tv" % host, 'tvshow', args=['tv', 'da non perdere'])
|
||||
support.menu(itemlist, 'Classiche bold submenu', 'serietv', "%s/lista-serie-tv" % host, 'tvshow', args=['tv', 'classiche'])
|
||||
support.menu(itemlist, 'Disegni che si muovono sullo schermo per magia bold', 'tvserie', "%s/category/animazione/" % host, 'tvshow', args= ['anime'])
|
||||
support.menu(itemlist, 'Cerca', 'search', host, 'tvshow', args=['cerca'])
|
||||
|
||||
|
||||
# autoplay
|
||||
support.aplay(item, itemlist, list_servers, list_quality)
|
||||
|
||||
@@ -28,7 +28,7 @@ def mainlist(item):
|
||||
support.menu(itemlist, 'Ultime Uscite', 'peliculas', host + "/category/serie-tv/", "episode")
|
||||
support.menu(itemlist, 'Ultimi Episodi', 'peliculas', host + "/ultimi-episodi/", "episode", 'latest')
|
||||
support.menu(itemlist, 'Categorie', 'menu', host, "episode", args="Serie-Tv per Genere")
|
||||
support.menu(itemlist, 'Cerca...', 'search', host, 'episode', args='serie')
|
||||
|
||||
|
||||
autoplay.init(item.channel, list_servers, [])
|
||||
autoplay.show_option(item.channel, itemlist)
|
||||
|
||||
@@ -30,11 +30,11 @@ def mainlist(item):
|
||||
support.menu(itemlist, 'Sub ITA bold', 'carousel_subita', host, contentType='movie', args='movies')
|
||||
support.menu(itemlist, 'Ultime Richieste Inserite bold', 'carousel_request', host, contentType='movie', args='movies')
|
||||
support.menu(itemlist, 'Film Nelle Sale bold', 'carousel_cinema', host, contentType='movie', args='movies')
|
||||
support.menu(itemlist, 'Film Ultimi Inseriti submenu', 'carousel_last', host, contentType='movie', args='movies')
|
||||
support.menu(itemlist, 'Film Top ImDb submenu', 'top_imdb', host + '/top-imdb/', contentType='movie', args='movies')
|
||||
support.menu(itemlist, 'Serie TV', 'carousel_episodes', host, contentType='episode', args='tvshows')
|
||||
support.menu(itemlist, 'Serie TV Top ImDb submenu', 'top_serie', host + '/top-imdb/', contentType='episode', args='tvshows')
|
||||
support.menu(itemlist, '[COLOR blue]Cerca...[/COLOR] bold', 'search', host)
|
||||
('Film Ultimi Inseriti ', [, 'carousel_last', 'movies'])
|
||||
('Film Top ImDb ', ['/top-imdb/', 'top_imdb', 'movies'])
|
||||
support.menu(itemlist, 'Serie TV', 'carousel_episodes', host, contentTyp='episode', args='tvshows')
|
||||
('Serie TV Top ImDb ', ['/top-imdb/', 'top_serie', 'tvshows'])
|
||||
|
||||
autoplay.init(item.channel, list_servers, list_quality)
|
||||
autoplay.show_option(item.channel, itemlist)
|
||||
|
||||
|
||||
@@ -27,8 +27,8 @@ def mainlist(item):
|
||||
itemlist = []
|
||||
support.menu(itemlist, 'Novità bold', 'peliculas_tv', host, 'tvshow')
|
||||
support.menu(itemlist, 'Serie TV bold', 'lista_serie', host, 'tvshow')
|
||||
support.menu(itemlist, 'Archivio A-Z submenu', 'list_az', host, 'tvshow', args=['serie'])
|
||||
support.menu(itemlist, 'Cerca', 'search', host, 'tvshow')
|
||||
('Archivio A-Z ', [, 'list_az', ]), 'tvshow', args=['serie'])
|
||||
|
||||
support.aplay(item, itemlist, list_servers, list_quality)
|
||||
support.channel_config(item, itemlist)
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@ def mainlist(item):
|
||||
support.menu(itemlist, 'Novità bold', 'latestep', "%s/ultimi-episodi" % host, 'tvshow')
|
||||
support.menu(itemlist, 'Serie TV bold', 'lista_serie', "%s/category/serie-tv" % host, 'tvshow')
|
||||
support.menu(itemlist, 'Categorie', 'categorie', host, 'tvshow')
|
||||
support.menu(itemlist, 'Cerca', 'search', host, 'tvshow')
|
||||
|
||||
support.aplay(item, itemlist, list_servers, list_quality)
|
||||
support.channel_config(item, itemlist)
|
||||
return itemlist
|
||||
|
||||
@@ -18,13 +18,13 @@ def mainlist(item):
|
||||
support.log()
|
||||
itemlist = []
|
||||
|
||||
support.menu(itemlist, 'Film', 'peliculas', host + "/film/")
|
||||
film = "/film/"
|
||||
support.menu(itemlist, 'Film Anime', 'peliculas', host + "/genere/anime/")
|
||||
support.menu(itemlist, 'Film per genere', 'generos', host)
|
||||
support.menu(itemlist, 'Serie TV', 'peliculas', host + "/serietv/", contentType='tvshow')
|
||||
tvshow = "/serietv/"
|
||||
support.menu(itemlist, 'Anime', 'peliculas', host + "/genere/anime/", contentType='tvshow')
|
||||
support.menu(itemlist, 'Cerca film', 'search', host)
|
||||
support.menu(itemlist, 'Cerca serie tv', 'search', host, contentType='tvshow')
|
||||
|
||||
|
||||
|
||||
autoplay.init(item.channel, list_servers, list_quality)
|
||||
autoplay.show_option(item.channel, itemlist)
|
||||
|
||||
@@ -28,10 +28,10 @@ def mainlist(item):
|
||||
support.menu(itemlist, 'Ultime novità bold', 'updates', host, contentType='episode')
|
||||
support.menu(itemlist, 'Episodi più visti bold', 'most_view', host, contentType='episode')
|
||||
support.menu(itemlist, 'Anime', 'list', host + '/lista-anime-2/', contentType='episode')
|
||||
support.menu(itemlist, 'Sub-Ita submenu', 'list', host + '/lista-anime-sub-ita/', contentType='episode')
|
||||
support.menu(itemlist, 'Serie TV bold', 'list', host + '/lista-serie-tv/', contentType='episode')
|
||||
('Sub-Ita ', ['/lista-anime-sub-ita/', 'list', ])
|
||||
tvshow = '/lista-serie-tv/'
|
||||
support.menu(itemlist, 'Film Animazione bold', 'list', host + '/lista-film-animazione/', contentType="episode", args="film")
|
||||
support.menu(itemlist, '[COLOR blue]Cerca anime e serie...[/COLOR] bold', 'search', host, contentType='episode')
|
||||
|
||||
|
||||
autoplay.init(item.channel, list_servers, list_quality)
|
||||
autoplay.show_option(item.channel, itemlist)
|
||||
|
||||
@@ -43,12 +43,12 @@ def mainlist(item):
|
||||
|
||||
# Main options
|
||||
itemlist = []
|
||||
support.menu(itemlist, 'Film', "peliculas", host+"film-hd")
|
||||
film = "film-hd"
|
||||
support.menu(itemlist, 'I più votati', "peliculas", host+"ratings/?get=movies")
|
||||
support.menu(itemlist, 'I più popolari', "peliculas", host+"trending/?get=movies")
|
||||
support.menu(itemlist, 'Generi', "generos", host)
|
||||
support.menu(itemlist, 'Anno', "year", host)
|
||||
support.menu(itemlist, 'Cerca', "search", host)
|
||||
|
||||
|
||||
autoplay.show_option(item.channel, itemlist)
|
||||
|
||||
|
||||
@@ -16,7 +16,6 @@ from lib import unshortenit
|
||||
from platformcode import logger, config
|
||||
from specials import autoplay
|
||||
|
||||
|
||||
def hdpass_get_servers(item):
|
||||
# Carica la pagina
|
||||
data = httptools.downloadpage(item.url).data.replace('\n', '')
|
||||
@@ -92,6 +91,58 @@ def url_decode(url_enc):
|
||||
def color(text, color):
|
||||
return "[COLOR " + color + "]" + text + "[/COLOR]"
|
||||
|
||||
|
||||
def search(channel, item, texto):
|
||||
log(item.url + " search " + texto)
|
||||
item.url = channel.host + "/?s=" + texto
|
||||
try:
|
||||
return channel.peliculas(item)
|
||||
# Continua la ricerca in caso di errore
|
||||
except:
|
||||
import sys
|
||||
for line in sys.exc_info():
|
||||
logger.error("%s" % line)
|
||||
return []
|
||||
|
||||
|
||||
def dbg():
|
||||
import webbrowser
|
||||
webbrowser.open('localhost:5555')
|
||||
import web_pdb;
|
||||
web_pdb.set_trace()
|
||||
|
||||
|
||||
def scrape2(item, patron = '', listGroups = [], headers="", blacklist="", data="", patronBlock="",
|
||||
patronNext="", action="findvideos", addVideolibrary = True, typeContentDict={}, typeActionDict={}):
|
||||
import json, urllib2, webbrowser
|
||||
url = 'https://regex101.com'
|
||||
|
||||
html = httptools.downloadpage(item.url, headers=headers, ignore_response_code=True).data.replace("'", '"')
|
||||
html = re.sub('\n|\t', ' ', html)
|
||||
|
||||
m = re.search(r'\((?!\?)', patron)
|
||||
n = 0
|
||||
dbg()
|
||||
while m:
|
||||
patron = patron[:m.end()] + '?P<' + listGroups[n] + '>' + patron[m.end():]
|
||||
m = re.search(r'\((?!\?)', patron)
|
||||
n += 1
|
||||
|
||||
headers = {'content-type': 'application/json'}
|
||||
data = {
|
||||
'regex': patron,
|
||||
'flags': 'gm',
|
||||
'testString': html,
|
||||
'delimiter': '"',
|
||||
'flavor': 'python'
|
||||
}
|
||||
r = urllib2.Request(url + '/api/regex', json.dumps(data), headers=headers)
|
||||
r = urllib2.urlopen(r).read()
|
||||
permaLink = json.loads(r)['permalinkFragment']
|
||||
webbrowser.open(url + "/r/" + permaLink)
|
||||
|
||||
return
|
||||
|
||||
def scrape(func):
|
||||
# args is a dict containing the foolowing keys:
|
||||
# patron: the patron to use for scraping page, all capturing group must match with listGroups
|
||||
@@ -456,6 +507,7 @@ def menuItem(itemlist, filename, title='', action='', url='', contentType='movie
|
||||
|
||||
def menu(func):
|
||||
def wrapper(*args):
|
||||
log()
|
||||
args = func(*args)
|
||||
|
||||
item = args['item']
|
||||
|
||||
@@ -253,7 +253,11 @@ def run(item=None):
|
||||
from specials import search
|
||||
search.save_search(tecleado)
|
||||
|
||||
itemlist = channel.search(item, tecleado)
|
||||
if 'search' in dir(channel):
|
||||
itemlist = channel.search(item, tecleado)
|
||||
else:
|
||||
from core import support
|
||||
itemlist = support.search(channel, item, tecleado)
|
||||
else:
|
||||
return
|
||||
|
||||
|
||||
Reference in New Issue
Block a user