def _process_move_from_event(self, drive, local_parent_path, ent_name, is_folder):
# First try finding the item in database.
rel_parent_path = _get_rel_parent_path(drive, local_parent_path)
item_store = self._items_store_man.get_item_storage(drive)
q = item_store.get_items_by_id(local_parent_path=local_parent_path, item_name=ent_name)
try:
item_id, item = q.popitem()
if item.is_folder != is_folder:
raise KeyError()
except KeyError:
# If the record does not match, sync the parent after some time.
threading.Timer(self.SYNC_PARENT_DELAY_SEC, self._sync_parent_dir_of, (drive, rel_parent_path))
return
task = delete_task.DeleteItemTask(parent_task=self._task_bases[drive], rel_parent_path=rel_parent_path,
item_name=ent_name, is_folder=is_folder)
task.item_obj = item
self._delayed_tasks.add(task)
threading.Timer(self.MOVE_DETECTION_DELAY_SEC, self._enqueue_delayed_task, task)
评论列表
文章目录