diff options
author | Marino Faggiana <marino@marinofaggiana.com> | 2022-11-10 11:14:35 +0300 |
---|---|---|
committer | Marino Faggiana <marino@marinofaggiana.com> | 2022-11-10 11:14:35 +0300 |
commit | fe5f037a83ef8f3c3752be61bb819ca924aa43ce (patch) | |
tree | 4c5d8a610048fe49d3f2d67f2ea729ee25a36611 | |
parent | ebb51cd23821ec37554cd246f8cd4a3ae5c2519f (diff) |
fix createFolder asset
Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>
-rw-r--r-- | iOSClient/Networking/NCNetworking.swift | 30 |
1 files changed, 24 insertions, 6 deletions
diff --git a/iOSClient/Networking/NCNetworking.swift b/iOSClient/Networking/NCNetworking.swift index 61a6a9e1d..e891bd1fa 100644 --- a/iOSClient/Networking/NCNetworking.swift +++ b/iOSClient/Networking/NCNetworking.swift @@ -1001,16 +1001,34 @@ import Photos func createFolder(assets: [PHAsset], selector: String, useSubFolder: Bool, account: String, urlBase: String, userId: String) -> Bool { - let serverUrl = NCManageDatabase.shared.getAccountAutoUploadDirectory(urlBase: urlBase, userId: userId, account: account) - let fileName = NCManageDatabase.shared.getAccountAutoUploadFileName() let autoUploadPath = NCManageDatabase.shared.getAccountAutoUploadPath(urlBase: urlBase, userId: userId, account: account) - var result = createFolderWithSemaphore(fileName: fileName, serverUrl: serverUrl, account: account, urlBase: urlBase, userId: userId) + let serverUrlBase = NCManageDatabase.shared.getAccountAutoUploadDirectory(urlBase: urlBase, userId: userId, account: account) + let fileNameBase = NCManageDatabase.shared.getAccountAutoUploadFileName() + + func createFolder(fileName: String, serverUrl: String) -> Bool { + var result: Bool = false + let semaphore = DispatchSemaphore(value: 0) + NCNetworking.shared.createFolder(fileName: fileName, serverUrl: serverUrl, account: account, urlBase: urlBase, userId: userId, overwrite: true) { error in + if error == .success { result = true } + semaphore.signal() + } + semaphore.wait() + return result + } + + var result = createFolder(fileName: fileNameBase, serverUrl: serverUrlBase) if useSubFolder && result { for dateSubFolder in createNameSubFolder(assets: assets) { - let fileName = (dateSubFolder as NSString).lastPathComponent - let serverUrl = ((autoUploadPath + "/" + dateSubFolder) as NSString).deletingLastPathComponent - result = createFolderWithSemaphore(fileName: fileName, serverUrl: serverUrl, account: account, urlBase: urlBase, userId: userId) + let yearMonth = dateSubFolder.split(separator: "/") + guard let year = yearMonth.first else { break } + guard let month = yearMonth.last else { break } + let serverUrlYear = autoUploadPath + let serverUrlMonth = autoUploadPath + "/" + year + result = createFolder(fileName: String(year), serverUrl: serverUrlYear) + if result { + result = createFolder(fileName: String(month), serverUrl: serverUrlMonth) + } if !result { break } } } |