diff --git a/seafileapi/client.py b/seafileapi/client.py index c77743b..9c245fd 100644 --- a/seafileapi/client.py +++ b/seafileapi/client.py @@ -84,7 +84,7 @@ def delete(self, *args, **kwargs): return self._send_request('DELETE', *args, **kwargs) def _send_request(self, method, url, *args, **kwargs): - if not url.startswith('http') or url.startswith('https'): + if not (url.startswith('http') or url.startswith('https')): url = urljoin(self.server, url) headers = kwargs.get('headers', {}) diff --git a/seafileapi/files.py b/seafileapi/files.py index 3348342..bcfba74 100644 --- a/seafileapi/files.py +++ b/seafileapi/files.py @@ -53,11 +53,19 @@ def delete(self): resp = self.client.delete(url) return resp - def rename(self): + def rename(self, newname): """ + :param newname: """ - pass + url = '/api2/repos/{}/file/{}'.format(self.repo.id, querystr(p=self.path)) + postdata = { + 'operation': 'rename', + 'newname': newname + } + resp = self.client.post(url, data=postdata) + return resp + def copyTo(self, dst_dir, dst_repo=None): """ diff --git a/seafileapi/repo.py b/seafileapi/repo.py index a1e0d16..3b3f6d2 100644 --- a/seafileapi/repo.py +++ b/seafileapi/repo.py @@ -35,7 +35,7 @@ def from_json(cls, client, repo_json): """ repo_id = repo_json['id'] repo_name = repo_json['name'] - repo_desc = repo_json['desc'] + repo_desc = repo_json.get('desc', '') encrypted = repo_json['encrypted'] perm = repo_json['permission'] owner = repo_json['owner']