Fix Launcher e community per Matrix

This commit is contained in:
Alhaziel
2020-02-06 20:30:22 +01:00
parent 03e5390d71
commit 7f378f4a1c
2 changed files with 54 additions and 55 deletions

View File

@@ -50,7 +50,6 @@ def start():
def run(item=None):
logger.info()
if not item:
# Extract item from sys.argv
if sys.argv[2]:
@@ -196,8 +195,8 @@ def run(item=None):
if os.path.exists(channel_file):
try:
channel = __import__('channels.%s' % item.channel, None,
None, ["channels.%s" % item.channel])
channel = __import__('%s.%s' % (CHANNELS, item.channel), None,
None, ['%s.%s' % (CHANNELS, item.channel)])
except ImportError:
exec("import " + CHANNELS + "." + item.channel + " as channel")

View File

@@ -83,7 +83,7 @@ def show_channels(item):
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 ''
plot = json_url['plot'] if 'plot' in json_url else ''
itemlist.append(Item(channel=item.channel,
title=typo(channel['channel_name'],'bold'),
@@ -114,10 +114,10 @@ def show_menu(item):
support.log("KEY= ",key)
if key != 'search':
if type(menu[key]) == dict:
title = menu[key]['title'] if menu[key].has_key('title') else item.title
title = menu[key]['title'] if 'title' in menu[key] else item.title
thumbnail = relative('thumbnail', menu[key], item.path)
url = relative('url', menu[key], item.path) if menu[key].has_key('url') else ''
plot = menu[key]['plot'] if menu[key].has_key('plot') else ''
url = relative('url', menu[key], item.path) if 'url' in menu[key] else ''
plot = menu[key]['plot'] if 'plot' in menu[key] else ''
else:
title = menu[key]
thumbnail = item.thumbnail
@@ -133,10 +133,10 @@ def show_menu(item):
action='submenu' if not url else 'show_menu',
filterkey=key if not url else '' ))
if menu.has_key('search'):
if 'search' in menu:
if type(menu['search']) == dict:
url = relative('url', menu['search'], item.path) if menu['search'].has_key('url') else ''
search_menu = menu['search']['search_menu'] if menu['search'].has_key('search_menu') else ''
url = relative('url', menu['search'], item.path) if 'url' in menu['search'] else ''
search_menu = menu['search']['search_menu'] if 'search_menu' in menu['search'] else ''
else:
url = ''
search_menu = False
@@ -158,11 +158,11 @@ def show_menu(item):
for option in json_data['menu']:
thumbnail = relative('thumbnail', option, item.path)
fanart = relative('fanart', option, item.path)
plot = option['plot'] if option.has_key('plot') else item.plot
plot = option['plot'] if 'plot' in option else item.plot
url = relative('link', option, item.path)
submenu = option['submenu'] if option.has_key('submenu') else []
level2 = option['level2'] if option.has_key('level2') else []
if option.has_key('title'):
submenu = option['submenu'] if 'submenu' in option else []
level2 = option['level2'] if 'level2' in option else []
if 'title' in option:
itemlist.append(Item(channel=item.channel,
title=format_title(option['title']),
fulltitle=option['title'],
@@ -173,11 +173,11 @@ def show_menu(item):
url=url,
path=item.path,
menu=level2))
if option.has_key('search'):
if 'search' in option:
menu = json_data['menu']
if type(option['search']) == dict:
url = relative('url', option['search'], item.path) if option['search'].has_key('url') else ''
search_menu = option['search']['search_menu'] if option['search'].has_key('search_menu') else ''
url = relative('url', option['search'], item.path) if 'url' in option['search'] else ''
search_menu = option['search']['search_menu'] if 'search_menu' in option['search'] else ''
itemlist.append(Item(channel=item.channel,
title=typo('Cerca nel Canale...','color kod bold'),
thumbnail=get_thumb('search.png'),
@@ -192,9 +192,9 @@ def show_menu(item):
for key in submenu:
if key != 'search':
if type(submenu[key]) == dict:
title = submenu[key]['title'] if submenu[key].has_key('title') else item.title
title = submenu[key]['title'] if 'title' in ubmenu[key] else item.title
thumbnail = relative('thumbnail', submenu[key], item.path)
plot = submenu[key]['plot'] if submenu[key].has_key('plot') else ''
plot = submenu[key]['plot'] if 'plot' in submenu[key] else ''
else:
title = submenu[key]
thumbnail = item.thumbnail
@@ -207,10 +207,10 @@ def show_menu(item):
plot=plot,
action='submenu',
filterkey=key))
if submenu.has_key('search'):
if 'search' in submenu:
if type(submenu['search']) == dict:
url = relative('url', submenu['search'], item.path) if submenu['search'].has_key('url') else ''
search_menu = submenu['search']['search_menu'] if submenu['search'].has_key('search_menu') else ''
url = relative('url', submenu['search'], item.path) if 'url' in submenu['search'] else ''
search_menu = submenu['search']['search_menu'] if 'search_menu' in submenu['search'] else ''
else:
url = ''
search_menu = False
@@ -288,14 +288,14 @@ def submenu(item):
filter_list = []
json_data = load_json(item)
if json_data.has_key("movies_list"): item.media_type= 'movies_list'
elif json_data.has_key("tvshows_list"): item.media_type = 'tvshows_list'
elif json_data.has_key("episodes_list"): item.media_type = 'episodes_list'
elif json_data.has_key("generic_list"): item.media_type= 'generic_list'
if "movies_list" in json_data: item.media_type= 'movies_list'
elif "tvshows_list" in json_data: item.media_type = 'tvshows_list'
elif "episodes_list" in json_data: item.media_type = 'episodes_list'
elif "generic_list" in json_data: item.media_type= 'generic_list'
media_type = item.media_type
for media in json_data[media_type]:
if media.has_key(item.filterkey) and media[item.filterkey]:
if item.filterkey in media and media[item.filterkey]:
if type(media[item.filterkey]) == str and media[item.filterkey] not in filter_list:
filter_list.append(media[item.filterkey])
elif type(media[item.filterkey]) == list:
@@ -333,7 +333,7 @@ def list_all(item):
if json_data:
for i, media in enumerate(json_data[media_type]):
if media.has_key('search'): continue
if 'search' in media: continue
if pagination and (pag - 1) * pagination > i: continue # pagination
if pagination and i >= pag * pagination: break # pagination
@@ -343,8 +343,8 @@ def list_all(item):
fulltitle = media['title']
title = set_title(fulltitle, language, quality)
infoLabels['year'] = media['year'] if media.has_key('year')else ''
infoLabels['tmdb_id'] = media['tmdb_id'] if media.has_key('tmdb_id') else ''
infoLabels['year'] = media['year'] if 'year' in media else ''
infoLabels['tmdb_id'] = media['tmdb_id'] if 'tmdb_id' in media else ''
if 'movies_list' in json_data or 'generic_list' in json_data:
url= media
@@ -355,7 +355,7 @@ def list_all(item):
else:
contentSerieName = fulltitle
contentType = 'tvshow'
if media.has_key('seasons_list'):
if 'seasons_list' in media:
url = media['seasons_list']
action = 'get_seasons'
else:
@@ -421,7 +421,7 @@ def list_filtered(item):
for i, media in enumerate(json_data[media_type]):
if pagination and (pag - 1) * pagination > i: continue # pagination
if pagination and i >= pag * pagination: break # pagination
if media.has_key(item.filterkey):
if item.filterkey in media:
filter_keys = [it.lower() for it in media[item.filterkey]] if type(media[item.filterkey]) == list else media[item.filterkey].lower()
if item.filter.lower() in filter_keys:
@@ -430,8 +430,8 @@ def list_filtered(item):
fulltitle = media['title']
title = set_title(fulltitle, language, quality)
infoLabels['year'] = media['year'] if media.has_key('year')else ''
infoLabels['tmdb_id'] = media['tmdb_id'] if media.has_key('tmdb_id') else ''
infoLabels['year'] = media['year'] if 'year' in media else ''
infoLabels['tmdb_id'] = media['tmdb_id'] if 'tmdb_id' in media else ''
if 'movies_list' in json_data or 'generic_list' in json_data:
url= media
@@ -442,7 +442,7 @@ def list_filtered(item):
else:
contentSerieName = fulltitle
contentType = 'tvshow'
if media.has_key('seasons_list'):
if 'seasons_list' in media:
url = media['seasons_list']
action = 'get_seasons'
else:
@@ -564,15 +564,15 @@ def episodios(item):
support.log(json_data)
infoLabels = item.infoLabels
ep = 1
season = infoLabels['season'] if infoLabels.has_key('season') else item.contentSeason if item.contentSeason else 1
season = infoLabels['season'] if 'season' in infoLabels else item.contentSeason if item.contentSeason else 1
for i, episode in enumerate(json_data['episodes_list']):
if pagination and (pag - 1) * pagination > i: continue # pagination
if pagination and i >= pag * pagination: break # pagination
match = []
if episode.has_key('number'):
if 'number' in episode:
match = support.match(episode['number'], patron=r'(?P<season>\d+)x(?P<episode>\d+)').match
if not match and episode.has_key('title'):
if not match and 'title' in episode:
match = support.match(episode['title'], patron=r'(?P<season>\d+)x(?P<episode>\d+)').match
if match: match = match[0]
if match:
@@ -580,8 +580,8 @@ def episodios(item):
ep = int(match[1]) + 1
season_number = match[0]
else:
season_number = episode['season'] if episode.has_key('season') else season if season else 1
episode_number = episode['number'] if episode.has_key('number') else ''
season_number = episode['season'] if 'season' in episode else season if season else 1
episode_number = episode['number'] if 'number' in episode else ''
if not episode_number.isdigit():
episode_number = support.match(episode['title'], patron=r'(?P<episode>\d+)').match
ep = int(episode_number) if episode_number else ep
@@ -592,10 +592,10 @@ def episodios(item):
infoLabels['season'] = season_number
infoLabels['episode'] = episode_number
plot = episode['plot'] if episode.has_key('plot') else item.plot
thumbnail = episode['poster'] if episode.has_key('poster') else episode['thumbnail'] if episode.has_key('thumbnail') else item.thumbnail
plot = episode['plot'] if 'plot' in episode else item.plot
thumbnail = episode['poster'] if 'poster' in episode else episode['thumbnail'] if 'thumbnail' in episode else item.thumbnail
title = ' - ' + episode['title'] if episode.has_key('title') else ''
title = ' - ' + episode['title'] if 'title' in episode else ''
title = '%sx%s%s' % (season_number, episode_number, title)
if season_number == item.filterseason or not item.filterseason:
@@ -660,7 +660,7 @@ def findvideos(item):
if 'links' in item.url:
for url in item.url['links']:
quality, language, plot, poster = set_extra_values(url, item.path)
title = item.fulltitle + (' - '+url['title'] if url.has_key('title') else '')
title = item.fulltitle + (' - '+url['title'] if 'title' in url else '')
title = set_title(title, language, quality)
itemlist.append(Item(channel=item.channel, title=format_title(typo('%s','color kod') + ' - ' + title), url=url['url'], action='play', quality=quality,
@@ -705,14 +705,14 @@ def add_channel(item):
platformtools.dialog_ok(config.get_localized_string(20000), config.get_localized_string(70682))
return
channel_to_add['channel_name'] = json_file['channel_name']
if json_file.has_key('thumbnail'): channel_to_add['thumbnail'] = json_file['thumbnail']
if json_file.has_key('fanart'): channel_to_add['fanart'] = json_file['fanart']
if 'thumbnail' in json_file: channel_to_add['thumbnail'] = json_file['thumbnail']
if 'fanart' in json_file: channel_to_add['fanart'] = json_file['fanart']
path = os.path.join(config.get_data_path(), 'community_channels.json')
community_json = open(path, "r")
community_json = jsontools.load(community_json.read())
id = 1
while community_json['channels'].has_key(str(id)):
while str(id) in community_json['channels']:
id +=1
community_json['channels'][id]=(channel_to_add)
@@ -805,14 +805,14 @@ def load_links(item, itemlist, json_data, text):
def links(item, itemlist, json_data, text):
support.log()
if json_data.has_key("movies_list"): media_type= 'movies_list'
elif json_data.has_key("tvshows_list"): media_type = 'tvshows_list'
elif json_data.has_key("episodes_list"): media_type = 'episodes_list'
elif json_data.has_key("generic_list"): media_type= 'generic_list'
if "movies_list" in json_data: media_type= 'movies_list'
elif "tvshows_list" in json_data: media_type = 'tvshows_list'
elif "episodes_list" in json_data: media_type = 'episodes_list'
elif "generic_list" in json_data: media_type= 'generic_list'
if json_data:
for media in json_data[media_type]:
if media.has_key('search'): continue
if 'search' in media: continue
if text.lower() in media['title'].lower():
quality, language, plot, poster = set_extra_values(media, item.path)
@@ -846,9 +846,9 @@ def load_links(item, itemlist, json_data, text):
if item.personal_plot != item.plot and item.personal_plot:
item.plot = '\n\n' + typo('','submenu') + '\n' + item.personal_plot + '\n' + typo('','submenu') + '\n\n' + item.plot
if json_data.has_key('menu'):
if 'menu' in json_data:
for option in json_data['menu']:
if option.has_key('link'):
if 'link' in option:
json_data = load_json(option['link'] if option['link'].startswith('http') else item.path+option['link'])
load_links(item, itemlist, json_data, text)
else:
@@ -858,7 +858,7 @@ def load_links(item, itemlist, json_data, text):
def relative(key, json, path):
if json.has_key(key):
if key in json:
if key == 'thumbnail':
ret = json[key] if ':/' in json[key] else path + json[key] if '/' in json[key] else get_thumb(json[key]) if json[key] else ''
else: