def get_episodios(item): logger.info("pelisalacarta.channels.biblioteca get_episodios") itemlist = [] # Obtenemos los archivos de los episodios raiz, carpetas_series, ficheros = filetools.walk(item.path).next() # Crear un item en la lista para cada strm encontrado for i in ficheros: # strm if i.endswith(".strm"): season, episode = scrapertools.get_season_and_episode(i).split("x") # Si hay q filtrar por temporada, ignoramos los capitulos de otras temporadas if item.filtrar_season and int(season) != int(item.contentSeason): continue epi = Item().fromurl(filetools.read(filetools.join(raiz, i))) epi.contentChannel = item.contentChannel epi.path = filetools.join(raiz, i) epi.title = i epi.channel = "biblioteca" epi.action = "findvideos" epi.contentEpisodeNumber = episode epi.contentSeason = season # fix sobreescribe el color del texto si viene pasado en el strm epi.text_color = "" # fix para que no se ejecute el método de play para la biblioteca de Kodi epi.strm = False itemlist.append(epi) # videos elif not i.endswith(".nfo") and not i.endswith( ".json") and not i.endswith(".srt"): season, episode = scrapertools.get_season_and_episode(i).split("x") # Si hay q filtrar por temporada, ignoramos los capitulos de otras temporadas if item.filtrar_season and int(season) != int(item.contentSeason): continue epi = Item() epi.contentChannel = "local" epi.path = filetools.join(raiz, i) epi.title = i epi.channel = "biblioteca" epi.action = "play" epi.contentEpisodeNumber = episode epi.contentSeason = season itemlist.append(epi) library.set_infolabels_from_library(itemlist, tipo="Episodes") return sorted(itemlist, key=get_sort_temp_epi)
def get_episodios(item): logger.info("pelisalacarta.channels.biblioteca get_episodios") itemlist = [] # Obtenemos los archivos de los episodios raiz, carpetas_series, ficheros = filetools.walk(item.path).next() # Crear un item en la lista para cada strm encontrado for i in ficheros: # strm if i.endswith(".strm"): season, episode = scrapertools.get_season_and_episode(i).split("x") # Si hay q filtrar por temporada, ignoramos los capitulos de otras temporadas if item.filtrar_season and int(season) != int(item.contentSeason): continue epi = Item().fromurl(filetools.read(filetools.join(raiz, i))) epi.contentChannel = item.contentChannel epi.path = filetools.join(raiz, i) epi.title = i epi.channel = "biblioteca" epi.action = "findvideos" epi.contentEpisodeNumber = episode epi.contentSeason = season # fix sobreescribe el color del texto si viene pasado en el strm epi.text_color = "" # fix para que no se ejecute el método de play para la biblioteca de Kodi epi.strm = False itemlist.append(epi) # videos elif not i.endswith(".nfo") and not i.endswith(".json") and not i.endswith(".srt"): season, episode = scrapertools.get_season_and_episode(i).split("x") # Si hay q filtrar por temporada, ignoramos los capitulos de otras temporadas if item.filtrar_season and int(season) != int(item.contentSeason): continue epi = Item() epi.contentChannel = "local" epi.path = filetools.join(raiz, i) epi.title = i epi.channel = "biblioteca" epi.action = "play" epi.contentEpisodeNumber = episode epi.contentSeason = season itemlist.append(epi) library.set_infolabels_from_library(itemlist, tipo="Episodes") return sorted(itemlist, key=get_sort_temp_epi)
def peliculas(item): logger.info("pelisalacarta.channels.biblioteca peliculas") strm_path = library.MOVIES_PATH download_path = filetools.join(config.get_library_path(), "Descargas", "Cine") itemlist = [] for raiz, subcarpetas, ficheros in filetools.walk(strm_path): for f in ficheros: if f.endswith(".strm"): i = filetools.join(raiz, f) movie = Item().fromurl(filetools.read(i)) movie.contentChannel = movie.channel movie.path = i movie.title = os.path.splitext(os.path.basename(i))[0].capitalize() movie.channel = "biblioteca" movie.action = "findvideos" movie.text_color = "blue" # fix para que no se ejecute el método de play para la biblioteca de Kodi movie.strm = False itemlist.append(movie) # Obtenemos todos los videos de la biblioteca de CINE recursivamente for raiz, subcarpetas, ficheros in filetools.walk(download_path): for f in ficheros: if not f.endswith(".json") and not f.endswith(".nfo") and not f.endswith(".srt"): i = filetools.join(raiz, f) movie = Item() movie.contentChannel = "local" movie.path = i movie.title = os.path.splitext(os.path.basename(i))[0].capitalize() movie.channel = "biblioteca" movie.action = "play" movie.text_color = "green" itemlist.append(movie) library.set_infolabels_from_library(itemlist, tipo="Movies") # Agrupamos las peliculas por canales join_itemlist = [] for i in range(len(itemlist)): encontrado = False for j in range(i + 1, len(itemlist)): if "tmdb_id" in itemlist[i].infoLabels and "tmdb_id" in itemlist[j].infoLabels: if itemlist[i].infoLabels["tmdb_id"] == itemlist[j].infoLabels["tmdb_id"]: encontrado = True if "list_channels" not in itemlist[i]: list_channels = [] dict_first_channel = {"path": itemlist[i].path, "channel": itemlist[i].contentChannel} list_channels.append(dict_first_channel.copy()) itemlist[j].list_channels = list_channels dict_other_channel = {"path": itemlist[j].path, "channel": itemlist[j].contentChannel} itemlist[j].list_channels.append(dict_other_channel.copy()) itemlist[j].action = "get_canales_movies" itemlist[j].text_color = "orange" # TODO pendiente de probar if "contentTitle" in itemlist[i] and itemlist[i].contentTitle != "": itemlist[i].title = itemlist[i].contentTitle if not encontrado: join_itemlist.append(itemlist[i]) return sorted(join_itemlist, key=lambda it: it.title.lower())
def series(item): logger.info("pelisalacarta.channels.biblioteca series") strm_path = library.TVSHOWS_PATH download_path = filetools.join(config.get_library_path(), "Descargas", "Series") itemlist = [] # Obtenemos todos los strm de la biblioteca de SERIES recursivamente for raiz, subcarpetas, ficheros in filetools.walk(strm_path): for f in ficheros: if f == "tvshow.json": i = filetools.join(raiz, f) tvshow = Item().fromjson(filetools.read(i)) logger.debug(tvshow.tostring()) tvshow.contentChannel = tvshow.channel tvshow.path = os.path.dirname(i) tvshow.title = os.path.basename(os.path.dirname(i)) tvshow.channel = "biblioteca" tvshow.action = "get_temporadas" tvshow.text_color = "blue" itemlist.append(tvshow) # Obtenemos todos los videos de la biblioteca de SERIES recursivamente for raiz, subcarpetas, ficheros in filetools.walk(download_path): for f in ficheros: if f == "tvshow.json": i = filetools.join(raiz, f) tvshow = Item().fromjson(filetools.read(i)) tvshow.contentChannel = "local" tvshow.path = os.path.dirname(i) tvshow.title = os.path.basename(os.path.dirname(i)) tvshow.channel = "biblioteca" tvshow.action = "get_temporadas" tvshow.text_color = "green" itemlist.append(tvshow) library.set_infolabels_from_library(itemlist, tipo="TVShows") # Agrupamos las series por canales join_itemlist = [] for i in range(len(itemlist)): encontrado = False for j in range(i + 1, len(itemlist)): if "tmdb_id" in itemlist[i].infoLabels and "tmdb_id" in itemlist[j].infoLabels: if itemlist[i].infoLabels["tmdb_id"] == itemlist[j].infoLabels["tmdb_id"]: encontrado = True if "list_channels" not in itemlist[i]: list_channels = [] dict_first_channel = {"path": itemlist[i].path, "channel": itemlist[i].contentChannel} list_channels.append(dict_first_channel.copy()) itemlist[j].list_channels = list_channels dict_other_channel = {"path": itemlist[j].path, "channel": itemlist[j].contentChannel} itemlist[j].list_channels.append(dict_other_channel.copy()) itemlist[j].action = "get_canales_tvshow" itemlist[j].text_color = "orange" if "contentTitle" in itemlist[i] and itemlist[i].contentTitle != "": itemlist[i].title = itemlist[i].contentTitle if not encontrado: join_itemlist.append(itemlist[i]) return sorted(join_itemlist, key=lambda it: it.title.lower())
def peliculas(item): logger.info("pelisalacarta.channels.biblioteca peliculas") strm_path = library.MOVIES_PATH download_path = filetools.join(config.get_library_path(), "Descargas", "Cine") itemlist = [] for raiz, subcarpetas, ficheros in filetools.walk(strm_path): for f in ficheros: if f.endswith(".strm"): i = filetools.join(raiz, f) movie = Item().fromurl(filetools.read(i)) movie.contentChannel = movie.channel movie.path = i movie.title = os.path.splitext( os.path.basename(i))[0].capitalize() movie.channel = "biblioteca" movie.action = "findvideos" movie.text_color = "blue" # fix para que no se ejecute el método de play para la biblioteca de Kodi movie.strm = False itemlist.append(movie) # Obtenemos todos los videos de la biblioteca de CINE recursivamente for raiz, subcarpetas, ficheros in filetools.walk(download_path): for f in ficheros: if not f.endswith(".json") and not f.endswith( ".nfo") and not f.endswith(".srt"): i = filetools.join(raiz, f) movie = Item() movie.contentChannel = "local" movie.path = i movie.title = os.path.splitext( os.path.basename(i))[0].capitalize() movie.channel = "biblioteca" movie.action = "play" movie.text_color = "green" itemlist.append(movie) library.set_infolabels_from_library(itemlist, tipo='Movies') # Agrupamos las peliculas por canales join_itemlist = [] for i in range(len(itemlist)): encontrado = False for j in range(i + 1, len(itemlist)): if "tmdb_id" in itemlist[i].infoLabels and "tmdb_id" in itemlist[ j].infoLabels: if itemlist[i].infoLabels["tmdb_id"] == itemlist[j].infoLabels[ "tmdb_id"]: encontrado = True if "list_channels" not in itemlist[i]: list_channels = [] dict_first_channel = { "path": itemlist[i].path, "channel": itemlist[i].contentChannel } list_channels.append(dict_first_channel.copy()) itemlist[j].list_channels = list_channels dict_other_channel = { "path": itemlist[j].path, "channel": itemlist[j].contentChannel } itemlist[j].list_channels.append(dict_other_channel.copy()) itemlist[j].action = "get_canales_movies" itemlist[j].text_color = "orange" # TODO pendiente de probar if "contentTitle" in itemlist[i] and itemlist[i].contentTitle != "": itemlist[i].title = itemlist[i].contentTitle if not encontrado: join_itemlist.append(itemlist[i]) return sorted(join_itemlist, key=lambda it: it.title.lower())
def series(item): logger.info("pelisalacarta.channels.biblioteca series") strm_path = library.TVSHOWS_PATH download_path = filetools.join(config.get_library_path(), "Descargas", "Series") itemlist = [] # Obtenemos todos los strm de la biblioteca de SERIES recursivamente for raiz, subcarpetas, ficheros in filetools.walk(strm_path): for f in ficheros: if f == "tvshow.json": i = filetools.join(raiz, f) tvshow = Item().fromjson(filetools.read(i)) logger.debug(tvshow.tostring()) tvshow.contentChannel = tvshow.channel tvshow.path = os.path.dirname(i) tvshow.title = os.path.basename(os.path.dirname(i)) tvshow.channel = "biblioteca" tvshow.action = "get_temporadas" tvshow.text_color = "blue" itemlist.append(tvshow) # Obtenemos todos los videos de la biblioteca de SERIES recursivamente for raiz, subcarpetas, ficheros in filetools.walk(download_path): for f in ficheros: if f == "tvshow.json": i = filetools.join(raiz, f) tvshow = Item().fromjson(filetools.read(i)) tvshow.contentChannel = "local" tvshow.path = os.path.dirname(i) tvshow.title = os.path.basename(os.path.dirname(i)) tvshow.channel = "biblioteca" tvshow.action = "get_temporadas" tvshow.text_color = "green" itemlist.append(tvshow) library.set_infolabels_from_library(itemlist, tipo='TVShows') # Agrupamos las series por canales join_itemlist = [] for i in range(len(itemlist)): encontrado = False for j in range(i + 1, len(itemlist)): if "tmdb_id" in itemlist[i].infoLabels and "tmdb_id" in itemlist[ j].infoLabels: if itemlist[i].infoLabels["tmdb_id"] == itemlist[j].infoLabels[ "tmdb_id"]: encontrado = True if "list_channels" not in itemlist[i]: list_channels = [] dict_first_channel = { "path": itemlist[i].path, "channel": itemlist[i].contentChannel } list_channels.append(dict_first_channel.copy()) itemlist[j].list_channels = list_channels dict_other_channel = { "path": itemlist[j].path, "channel": itemlist[j].contentChannel } itemlist[j].list_channels.append(dict_other_channel.copy()) itemlist[j].action = "get_canales_tvshow" itemlist[j].text_color = "orange" if "contentTitle" in itemlist[i] and itemlist[i].contentTitle != "": itemlist[i].title = itemlist[i].contentTitle if not encontrado: join_itemlist.append(itemlist[i]) return sorted(join_itemlist, key=lambda it: it.title.lower())