Merge remote-tracking branch 'origin/master'

This commit is contained in:
marco
2020-01-24 20:52:15 +01:00
3 changed files with 48 additions and 106 deletions

View File

@@ -111,15 +111,15 @@ def findvideos(item):
itemlist = []
support.log()
matches = support.match(item, patron=r'<a href="([^"]+)"', patronBlock=r'<div style="white-space: (.*?)<div id="main-content"')
matches = support.match(item, patron=r'href="([^"]+)"', patronBlock=r'<div style="white-space: (.*?)<div id="main-content"')
if not matches.matches:
if not matches.matches and item.contentType != 'episode':
item.data = matches.data
item.contentType = 'tvshow'
return episodios(item)
# matches.matches.sort()
support.log('VIDEO')
for url in matches.matches:
lang = url.split('/')[-2]
if 'ita' in lang.lower():

View File

@@ -4,32 +4,6 @@
# Canale per ilgeniodellostreaming
# ------------------------------------------------------------
"""
Alcuni video non si aprono sul sito...
Avvisi per il test:
i link per le categorie non sono TUTTI visibili nella pagina del sito:
vanno costruiti con i nomi dei generi che vedete nel CANALE.
Es:
https://ilgeniodellostreaming.se/genere/+ genere nel canale
genere-> kids
https://ilgeniodellostreaming.se/genere/kids
genere-> avventura
https://ilgeniodellostreaming.se/genere/avventura
Se il genere è formato da 2 parola lo spazio si trasforma in -
genere-> televisione film
https://ilgeniodellostreaming.se/genere/televisione-film
Novità -> Serietv e Aggiornamenti nel canale:
- le pagine sono di 25 titoli
##### note per i dev #########
- La pagina "Aggiornamenti Anime" del sito è vuota (update 13-9-2019)
- in url: film o serietv
"""
import re
@@ -68,7 +42,7 @@ def mainlist(item):
]
Tvshow = [
('Show TV', ['/tv-show/', 'peliculas', '', 'tvshow'])
('Show TV bullet bold', ['/tv-show/', 'peliculas', '', 'tvshow'])
]
search = ''
@@ -81,21 +55,11 @@ def peliculas(item):
log()
if item.args == 'search':
patronBlock = r'<div class="search-page">(?P<block>.*?)<footer class="main">'
patron = r'<div class="thumbnail animation-2"><a href="(?P<url>[^"]+)">'\
'<img src="(?P<thumb>[^"]+)" alt="[^"]+" \/>[^>]+>(?P<type>[^<]+)'\
'<\/span>.*?<a href.*?>(?P<title>.+?)[ ]?(?:\[(?P<lang>Sub-ITA)\])?'\
'<\/a>[^>]+>(?:<span class="rating">IMDb\s*(?P<rating>[0-9.]+)<\/span>)?'\
'.+?(?:<span class="year">(?P<year>[0-9]+)<\/span>)?[^>]+>[^>]+><p>(?P<plot>.*?)<\/p>'
patron = r'<img src="(?P<thumb>[^"]+)" alt="[^"]+" />[^>]+>(?P<type>[^<]+)</span>.*?<a href="(?P<url>[^"]+)">(?P<title>.+?)[ ]?(?:\[(?P<lang>Sub-ITA)\])?</a>[^>]+>[^>]+>(?:<span class="rating">IMDb\s*(?P<rating>[^>]+)</span>)?.?(?:<span class="year">(?P<year>[0-9]+)</span>)?[^>]+>[^>]+><p>(?P<plot>.*?)</p>'
## type_content_dict={'movie': ['film'], 'tvshow': ['tv']}
## type_action_dict={'findvideos': ['film'], 'episodios': ['tv']}
def itemHook(item):
if 'film' not in item.url:
item.contentType = 'tvshow'
item.action = 'episodios'
return item
typeContentDict={'movie': ['film'], 'tvshow': ['tv']}
typeActionDict={'findvideos': ['film'], 'episodios': ['tv']}
else:
if item.contentType == 'movie':
@@ -161,9 +125,8 @@ def genres(item):
elif item.args == 'letter':
patronBlock = r'<div class="movies-letter">(?P<block>.*?)<div class="clearfix">'
patron = r'<a(?:.+?)?href="(?P<url>.*?)"[ ]?>(?P<title>.*?)<\/a>'
patronMenu = r'<a(?:.+?)?href="(?P<url>.*?)"[ ]?>(?P<title>.*?)<\/a>'
## debug = True
return locals()
def search(item, text):
@@ -211,34 +174,4 @@ def newest(categoria):
def findvideos(item):
log()
itemlist =[]
html = support.match(item, patron='<iframe class="metaframe rptss" src="([^"]+)"[^>]+>',headers=headers)
matches = html.matches
data = html.data
for url in matches:
html = httptools.downloadpage(url, headers=headers).data
data += str(scrapertools.find_multiple_matches(html, '<meta name="og:url" content="([^"]+)">'))
itemlist = support.server(item, data)
if item.args == 'update':
data = httptools.downloadpage(item.url).data
patron = r'<div class="item"><a href="'+host+'/serietv/([^"\/]+)\/"><i class="icon-bars">'
series = support.match(data, patron=patron).matches
titles = support.typo(series.upper().replace('-', ' '), 'bold color kod')
goseries = support.typo("Vai alla Serie:", ' bold')
itemlist.append(
Item(channel=item.channel,
title=goseries + titles,
fulltitle=titles,
show=series,
contentType='tvshow',
contentSerieName=series,
url=host+"/serietv/"+series,
action='episodios',
contentTitle=titles,
plot = "Vai alla Serie :" + titles + " con tutte le puntate",
))
return itemlist
return support.server(item)

