def __init__(self): """ Initializes instance. """ SubtitleProvider.__init__( self, "OpenSubtitles", "http://www.opensubtitles.org", "os" ) XMLRPCServer.__init__(self, OpenSubtitlesServer.XMLRPC_URI) self._status_regexp = re.compile(OpenSubtitlesServer.STATUS_REGEXP) self._series_regexp = re.compile(OpenSubtitlesServer.SERIES_REGEXP)
def execute(args): """ Executes SubLime with given arguments. """ videos = [] selected_languages = [ babelfish.Language(selected_lang) for selected_lang in args.selected_languages ] # List of filenames directly given by user if args.video_files: videos = [ VideoFactory.make_from_filename(video_filename) for video_filename in args.video_files ] # Or list of filenames by walking through directories elif args.directories: for movie_dir in args.directories: for root, _, files in os.walk(movie_dir): for name in files: video_filename = os.path.join(root, name) video = VideoFactory.make_from_filename(video_filename) if video: videos.append(video) # Informs user that there is already existing subtitles for video in videos: for selected_lang in selected_languages: if video.has_subtitle(selected_lang): video_type = video.__class__.__name__ video_name = os.path.basename(video.filename) if not args.force: LOG.warning( "{} named {} already has a subtitle " "for {} and nothing will happen for it! " "Use option '-f --force' to replace.".format( video_type, video_name, selected_lang.name)) else: LOG.info( 'Replacing {} subtitle for {} named {}.'.format( selected_lang.name, video_type, video_name)) video.languages_to_download.append(selected_lang) else: video.languages_to_download.append(selected_lang) # Search subtitles for videos for sub_server in SubtitleProvider.get_providers(): sub_server.connect() sub_server.download_subtitles( videos, selected_languages, args.rename, args.rename_pattern, args.underscore) sub_server.disconnect()
def test_get_providers(self): """ Tests getting all Subtitle Providers. """ all_providers = SubtitleProvider.get_providers() open_subtitle_provider = SubtitleProvider( "OpenSubtitles", "http://www.opensubtitles.org", "os") self.assertIn(open_subtitle_provider, all_providers)