From e357c101c5f3ffb8adff39d6316517c72e3ee353 Mon Sep 17 00:00:00 2001 From: Marino Faggiana Date: Sat, 19 Jul 2025 10:03:51 +0200 Subject: [PATCH 1/4] cod Signed-off-by: Marino Faggiana --- Sources/NextcloudKit/NKSession.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Sources/NextcloudKit/NKSession.swift b/Sources/NextcloudKit/NKSession.swift index 33ea57c9..0bcb04ba 100644 --- a/Sources/NextcloudKit/NKSession.swift +++ b/Sources/NextcloudKit/NKSession.swift @@ -101,7 +101,7 @@ public struct NKSession: Sendable { sessionDownloadBackground = URLSession(configuration: configurationDownloadBackground, delegate: backgroundSessionDelegate, delegateQueue: OperationQueue.main) // Session Download Background Extension - let configurationDownloadBackgroundExt = URLSessionConfiguration.background(withIdentifier: NKCommon().identifierSessionDownloadBackgroundExt + UUID().uuidString) + let configurationDownloadBackgroundExt = URLSessionConfiguration.background(withIdentifier: NKCommon().identifierSessionDownloadBackgroundExt) configurationDownloadBackgroundExt.allowsCellularAccess = true if #available(macOS 11, *) { @@ -154,7 +154,7 @@ public struct NKSession: Sendable { sessionUploadBackgroundWWan = URLSession(configuration: configurationUploadBackgroundWWan, delegate: backgroundSessionDelegate, delegateQueue: OperationQueue.main) // Session Upload Background Extension - let configurationUploadBackgroundExt = URLSessionConfiguration.background(withIdentifier: NKCommon().identifierSessionUploadBackgroundExt + UUID().uuidString) + let configurationUploadBackgroundExt = URLSessionConfiguration.background(withIdentifier: NKCommon().identifierSessionUploadBackgroundExt) configurationUploadBackgroundExt.allowsCellularAccess = true if #available(macOS 11, *) { From ee2d2c64cd8a34d7de250a93a351a1c5acd00ba3 Mon Sep 17 00:00:00 2001 From: Marino Faggiana Date: Mon, 21 Jul 2025 09:10:16 +0200 Subject: [PATCH 2/4] cod Signed-off-by: Marino Faggiana --- Sources/NextcloudKit/Models/NKDataFileXML.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sources/NextcloudKit/Models/NKDataFileXML.swift b/Sources/NextcloudKit/Models/NKDataFileXML.swift index 386c994f..43a80617 100644 --- a/Sources/NextcloudKit/Models/NKDataFileXML.swift +++ b/Sources/NextcloudKit/Models/NKDataFileXML.swift @@ -300,7 +300,7 @@ public class NKDataFileXML: NSObject { // ServerUrl if href == rootFiles + nkSession.user + "/" { file.fileName = "." - file.serverUrl = ".." + file.serverUrl = baseUrl + rootFiles + nkSession.user } else { file.serverUrl = baseUrl + file.path.dropLast() } From 29c2b3ee0cc1d44bb670d8d10133f1ec349132e0 Mon Sep 17 00:00:00 2001 From: Marino Faggiana Date: Mon, 21 Jul 2025 09:42:53 +0200 Subject: [PATCH 3/4] root file name Signed-off-by: Marino Faggiana --- Sources/NextcloudKit/Models/NKDataFileXML.swift | 4 ++-- Sources/NextcloudKit/NKCommon.swift | 3 +++ Sources/NextcloudKit/NextcloudKit+WebDAV.swift | 6 +++--- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/Sources/NextcloudKit/Models/NKDataFileXML.swift b/Sources/NextcloudKit/Models/NKDataFileXML.swift index 43a80617..b0be505e 100644 --- a/Sources/NextcloudKit/Models/NKDataFileXML.swift +++ b/Sources/NextcloudKit/Models/NKDataFileXML.swift @@ -253,7 +253,7 @@ public class NKDataFileXML: NSObject { return xml["ocs", "data", "apppassword"].text } - func convertDataFile(xmlData: Data, nkSession: NKSession, showHiddenFiles: Bool, includeHiddenFiles: [String]) async -> [NKFile] { + func convertDataFile(xmlData: Data, nkSession: NKSession, rootFileName: String, showHiddenFiles: Bool, includeHiddenFiles: [String]) async -> [NKFile] { var files: [NKFile] = [] let rootFiles = "/" + nkSession.dav + "/files/" guard let baseUrl = self.nkCommonInstance.getHostName(urlString: nkSession.urlBase) else { @@ -299,7 +299,7 @@ public class NKDataFileXML: NSObject { // ServerUrl if href == rootFiles + nkSession.user + "/" { - file.fileName = "." + file.fileName = rootFileName file.serverUrl = baseUrl + rootFiles + nkSession.user } else { file.serverUrl = baseUrl + file.path.dropLast() diff --git a/Sources/NextcloudKit/NKCommon.swift b/Sources/NextcloudKit/NKCommon.swift index ae183bcf..5073e2f7 100644 --- a/Sources/NextcloudKit/NKCommon.swift +++ b/Sources/NextcloudKit/NKCommon.swift @@ -53,6 +53,9 @@ public struct NKCommon: Sendable { public var groupIdentifier: String? public let typeIdentifiers: NKTypeIdentifiers = .shared + // Roor fileName folder + public let rootFileName: String = ".__NC_ROOT__" + // Foreground public let identifierSessionDownload: String = "com.nextcloud.nextcloudkit.session.download" public let identifierSessionUpload: String = "com.nextcloud.nextcloudkit.session.upload" diff --git a/Sources/NextcloudKit/NextcloudKit+WebDAV.swift b/Sources/NextcloudKit/NextcloudKit+WebDAV.swift index 64470181..e928a6ab 100644 --- a/Sources/NextcloudKit/NextcloudKit+WebDAV.swift +++ b/Sources/NextcloudKit/NextcloudKit+WebDAV.swift @@ -416,7 +416,7 @@ public extension NextcloudKit { case .success: if let xmlData = response.data { Task { - let files = await NKDataFileXML(nkCommonInstance: self.nkCommonInstance).convertDataFile(xmlData: xmlData, nkSession: nkSession, showHiddenFiles: showHiddenFiles, includeHiddenFiles: includeHiddenFiles) + let files = await NKDataFileXML(nkCommonInstance: self.nkCommonInstance).convertDataFile(xmlData: xmlData, nkSession: nkSession, rootFileName: self.nkCommonInstance.rootFileName, showHiddenFiles: showHiddenFiles, includeHiddenFiles: includeHiddenFiles) options.queue.async { completion(account, files, response, .success) } } } else { @@ -888,7 +888,7 @@ public extension NextcloudKit { case .success: if let xmlData = response.data { Task { - let files = await NKDataFileXML(nkCommonInstance: self.nkCommonInstance).convertDataFile(xmlData: xmlData, nkSession: nkSession, showHiddenFiles: showHiddenFiles, includeHiddenFiles: includeHiddenFiles) + let files = await NKDataFileXML(nkCommonInstance: self.nkCommonInstance).convertDataFile(xmlData: xmlData, nkSession: nkSession, rootFileName: self.nkCommonInstance.rootFileName, showHiddenFiles: showHiddenFiles, includeHiddenFiles: includeHiddenFiles) options.queue.async { completion(account, files, response, .success) } } } else { @@ -1083,7 +1083,7 @@ public extension NextcloudKit { case .success: if let xmlData = response.data { Task { - let files = await NKDataFileXML(nkCommonInstance: self.nkCommonInstance).convertDataFile(xmlData: xmlData, nkSession: nkSession, showHiddenFiles: showHiddenFiles, includeHiddenFiles: includeHiddenFiles) + let files = await NKDataFileXML(nkCommonInstance: self.nkCommonInstance).convertDataFile(xmlData: xmlData, nkSession: nkSession, rootFileName: self.nkCommonInstance.rootFileName, showHiddenFiles: showHiddenFiles, includeHiddenFiles: includeHiddenFiles) options.queue.async { completion(account, files, response, .success) } } } else { From f5b94fbb49a171ed3386ea69f164e2dc94804001 Mon Sep 17 00:00:00 2001 From: Marino Faggiana Date: Mon, 21 Jul 2025 12:09:55 +0200 Subject: [PATCH 4/4] + UUID().uuidString Signed-off-by: Marino Faggiana --- Sources/NextcloudKit/NKSession.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Sources/NextcloudKit/NKSession.swift b/Sources/NextcloudKit/NKSession.swift index 0bcb04ba..33ea57c9 100644 --- a/Sources/NextcloudKit/NKSession.swift +++ b/Sources/NextcloudKit/NKSession.swift @@ -101,7 +101,7 @@ public struct NKSession: Sendable { sessionDownloadBackground = URLSession(configuration: configurationDownloadBackground, delegate: backgroundSessionDelegate, delegateQueue: OperationQueue.main) // Session Download Background Extension - let configurationDownloadBackgroundExt = URLSessionConfiguration.background(withIdentifier: NKCommon().identifierSessionDownloadBackgroundExt) + let configurationDownloadBackgroundExt = URLSessionConfiguration.background(withIdentifier: NKCommon().identifierSessionDownloadBackgroundExt + UUID().uuidString) configurationDownloadBackgroundExt.allowsCellularAccess = true if #available(macOS 11, *) { @@ -154,7 +154,7 @@ public struct NKSession: Sendable { sessionUploadBackgroundWWan = URLSession(configuration: configurationUploadBackgroundWWan, delegate: backgroundSessionDelegate, delegateQueue: OperationQueue.main) // Session Upload Background Extension - let configurationUploadBackgroundExt = URLSessionConfiguration.background(withIdentifier: NKCommon().identifierSessionUploadBackgroundExt) + let configurationUploadBackgroundExt = URLSessionConfiguration.background(withIdentifier: NKCommon().identifierSessionUploadBackgroundExt + UUID().uuidString) configurationUploadBackgroundExt.allowsCellularAccess = true if #available(macOS 11, *) {