View File

@@ -57,38 +57,44 @@ def show_channels(item):
for key, channel in json['channels'].items():
# Find File Path
if 'http' in channel['path']: file_path = httptools.downloadpage(channel['path'],follow_redirects=True).url
if 'http' in channel['path']:
try:
file_path = httptools.downloadpage(channel['path'], follow_redirects=True, timeout=5).url
except:
support.log('Offline')
file_path = None
else: file_path = channel['path']
# make relative path
path = os.path.dirname(os.path.abspath(file_path))
if 'http' in path: path = path[path.find('http'):].replace('\\','/').replace(':/','://')
if file_path.startswith('http'): file_url = httptools.downloadpage(file_path, follow_redirects=True).data
elif os.path.isfile(file_path): file_url = open(file_path, "r").read()
else:
item.channel_id = key
remove_channel(item)
file_url=''
if file_path:
# make relative path
path = os.path.dirname(os.path.abspath(file_path))
if 'http' in path: path = path[path.find('http'):].replace('\\','/').replace(':/','://')
if file_path.startswith('http'): file_url = httptools.downloadpage(file_path, follow_redirects=True).data
elif os.path.isfile(file_path): file_url = open(file_path, "r").read()
else:
item.channel_id = key
remove_channel(item)
file_url=''
# load json
if file_url:
json_url = jsontools.load(file_url)
# load json
if file_url:
json_url = jsontools.load(file_url)
thumbnail = relative('thumbnail', json_url, path)
if not thumbnail: thumbnail = item.thumbnail
fanart = relative('fanart', json_url, path)
plot = json_url['plot'] if json_url.has_key('plot') else ''
thumbnail = relative('thumbnail', json_url, path)
if not thumbnail: thumbnail = item.thumbnail
fanart = relative('fanart', json_url, path)
plot = json_url['plot'] if json_url.has_key('plot') else ''
itemlist.append(Item(channel=item.channel,
title=typo(channel['channel_name'],'bold'),
url=file_path,
thumbnail=thumbnail,
fanart=fanart,
plot=plot,
action='show_menu',
channel_id = key,
context=context,
path=path))
itemlist.append(Item(channel=item.channel,
title=typo(channel['channel_name'],'bold'),
url=file_path,
thumbnail=thumbnail,
fanart=fanart,
plot=plot,
action='show_menu',
channel_id = key,
context=context,
path=path))
autoplay.show_option(item.channel, itemlist)
support.channel_config(item, itemlist)
@@ -490,6 +496,7 @@ def get_seasons(item):
fulltitle=item.fulltitle,
show=item.show,
thumbnails=item.thumbnails,
filterseason=str(season['season']),
url=url,
action='episodios',
contentSeason=season['season'],
@@ -528,9 +535,10 @@ def get_seasons(item):
def episodios(item):
support.log()
support.log(item)
itm = item
if inspect.stack()[1][3] not in ['add_tvshow', 'get_episodes', 'update', 'find_episodes']:
pagination = int(defp) if defp.isdigit() else ''
else: pagination = ''
@@ -573,7 +581,8 @@ def episodios(item):
title = ' - ' + episode['title'] if episode.has_key('title') else ''
title = '%sx%s%s' % (season_number, episode_number, title)
if season_number == item.filter or not item.filterseason:
if season_number == item.filterseason or not item.filterseason:
itemlist.append(Item(channel= item.channel,
title= format_title(title),
fulltitle = item.fulltitle,
@@ -606,7 +615,7 @@ def episodios(item):
action='episodios',
contentSeason=season,
infoLabels=infoLabels,
filterseason=season,
filterseason=str(season),
path=item.path))
elif pagination and len(json_data['episodes_list']) >= pag * pagination: