From e1d980e8a9499a88de085cea1d6ea63022e08c43 Mon Sep 17 00:00:00 2001 From: DanielArabadjiFC Date: Thu, 20 Feb 2025 15:41:42 +0000 Subject: [PATCH 1/5] Update fcserver.py Added additional flags --- filecloudapi/fcserver.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/filecloudapi/fcserver.py b/filecloudapi/fcserver.py index 986f191..d845852 100644 --- a/filecloudapi/fcserver.py +++ b/filecloudapi/fcserver.py @@ -641,6 +641,8 @@ def upload_file( localpath: pathlib.Path, serverpath: str, datemodified: datetime.datetime = datetime.datetime.now(), + nofileoverwrite: bool = False, + iflastmodified: Optional[datetime.datetime] = None, adminproxyuserid: Optional[str] = None, progress: Optional[Progress] = None, ) -> None: @@ -652,6 +654,8 @@ def upload_file( uploadf, serverpath, datemodified, + nofileoverwrite, + iflastmodified, adminproxyuserid=adminproxyuserid, progress=progress, ) From e4488533ca2b0d1d081a9864e7f054787800f6f9 Mon Sep 17 00:00:00 2001 From: DanielArabadjiFC Date: Thu, 20 Feb 2025 16:40:45 +0000 Subject: [PATCH 2/5] Update fcserver.py added the flags to upload_str and upload_bytes --- filecloudapi/fcserver.py | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/filecloudapi/fcserver.py b/filecloudapi/fcserver.py index d845852..a11d7fb 100644 --- a/filecloudapi/fcserver.py +++ b/filecloudapi/fcserver.py @@ -615,25 +615,34 @@ def upload_bytes( data: bytes, serverpath: str, datemodified: datetime.datetime = datetime.datetime.now(), + nofileoverwrite: Optional[bool] = False, + iflastmodified: Optional[datetime.datetime] = None, progress: Optional[Progress] = None, ) -> None: """ Upload bytes 'data' to server at 'serverpath'. """ - self.upload(BufferedReader(BytesIO(data)), serverpath, datemodified, progress=progress) # type: ignore + self.upload(BufferedReader(BytesIO(data)), serverpath, datemodified, nofileoverwrite=nofileoverwrite, iflastmodified=iflastmodified, progress=progress) # type: ignore def upload_str( self, data: str, serverpath: str, datemodified: datetime.datetime = datetime.datetime.now(), + nofileoverwrite: Optional[bool] = False, + iflastmodified: Optional[datetime.datetime] = None, progress: Optional[Progress] = None, ) -> None: """ Upload str 'data' UTF-8 encoded to server at 'serverpath'. """ self.upload_bytes( - data.encode("utf-8"), serverpath, datemodified, progress=progress + data.encode("utf-8"), + serverpath, + datemodified, + nofileoverwrite=nofileoverwrite, + iflastmodified=iflastmodified, + progress=progress, ) def upload_file( @@ -641,7 +650,7 @@ def upload_file( localpath: pathlib.Path, serverpath: str, datemodified: datetime.datetime = datetime.datetime.now(), - nofileoverwrite: bool = False, + nofileoverwrite: Optional[bool] = False, iflastmodified: Optional[datetime.datetime] = None, adminproxyuserid: Optional[str] = None, progress: Optional[Progress] = None, @@ -675,7 +684,7 @@ def upload( uploadf: BufferedReader, serverpath: str, datemodified: datetime.datetime, - nofileoverwrite: bool = False, + nofileoverwrite: Optional[bool] = False, iflastmodified: Optional[datetime.datetime] = None, adminproxyuserid: Optional[str] = None, progress: Optional[Progress] = None, From 50460e2ccb1dc46a63ba3dccc8bf910770519d47 Mon Sep 17 00:00:00 2001 From: DanielArabadjiFC Date: Thu, 20 Feb 2025 16:51:58 +0000 Subject: [PATCH 3/5] Update pyproject.toml increment version --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 7d81840..8fe56b3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,7 +1,7 @@ [tool.poetry] name = "filecloudapi-python" -version = "0.3.0" +version = "0.4.0" description = "A Python library to connect to a Filecloud server" packages = [{ include = "filecloudapi" }] From 2eab4c395ebbfbe91cc5b81b1f9e4a90d470580c Mon Sep 17 00:00:00 2001 From: DanielArabadjiFC Date: Fri, 21 Feb 2025 15:22:26 +0000 Subject: [PATCH 4/5] Update fcserver.py check for iflastmodified flag --- filecloudapi/fcserver.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/filecloudapi/fcserver.py b/filecloudapi/fcserver.py index a11d7fb..a4096f6 100644 --- a/filecloudapi/fcserver.py +++ b/filecloudapi/fcserver.py @@ -815,10 +815,11 @@ def close(self): "date": self._serverdatetime(datemodified), "adminproxyuserid": adminproxyuserid, "nofileoverwrite": nofileoverwrite, - "iflastmodified": ( - self._serverdatetime(iflastmodified) if iflastmodified else None - ), } + + if iflastmodified is not None: + params["iflastmodified"] = self._serverdatetime(iflastmodified) + params_str = urlencode(params) if params_str.find("%2FSHARED%2F%21"): @@ -860,11 +861,11 @@ def close(self): "date": self._serverdatetime(datemodified), "adminproxyuserid": adminproxyuserid, "nofileoverwrite": nofileoverwrite, - "iflastmodified": ( - self._serverdatetime(iflastmodified) if iflastmodified else None - ), } + if iflastmodified is not None: + params["iflastmodified"] = self._serverdatetime(iflastmodified) + if data_size is not None: params["filesize"] = data_size From 4fd16e7bac07c8b6d63ebe312a622e21a4d4f05c Mon Sep 17 00:00:00 2001 From: DanielArabadjiFC Date: Fri, 21 Feb 2025 17:06:12 +0000 Subject: [PATCH 5/5] Update fcserver.py check for nofileoverwrite flag --- filecloudapi/fcserver.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/filecloudapi/fcserver.py b/filecloudapi/fcserver.py index a4096f6..dd877e6 100644 --- a/filecloudapi/fcserver.py +++ b/filecloudapi/fcserver.py @@ -814,9 +814,11 @@ def close(self): "filesize": 0, "date": self._serverdatetime(datemodified), "adminproxyuserid": adminproxyuserid, - "nofileoverwrite": nofileoverwrite, } + if nofileoverwrite is not None: + params["nofileoverwrite"] = "true" if nofileoverwrite else "false" + if iflastmodified is not None: params["iflastmodified"] = self._serverdatetime(iflastmodified) @@ -860,9 +862,11 @@ def close(self): "filename": name, "date": self._serverdatetime(datemodified), "adminproxyuserid": adminproxyuserid, - "nofileoverwrite": nofileoverwrite, } + if nofileoverwrite is not None: + params["nofileoverwrite"] = "true" if nofileoverwrite else "false" + if iflastmodified is not None: params["iflastmodified"] = self._serverdatetime(iflastmodified)