Example #1
0
    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
Example #2
0
 def human_progress(self, total, already):
     rate = "%0.2f%%" % ((already * 100) / float(total))
     hsize = afile.binary_format_bytes(already)
     return rate + u' 已处理' + hsize