def __init__( self, file_urls, file_hash_infos=None, file_save_dir=None, file_sizes=None, concurrent_num=5, ): ''' init docs ''' self.file_urls = file_urls self.file_hash_infos = file_hash_infos self.file_save_dir = file_save_dir self.file_sizes = file_sizes self.concurrent_num = concurrent_num self.greenlet_dict = {} self.fetch_file_dict = {} self.total_size = 0 self.fetch_size_greenlet_dict = {} self.fetch_size_dict = {} self.size_dict = {} self.signal = EventRegister() self.downloaded_size = 0 self.update_time = -1 self.fetch_size_pool = None self.pool = None self.stop_or_pause = False self.error_flag = False
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())