Example #1
0
class FetchFile(object):
    '''
    class docs
    '''
    def __init__(
            self,
            file_url,
            file_save_dir=None,
            file_save_name=None,
            file_hash_info=None,
            concurrent_num=5,
            buffer_size=8192,  # in byte
            min_split_size=20480,  # in byte
            file_size=None):
        '''
        init docs
        '''
        self.file_url = file_url

        if file_save_dir == None:
            try:
                self.file_save_dir = commands.getoutput(
                    "xdg-user-dir DOWNLOAD")
            except:
                self.file_save_dir = "/tmp"
        else:
            self.file_save_dir = file_save_dir

        if file_save_name == None:
            self.file_save_name = os.path.split(file_url)[1]
        else:
            self.file_save_name = file_save_name

        self.file_save_path = os.path.join(self.file_save_dir,
                                           self.file_save_name)

        self.temp_save_dir = os.path.join(self.file_save_dir,
                                          "%s_tmp" % self.file_save_name)
        self.temp_save_path = os.path.join(self.temp_save_dir,
                                           self.file_save_name)

        self.concurrent_num = concurrent_num
        self.file_hash_info = file_hash_info
        self.buffer_size = buffer_size
        self.min_split_size = min_split_size
        self.fetch = self.get_fetch()

        self.update_greenlet_callbacks = []

        self.signal = EventRegister()

        self.stop_flag = False
        self.pause_flag = False
        self.file_size = file_size

        self.greenlet_dict = {}
        self.pool = Pool(self.concurrent_num)

        self.error_flag = False
        self.signal.register_event("error", lambda e: self.stop())

    def init_file_size(self):
        try:
            self.file_size = self.fetch.get_file_size()
        except Exception, e:
            self.error_flag = True
            self.file_size = 0

            self.signal.emit("error", str(e))
Example #2
0
class FetchFile(object):
    '''
    class docs
    '''
	
    def __init__(self,
                 file_url,
                 file_save_dir=None,
                 file_save_name=None,
                 file_hash_info=None,
                 concurrent_num=5,
                 buffer_size=8192, # in byte
                 min_split_size=20480, # in byte
                 file_size=None
                 ):
        '''
        init docs
        '''
        self.file_url = file_url
        
        if file_save_dir == None:
            try:
                self.file_save_dir = commands.getoutput("xdg-user-dir DOWNLOAD")
            except:
                self.file_save_dir = "/tmp"
        else:
            self.file_save_dir = file_save_dir
            
        if file_save_name == None:
            self.file_save_name = os.path.split(file_url)[1]
        else:
            self.file_save_name = file_save_name
            
        self.file_save_path = os.path.join(self.file_save_dir, self.file_save_name)    
            
        self.temp_save_dir = os.path.join(self.file_save_dir, "%s_tmp" % self.file_save_name)
        self.temp_save_path = os.path.join(self.temp_save_dir, self.file_save_name)    
        
        self.concurrent_num = concurrent_num
        self.file_hash_info = file_hash_info
        self.buffer_size = buffer_size
        self.min_split_size = min_split_size
        self.fetch = self.get_fetch()
        
        self.update_greenlet_callbacks = []
        
        self.signal = EventRegister()
        
        self.stop_flag = False
        self.pause_flag = False
        self.file_size = file_size
        
        self.greenlet_dict = {}
        self.pool = Pool(self.concurrent_num)
        
        
        self.error_flag = False    
        self.signal.register_event("error", lambda e: self.stop())
        
    def init_file_size(self):    
        try:
            self.file_size = self.fetch.get_file_size()
        except Exception, e:
            self.error_flag = True
            self.file_size = 0
        
            self.signal.emit("error", str(e))