def filepath(self, context, request_data): """ Get the full file path to save the downloaded file to Args: context(tumdlr.main.Context): CLI request context request_data(Optional[dict]): Additional arguments to send with the download request Returns: Path """ assert isinstance(self.container, TumblrPhotoSet) filepath = super().filepath(context, request_data) request_data['progress_data']['Caption'] = self.container.title # Are we categorizing by photosets? if self.page_no and context.config['Categorization']['Photosets']: self.log.debug('Categorizing by photoset: %s', self.container.id) filepath = filepath.joinpath(sanitize_filename(str(self.container.id))) # Prepend the page number for photosets if self.page_no: filepath = filepath.joinpath(sanitize_filename('p{pn}_{pt}'.format(pn=self.page_no, pt=self.container.title))) request_data['progress_data']['Photoset Page'] = '{cur} / {tot}'\ .format(cur=self.page_no, tot=len(self.container.files)) else: filepath = filepath.joinpath(sanitize_filename(self.container.title)) # Work out the file extension and return return str(filepath) + os.path.splitext(self.url.as_string())[1]
def filepath(self, context, request_data): """ Get the full file path to save the video to Args: context(tumdlr.main.Context): CLI request context request_data(Optional[dict]): Additional arguments to send with the download request Returns: Path """ assert isinstance(self.container, TumblrVideoPost) filepath = super().filepath(context, request_data) minutes = int(self.container.duration / 60) seconds = self.container.duration % 60 duration = '{} minutes {} seconds'.format(minutes, seconds) if minutes else '{} seconds'.format(seconds) if self.container.title: request_data['progress_data']['Title'] = self.container.title request_data['progress_data']['Description'] = self.container.description request_data['progress_data']['Duration'] = duration request_data['progress_data']['Format'] = self.container.format filepath = filepath.joinpath(sanitize_filename( self.container.description or md5(self.url.as_string().encode('utf-8')).hexdigest()) ) # Work out the file extension and return return '{}.{}'.format(str(filepath), self._data.get('ext', 'mp4'))
def filepath(self, context, request_data): """ Args: context(tumdlr.main.Context): CLI request context request_data(Optional[dict]): Additional arguments to send with the download request Returns: Path """ # Construct the save basedir basedir = Path(context.config['Tumdlr']['SavePath']) # Are we categorizing by user? if context.config['Categorization']['User']: self.log.debug('Categorizing by user: %s', self.container.blog.name) basedir = basedir.joinpath(sanitize_filename(self.container.blog.name)) # Are we categorizing by post type? if context.config['Categorization']['PostType']: self.log.debug('Categorizing by type: %s', self.CATEGORY) basedir = basedir.joinpath(self.CATEGORY) self.log.debug('Basedir constructed: %s', basedir) return basedir