def save_subs(tv_episode, video, found_subtitles, video_path=None): """Save subtitles. :param tv_episode: the episode to download subtitles :type tv_episode: sickbeard.tv.Episode :param video: :type video: subliminal.Video :param found_subtitles: :type found_subtitles: list of subliminal.Subtitle :param video_path: the video path. If none, the episode location will be used :type video_path: str :return: a sorted list of the opensubtitles codes for the downloaded subtitles :rtype: list of str """ video_path = video_path or tv_episode.location show_name = tv_episode.series.name season = tv_episode.season episode = tv_episode.episode episode_name = tv_episode.name show_indexerid = tv_episode.series.indexerid subtitles_dir = get_subtitles_dir(video_path) saved_subtitles = save_subtitles(video, found_subtitles, directory=_encode(subtitles_dir), single=not app.SUBTITLES_MULTI) for subtitle in saved_subtitles: logger.info(u'Found subtitle for %s in %s provider with language %s', os.path.basename(video_path), subtitle.provider_name, subtitle.language.opensubtitles) subtitle_path = compute_subtitle_path(subtitle, video_path, subtitles_dir) helpers.chmod_as_parent(subtitle_path) helpers.fix_set_group_id(subtitle_path) if app.SUBTITLES_EXTRA_SCRIPTS and is_media_file(video_path): subtitle_path = compute_subtitle_path(subtitle, video_path, subtitles_dir) run_subs_extra_scripts(video_path=video_path, subtitle_path=subtitle_path, subtitle_language=subtitle.language, show_name=show_name, season=season, episode=episode, episode_name=episode_name, show_indexerid=show_indexerid) if app.SUBTITLES_HISTORY: logger.debug( u'Logging to history downloaded subtitle from provider %s and language %s', subtitle.provider_name, subtitle.language.opensubtitles) history.log_subtitle(tv_episode, subtitle) # Refresh the subtitles property if tv_episode.location: tv_episode.refresh_subtitles() return sorted( {subtitle.language.opensubtitles for subtitle in saved_subtitles})
def save_subs(tv_episode, video, found_subtitles, video_path=None): """Save subtitles. :param tv_episode: the episode to download subtitles :type tv_episode: sickbeard.tv.Episode :param video: :type video: subliminal.Video :param found_subtitles: :type found_subtitles: list of subliminal.Subtitle :param video_path: the video path. If none, the episode location will be used :type video_path: str :return: a sorted list of the opensubtitles codes for the downloaded subtitles :rtype: list of str """ video_path = video_path or tv_episode.location show_name = tv_episode.series.name season = tv_episode.season episode = tv_episode.episode episode_name = tv_episode.name show_indexerid = tv_episode.series.indexerid subtitles_dir = get_subtitles_dir(video_path) saved_subtitles = save_subtitles(video, found_subtitles, directory=subtitles_dir, single=not app.SUBTITLES_MULTI, encoding='utf-8') for subtitle in saved_subtitles: logger.info(u'Found subtitle for %s in %s provider with language %s', os.path.basename(video_path), subtitle.provider_name, subtitle.language.opensubtitles) subtitle_path = compute_subtitle_path(subtitle, video_path, subtitles_dir) helpers.chmod_as_parent(subtitle_path) helpers.fix_set_group_id(subtitle_path) if app.SUBTITLES_EXTRA_SCRIPTS and is_media_file(video_path): subtitle_path = compute_subtitle_path(subtitle, video_path, subtitles_dir) run_subs_extra_scripts(video_path=video_path, subtitle_path=subtitle_path, subtitle_language=subtitle.language, show_name=show_name, season=season, episode=episode, episode_name=episode_name, show_indexerid=show_indexerid) if app.SUBTITLES_HISTORY: logger.debug(u'Logging to history downloaded subtitle from provider %s and language %s', subtitle.provider_name, subtitle.language.opensubtitles) history.log_subtitle(tv_episode, subtitle) # Refresh the subtitles property if tv_episode.location: tv_episode.refresh_subtitles() return sorted({subtitle.language.opensubtitles for subtitle in saved_subtitles})