def list_directories(self, subdir): url = '/api2/repos/%s/dir/' % self.id query = '?p=%s&t=d' % subdir resp = self.client.get(url + query) dir_id = resp.headers['oid'] dir_json = resp.json() dir = SeafDir(self, subdir, dir_id) dir.load_entries(dir_json) return dir
def get_dir(self, path): """Get the dir object located in `path` in this repo. Return a :class:`SeafDir` object """ assert path.startswith('/') url = '/api2/repos/%s/dir/' % self.id query = '?' + urlencode(dict(p=path)) resp = self.client.get(url + query) dir_id = resp.headers['oid'] dir_json = resp.json() dir = SeafDir(self, path, dir_id) dir.load_entries(dir_json) return dir
def list_shared_folders(self,shared_email=None): ''' List Shared Folders :param shared_email [string|None]According to the email to filter on the Shared folder. if None then no filter. :return: [list(SeafDir)] ''' repos_json = self.client.get('/api/v2.1/shared-folders/').json() shared_folders = [] for t_folder in repos_json: seaf_dir_obj = SeafDir.create_from_shared_folder(t_folder,self.client) t_user_email = t_folder.get("user_email",None) if shared_email: if t_user_email == shared_email: shared_folders.append(seaf_dir_obj) else: shared_folders.append(seaf_dir_obj) return shared_folders