Example #1
0
 def check(self):
     """"""
     try:
         module = importlib.import_module("plugins.{0}.link_checker".format(self.host.replace('.', '_')))
         self.link_status, file_name, self.size, self.status_msg = module.LinkChecker().check(self.link)
         self.file_name = utils.normalize_file_name(file_name)
     except ImportError as err:
         logger.debug(err)
         self.file_name = utils.normalize_file_name(utils.get_filename_from_url(self.link)) or cons.UNKNOWN #may be an empty str
         self.link_status = cons.LINK_ERROR
     except Exception as err:
         logger.exception(err)
         self.link_status = cons.LINK_ERROR
Example #2
0
 def __set_filename_n_size(self):
     info = self.source.info()
     old_file_name = self.file_name
     if self.save_as:
         self.file_name = utils.normalize_file_name(self.save_as)
     else:
         self.file_name = self.__get_filename_from_source(info)
     if self.file_exists and old_file_name != self.file_name:
         #do not rename the file.
         raise StatusError("Cant resume, file name has change. Please retry.")
     self.size_file = self.get_content_size(info)
Example #3
0
 def __get_filename_from_source(self, info):
     """"""
     file_name = None
     if info.getheader("Content-Disposition", None): #Content-Disposition: Attachment; filename=name.ext
         disposition = info.getheader("Content-Disposition") #get file name
         if 'filename="' in disposition:
             file_name = disposition.split('filename=')[-1].split('"')[1]
         elif "filename='" in disposition:
             file_name = disposition.split('filename=')[-1].split("'")[1]
         elif 'filename=' in disposition:
             file_name = disposition.split('filename=')[-1]
         elif 'filename*=' in disposition:
             file_name = disposition.split("'")[-1]
     if not file_name: #may be an empty string or None
         file_name = utils.get_filename_from_url(self.source.url)
     elif file_name.startswith('=?UTF-8?B?'): #base64
         file_name = file_name[10:].decode('base64')
     file_name = utils.normalize_file_name(file_name)
     return file_name