]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>| ([^<]+)Genres
(.*?)')
- matches = match(data, patronBlock=r'Genres
(.*?)', patron=r' value="([^"]+)"\s*>\s*Countries
(.*?)Less-Common')
- matches = scrapertools.find_multiple_matches(data, paronBlock=r'Countries
(.*?)Less-Common', patron=r' value="([^"]+)"\s*>([^<]+)<').matches
- if matches:
- list_controls.append({'id': 'pais', 'label': config.get_localized_string(70466), 'enabled': True, 'type': 'list', 'default': -1, 'visible': True})
- list_controls[-1]['lvalues'] = []
- list_controls[-1]['lvalues'].append(config.get_localized_string(70450))
- valores['pais'] = []
- valores['pais'].append('')
- for valor, titulo in matches:
- list_controls[-1]['lvalues'].insert(0, titulo)
- valores['pais'].insert(0, valor)
-
- except:
- pass
-
- list_controls.append({'id': 'orden', 'label': config.get_localized_string(70455), 'enabled': True, 'type': 'list', 'default': -1, 'visible': True})
- orden = [config.get_localized_string(70456), config.get_localized_string(70457), config.get_localized_string(70458), config.get_localized_string(70459), config.get_localized_string(70460), config.get_localized_string(70461),
- config.get_localized_string(70462), config.get_localized_string(70463)]
-
- orden_imdb = ['moviemeter,asc', 'moviemeter,desc', 'year,desc', 'year,asc', 'user_rating,desc', 'user_rating,asc', 'alpha,asc', 'alpha,desc']
- valores['orden'] = []
- list_controls[-1]['lvalues'] = []
- for i, tipo_orden in enumerate(orden):
- list_controls[-1]['lvalues'].insert(0, tipo_orden)
- valores['orden'].insert(0, orden_imdb[i])
-
- list_controls.append({'id': 'save', 'label': config.get_localized_string(70464), 'enabled': True, 'type': 'bool', 'default': False, 'visible': True})
-
- item.valores = valores
- return platformtools.show_channel_settings(list_controls=list_controls, dict_values=dict_values, caption=config.get_localized_string(70320), item=item, callback='filtered_imdb')
-
-
-def filtered_imdb(item, values):
- values_copy = values.copy()
- # Save the filter to be the one loaded by default
- if "save" in values and values["save"]:
- values_copy.pop("save")
- config.set_setting("default_filter_imdb_" + item.args, values_copy, item.channel)
-
- yeard = item.valores["years"][values["yearsdesde"]]
- yearh = item.valores["years"][values["yearshasta"]]
- orden = item.valores["orden"][values["orden"]]
- # pais = item.valores["pais"][values["pais"]]
-
- genre_ids = []
- for v in values:
- if "genre" in v:
- if values[v]:
- genre_ids.append(v.replace('genre', ''))
- genre_ids = ",".join(genre_ids)
- try:
- votos = int(values["votos"])
- except:
- votos = ""
-
- item.url = 'http://www.imdb.com/search/title?num_votes=%s,&genres=%s&release_date=%s,%s&sort=%s&title=%s&title_type=' % (str(votos), genre_ids, yeard, yearh, orden, values["title"])
- if item.contentType == "movie": item.url += "feature,tv_movie"
- else: item.url += "tv_series,tv_special,mini_series"
-
- item.action = "list_imdb"
- return list_imdb(item)
-
-
-def indices_imdb(item):
- # Imdb indices by year and gender
- itemlist = []
- from datetime import datetime
- if config.get_localized_string(70032) in item.title:
- genres_translate = {'Action': config.get_localized_string(70394), 'Adventure': config.get_localized_string(60267), 'Animation': config.get_localized_string(60268), 'Biography': config.get_localized_string(70403), 'Thriller': config.get_localized_string(70410),
- 'Comedy': config.get_localized_string(60270), 'Crime': config.get_localized_string(60271), 'Documentary': config.get_localized_string(70396), 'Family': config.get_localized_string(70399), 'Romance': config.get_localized_string(70409),
- 'Fantasy': config.get_localized_string(60274), 'Film-Noir': config.get_localized_string(70400), 'Game-Show': config.get_localized_string(70401), 'Drama': config.get_localized_string(70412), 'Western': config.get_localized_string(70411),
- 'History': config.get_localized_string(70405), 'Horror': config.get_localized_string(70013), 'Music': config.get_localized_string(70404), 'Musical': config.get_localized_string(70408),'Mystery': config.get_localized_string(70402),
- 'News': config.get_localized_string(60279), 'Reality-TV': config.get_localized_string(70406), 'Sci-Fi': config.get_localized_string(70397), 'Sport': config.get_localized_string(70395),
- 'Talk-Show': config.get_localized_string(70398), 'War': config.get_localized_string(70407)}
- data = match("http://www.imdb.com/search/title", cookies=False).data
- # bloque = scrapertools.find_single_match(data, 'Genres
(.*?)')
- matches = match(data, patronBlock=r'Genres
(.*?)', patron=r' value="([^"]+)"\s*>\s*
", "\n")
-# plot = scrapertools.decodeHtmlentities(plot).replace(" (FILMAFFINITY)", "")
-# if plot and (item.infoLabels['plot'] and item.infoLabels['plot'] != plot):
-# item.infoLabels['plot'] += " (TMDB)\n" + plot + " (FILMAFFINITY)"
-# elif plot and not item.infoLabels['plot']:
-# item.infoLabels['plot'] = plot
-
-# # It is searched and filled with the filmaffinity info to differentiate it from tmdb
-# if not item.infoLabels['duration']:
-# duration = scrapertools.find_single_match(data, '
.*?(\d{4}|-).*?.*?>([^<]+)').match.lower()
- item.type = args
- if args == "movie" or args == "special":
- item.args = "movie"
- item.contentType = "movie"
- else:
- item.args = "tv"
- item.contentType = "tvshow"
-
- if item.infoLabels['rating'] != "0.0":
- rating = item.infoLabels['rating']
- else:
- rating = match(data, patron=r'(\d.\d+)').match
-
- if not item.infoLabels["year"]:
- item.infoLabels["year"] = match(data, patron=r'>Aired:.*?(\d{4})').match
-
- eng_title = match(data, patron=r'English: ([^<]+)
", "\n").replace("", "[I]").replace("", "[/I]")
- plot = decodeHtmlentities(plot)
- if plot and (item.infoLabels['plot'] and item.infoLabels['plot'] != plot): item.infoLabels['plot'] += " (TMDB)\n\n" + plot + " (MYANIMELIST)"
- elif plot and not item.infoLabels['plot']: item.infoLabels['plot'] = plot
-
- if not item.infoLabels['duration']:
- try:
- horas, min1, min2 = match(data, patron=r'Duration:\s*(?:(\d+) hr\. (\d+) min|(\d+) min)').match
- if horas: horas = int(horas) * 360
- else: horas = 0
- if not min1: min1 = min2
- item.infoLabels['duration'] = horas + (int(min1) * 60)
- except:
- pass
-
- # Myanimelist info overwrites tmdb info
- generos = match(data, patron=r'Genres:(.*?)" in data and config.is_xbmc():
- itemlist.append(item.clone(title=config.get_localized_string(70321) % score, action="menu_mal", contentTitle=title_mal))
- elif item.login and config.is_xbmc():
- status = {'1': config.get_localized_string(70479), '2': config.get_localized_string(70480), '3': config.get_localized_string(70384), '4': config.get_localized_string(70385), '6': config.get_localized_string(70481)}
- estado = match(data, patron=r'myinfo_updateInfo".*?option selected="selected" value="(\d+)"').match
- try:
- estado = status[estado]
- itemlist.append(item.clone(title=config.get_localized_string(70322) % (estado, score), action="menu_mal", contentTitle=title_mal))
- except:
- pass
-
- token_auth = config.get_setting("token_trakt", "trakt")
- if token_auth and ob_tmdb.result:
- itemlist.append(item.clone(title=config.get_localized_string(70323), action="menu_trakt", thumbnail=thumb('setting')))
-
- # Prequels, sequels and alternative series are listed
- prequel = match(data, patron=r'Prequel: