def get_episode_thumb_path(ep_obj): """ Returns the path where the episode thumbnail should be stored. Defaults to the same path as the episode file but with a .metathumb extension. ep_obj: a Episode instance for which to create the thumbnail """ if os.path.isfile(ep_obj.location): tbn_filename = replace_extension(ep_obj.location, 'metathumb') else: return None return tbn_filename
def get_episode_thumb_path(ep_obj): """ Returns the path where the episode thumbnail should be stored. Defaults to the same path as the episode file but with a .metathumb extension. ep_obj: a Episode instance for which to create the thumbnail """ if os.path.isfile(ep_obj.location): tbn_filename = replace_extension(ep_obj.location, 'metathumb') else: return None return tbn_filename
def get_episode_thumb_path(ep_obj): """ Returns a full show dir/metadata/episode.jpg path for MediaBrowser episode thumbs. ep_obj: a Episode object to get the path from """ if os.path.isfile(ep_obj.location): tbn_file_name = replace_extension(os.path.basename(ep_obj.location), u'jpg') metadata_dir_name = os.path.join(os.path.dirname(ep_obj.location), u'metadata') tbn_file_path = os.path.join(metadata_dir_name, tbn_file_name) else: return None return tbn_file_path
def get_episode_file_path(self, ep_obj): """ Returns a full show dir/metadata/episode.xml path for MediaBrowser episode metadata files ep_obj: a Episode object to get the path for """ if os.path.isfile(ep_obj.location): xml_file_name = replace_extension(os.path.basename(ep_obj.location), self._ep_nfo_extension) metadata_dir_name = os.path.join(os.path.dirname(ep_obj.location), u'metadata') xml_file_path = os.path.join(metadata_dir_name, xml_file_name) else: log.debug(u'Episode location missing: {path}', {u'path': ep_obj.location}) return '' return xml_file_path
def download_result(self, result): """Download result from provider.""" if not self.login(): return False urls, filename = self._make_url(result) for url in urls: if 'NO_DOWNLOAD_NAME' in url: continue if url.startswith('http'): self.headers.update({ 'Referer': '/'.join(url.split('/')[:3]) + '/' }) log.info('Downloading {result} from {provider} at {url}', {'result': result.name, 'provider': self.name, 'url': url}) if url.endswith(GenericProvider.TORRENT) and filename.endswith(GenericProvider.NZB): filename = replace_extension(filename, GenericProvider.TORRENT) verify = False if self.public else None if download_file(url, filename, session=self.session, headers=self.headers, hooks={'response': self.get_url_hook}, verify=verify): if self._verify_download(filename): log.info('Saved {result} to {location}', {'result': result.name, 'location': filename}) return True if urls: log.warning('Failed to download any results for {result}', {'result': result.name}) return False
def get_episode_file_path(self, ep_obj): return replace_extension(ep_obj.location, self._ep_nfo_extension)
def get_episode_thumb_path(ep_obj): return replace_extension(ep_obj.location, 'jpg')
def test_replace_extension(self): test_cases = { (None, None): None, (None, ''): None, (42, None): 42, (42, ''): 42, ('', None): '', ('', ''): '', ('.', None): '.', ('.', ''): '.', ('.', 'avi'): '.', ('filename', None): 'filename', ('filename', ''): 'filename', ('filename', 'avi'): 'filename', ('.bashrc', None): '.bashrc', ('.bashrc', ''): '.bashrc', ('.bashrc', 'avi'): '.bashrc', ('file.mkv', None): 'file.None', ('file.mkv', ''): 'file.', ('file.mkv', 'avi'): 'file.avi', ('file.name.mkv', None): 'file.name.None', ('file.name.mkv', ''): 'file.name.', ('file.name.mkv', 'avi'): 'file.name.avi', } unicode_test_cases = { (None, u''): None, (42, u''): 42, ('', u''): '', (u'', None): u'', (u'', ''): u'', (u'', u''): u'', ('.', u''): '.', ('.', u'avi'): '.', (u'.', None): u'.', (u'.', ''): u'.', (u'.', u''): u'.', (u'.', 'avi'): u'.', (u'.', u'avi'): u'.', ('filename', u''): 'filename', ('filename', u'avi'): 'filename', (u'filename', None): u'filename', (u'filename', ''): u'filename', (u'filename', u''): u'filename', (u'filename', 'avi'): u'filename', (u'filename', u'avi'): u'filename', ('.bashrc', u''): '.bashrc', ('.bashrc', u'avi'): '.bashrc', (u'.bashrc', None): u'.bashrc', (u'.bashrc', ''): u'.bashrc', (u'.bashrc', u''): u'.bashrc', (u'.bashrc', 'avi'): u'.bashrc', (u'.bashrc', u'avi'): u'.bashrc', ('file.mkv', u''): 'file.', ('file.mkv', u'avi'): 'file.avi', (u'file.mkv', None): u'file.None', (u'file.mkv', ''): u'file.', (u'file.mkv', u''): u'file.', (u'file.mkv', 'avi'): u'file.avi', (u'file.mkv', u'avi'): u'file.avi', ('file.name.mkv', u''): 'file.name.', ('file.name.mkv', u'avi'): 'file.name.avi', (u'file.name.mkv', None): u'file.name.None', (u'file.name.mkv', ''): u'file.name.', (u'file.name.mkv', u''): u'file.name.', (u'file.name.mkv', 'avi'): u'file.name.avi', (u'file.name.mkv', u'avi'): u'file.name.avi', } for tests in test_cases, unicode_test_cases: for ((filename, extension), result) in iteritems(tests): self.assertEqual(replace_extension(filename, extension), result)
def test_replace_extension(p): for ((filename, extension), result) in iteritems(p): assert sut.replace_extension(filename, extension) == result
def get_episode_thumb_path(ep_obj): return replace_extension(ep_obj.location, 'jpg')
def get_episode_file_path(self, ep_obj): return replace_extension(ep_obj.location, self._ep_nfo_extension)