Skip to content

Commit

Permalink
feat:merge pull request
Browse files Browse the repository at this point in the history
add copy and share file utils
  • Loading branch information
zbjdonald committed Oct 29, 2021
1 parent 16fd3e1 commit 719806d
Showing 1 changed file with 16 additions and 15 deletions.
31 changes: 16 additions & 15 deletions synology_drive_api/files.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import io
import os
from pathlib import Path
from time import time, sleep
from typing import Optional, Union, BinaryIO
Expand Down Expand Up @@ -31,39 +32,39 @@ def get_teamfolder_info(self):
return {}

return {folder_info['name']: folder_info['file_id'] for folder_info in resp['data']['items']}
def share_file(self, path: str):

def share_file(self, share_path: str):
"""
:param path: id:23333333333 or "'team-folders/folder2/'"
TODO share file more detail params
:param share_path: id:23333333333 or "'team-folders/folder2/'"
"""
if path.isdigit():
path = f"id:{path}"
if share_path.isdigit():
share_path = f"id:{share_path}"
api_name = 'SYNO.SynologyDrive.AdvanceSharing'
endpoint = 'entry.cgi'
params = {'api': api_name, 'version': 1, 'method': 'create', "path": path, "role": "editor"
}
params = {'api': api_name, 'version': 1, 'method': 'create', "path": share_path, "role": "editor"}
re = self.session.http_put(endpoint, params=params)

params2 = {'api': "SYNO.SynologyDrive.AdvanceSharing", 'sharing_link': re['data']['sharing_link'], "role": "editor",
'method': 'update', 'version': 1, 'due_date': 0, 'path': path}
# print(params)
params2 = {'api': "SYNO.SynologyDrive.AdvanceSharing", 'sharing_link': re['data']['sharing_link'],
"role": "editor",
'method': 'update', 'version': 1, 'due_date': 0, 'path': share_path}
self.session.http_put(endpoint, params=params2)
return re

def copy(self, source: str, dist: str) -> dict:
"""
:source : id:23333333333 or "'team-folders/folder2/'"
:dist: "'team-folders/folder2/temp.odoc'"
copy file or dir
:param source : id:23333333333 or "'team-folders/folder2/'"
:param dist: "'team-folders/folder2/temp.odoc'"
"""
endpoint = 'entry.cgi'
distpath, distname = os.path.split(dist)
api_name = "SYNO.Office.Node"
params = {'api': api_name, 'version': 2, 'method': 'copy',
'to_parent_folder': distpath, 'dry_run': 'true', 'name': distname, 'title': distname[:distname.index('.')],
'to_parent_folder': distpath, 'dry_run': 'true', 'name': distname,
'title': distname[:distname.index('.')],
'files': f'["{source}"]'}
# print(params)
return self.session.http_put(endpoint, params=params)


def list_folder(self, dir_path: str) -> dict:
"""
:param dir_path: '/team-folders/folder_name/folder_name1' or '430167496067125111'
Expand Down

0 comments on commit 719806d

Please sign in to comment.