def add(self, action, servkey, remote, local, size, state=state_init, callback=None): self._nodes_lock.acquire() key = self._getTaskKey(action, servkey, remote, local) if key in self._task_hash: wx.LogWarning(u'任务不能填加:重复任务:%s' % remote) self._nodes_lock.release() return None else: self._task_hash[key] = 1 taskid = self._cur_id self._cur_id += 1 self._nodes_lock.release() node = [None for x in range(col_attr_length)] node[col_attr_show] = True node[col_attr_action] = action node[col_attr_serv] = servkey node[col_attr_remote] = remote node[col_attr_local] = local node[col_attr_state] = state node[col_attr_taskid] = taskid node[col_attr_size] = size node[col_attr_callback] = callback node[col_action] = type_phrase[type_upload] node[col_size] = afile.binary_format_bytes(node[col_attr_size]) node[col_serv] = node[col_attr_serv] node[col_local_dir] = os.path.dirname(node[col_attr_local]) node[col_local_name] = os.path.basename(node[col_attr_local]) node[col_remote_dir] = os.path.dirname(node[col_attr_remote]) node[col_remote_name] = os.path.basename(node[col_attr_remote]) if node[col_progress] is None: node[col_progress] = '' self._node[taskid] = node self._sorted_node.append(node) return taskid
def human_progress(self, total, already): rate = "%0.2f%%" % ((already * 100) / float(total)) hsize = afile.binary_format_bytes(already) return rate + u' 已处理' + hsize