Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
169 commits
Select commit Hold shift + click to select a range
1d73eb7
https://github.com/nextcloud/ios/issues/2390
marinofaggiana Nov 22, 2023
cbd0274
add async/await searchMedia
marinofaggiana Nov 25, 2023
31ec113
Livephoto detect (#51)
marinofaggiana Nov 28, 2023
544d8ad
cleaning
marinofaggiana Nov 30, 2023
b4df6c9
Fix build on macOS broken by freeDisk change (#53)
claucambra Dec 4, 2023
47b230f
livePhotoFile -> fileId
marinofaggiana Dec 7, 2023
e3b2ae8
rollback
marinofaggiana Dec 7, 2023
b5f351d
rollback
marinofaggiana Dec 9, 2023
992ad16
Merge remote-tracking branch 'origin/main' into develop
marinofaggiana Dec 12, 2023
e77c2dc
Fix error description chunk
marinofaggiana Dec 13, 2023
396f18b
chunk error fix
marinofaggiana Dec 13, 2023
4604eb4
errorDescription
marinofaggiana Dec 14, 2023
20f6e08
added description
marinofaggiana Dec 15, 2023
94bbdab
Change to markdown
mpivchev Dec 15, 2023
f7f618d
Added e2ee options versionApi
marinofaggiana Jan 18, 2024
77dffd8
change variable name
marinofaggiana Jan 22, 2024
28eede9
endpoint update
marinofaggiana Jan 23, 2024
14c622f
Fix chunk S3 (#56)
marinofaggiana Jan 29, 2024
41475e7
public func
marinofaggiana Feb 5, 2024
ec87ccc
lint
marinofaggiana Feb 5, 2024
d231a48
remove description
marinofaggiana Feb 7, 2024
c2e2d83
fix
marinofaggiana Feb 7, 2024
23b3555
fix
marinofaggiana Feb 7, 2024
7d61d28
fix log
marinofaggiana Feb 10, 2024
3c34cc5
Resolution - GPS (#59)
marinofaggiana Feb 28, 2024
ff4d3d1
set h, w to Double
marinofaggiana Feb 28, 2024
fa460bb
Merge remote-tracking branch 'origin/main' into develop
marinofaggiana Feb 28, 2024
4a33e6c
coding (#61)
marinofaggiana Mar 6, 2024
25e8788
normalized taskHandler
marinofaggiana Mar 8, 2024
81e1318
add filename in trash (#63)
marinofaggiana Mar 21, 2024
1e224f0
Nextcloud Assistant (#66)
marinofaggiana Apr 18, 2024
73d245f
Add support for visionOS, fix tvOS and watchOS support (#67)
claucambra Apr 22, 2024
fdbe0dc
Task description (#70)
marinofaggiana May 7, 2024
31c85f4
change TypeIconFile (#71)
marinofaggiana May 15, 2024
cc3c063
Merge remote-tracking branch 'origin/main' into develop
marinofaggiana May 24, 2024
99c5a27
Core Preview Improvements and use only fileId
marinofaggiana Jun 21, 2024
6814775
fix
marinofaggiana Jun 21, 2024
28f1554
improvements
marinofaggiana Jun 21, 2024
35d4460
Improvements
marinofaggiana Jun 21, 2024
3b3b178
added compressionQuality
marinofaggiana Jun 23, 2024
064cf05
Improvements (#76)
marinofaggiana Jul 2, 2024
e4e557e
improved code
marinofaggiana Jul 2, 2024
3e5ffc7
fix paramenters default
marinofaggiana Jul 3, 2024
b61e465
fix paramenters default
marinofaggiana Jul 3, 2024
eb260e3
improvements
marinofaggiana Jul 5, 2024
44731fd
cod
marinofaggiana Jul 5, 2024
5b667cb
improvements
marinofaggiana Jul 6, 2024
b6917d8
Merge remote-tracking branch 'origin/main' into develop
marinofaggiana Jul 8, 2024
6b90394
downloadPreview
marinofaggiana Jul 10, 2024
85892df
Merge remote-tracking branch 'origin/main' into develop
marinofaggiana Jul 10, 2024
f75a16b
added downloadPreview url
marinofaggiana Jul 10, 2024
5fa0dd8
Merge remote-tracking branch 'origin/main' into develop
marinofaggiana Jul 10, 2024
4cf36e5
httpCookieStorage (#80)
marinofaggiana Jul 19, 2024
499fa9b
new getUserProfile()
marinofaggiana Jul 20, 2024
93b4913
change paramenter name
marinofaggiana Jul 20, 2024
f4f645f
Account (#82)
marinofaggiana Jul 31, 2024
83b75a1
cod
marinofaggiana Jul 31, 2024
f6c4c86
Revert "cod"
marinofaggiana Jul 31, 2024
f8324b8
Filename validator (#83)
mpivchev Aug 6, 2024
30c4043
Merge remote-tracking branch 'origin/main' into develop
marinofaggiana Aug 6, 2024
5023211
fix session delegate
marinofaggiana Aug 13, 2024
5ad366b
Merge remote-tracking branch 'origin/main' into develop
marinofaggiana Aug 13, 2024
0673ceb
fix
marinofaggiana Aug 13, 2024
e9c40dd
Filename validator (#92)
marinofaggiana Aug 23, 2024
6173516
WIP
mpivchev Aug 26, 2024
d421994
NextcloudKit Version 5 - Multisession (#94)
marinofaggiana Sep 24, 2024
7fc17fe
NextcloudKit V 5
marinofaggiana Sep 24, 2024
caee63d
fix
marinofaggiana Sep 24, 2024
263420e
requestCachePolicy
marinofaggiana Oct 8, 2024
49432ad
cache
marinofaggiana Oct 8, 2024
ddf9823
cache
marinofaggiana Oct 8, 2024
bbe7ae1
cache
marinofaggiana Oct 8, 2024
0c4c6b6
Add optional spaces and periods - WCF
mpivchev Sep 27, 2024
44123c3
Response (#97)
marinofaggiana Oct 14, 2024
bb750f2
ThreadSafeArray
marinofaggiana Oct 16, 2024
cdcfedb
logger delegate
marinofaggiana Oct 20, 2024
93c2b50
fix message 503
marinofaggiana Oct 21, 2024
87d6f37
public
marinofaggiana Oct 21, 2024
354bc42
fix error
marinofaggiana Oct 21, 2024
b7d757f
Add reuse compliance (#96)
AndyScherzinger Oct 22, 2024
1ad32b4
Merge remote-tracking branch 'origin/main' into develop
marinofaggiana Oct 22, 2024
14c9da5
Auto rename (#99)
mpivchev Nov 4, 2024
94fbe70
Keep original extension
mpivchev Nov 4, 2024
6d794ec
Refactor
mpivchev Nov 4, 2024
1a54b9a
License (#102)
marinofaggiana Nov 5, 2024
6f80c4d
( multipathServiceType )
marinofaggiana Nov 5, 2024
1c4389d
Merge remote-tracking branch 'origin/main' into develop
marinofaggiana Nov 6, 2024
a5b6f5c
Add more extensive test for AutoRenamer (#101)
mpivchev Nov 6, 2024
69d7822
Split NKModel.swift into designated source code files for every conta…
i2h3 Nov 14, 2024
5ddf89c
Merge pull request #105 from nextcloud/split-nkmodel
i2h3 Nov 14, 2024
0853d79
Update README.md (#106)
mpivchev Nov 25, 2024
e6e0a54
Prettier Landing Page (#108)
i2h3 Nov 25, 2024
fcfc5c7
Reenabled build on macOS. (#109)
i2h3 Nov 25, 2024
4e0a7fa
Track ocId in NKTrash items (#110)
claucambra Dec 4, 2024
c754b59
Dav pagination (#111)
marinofaggiana Dec 5, 2024
7b09fa2
Terms of Service (#112)
marinofaggiana Dec 11, 2024
0fd68b6
Merge remote-tracking branch 'origin/main' into develop
marinofaggiana Dec 14, 2024
dd022b9
Added capabilities to manage share download limits. (#107)
i2h3 Dec 20, 2024
f798517
Recommended files (#115)
marinofaggiana Dec 30, 2024
92ca88f
improvements
marinofaggiana Jan 2, 2025
bdfb63e
Allow setting custom destinations in chunked upload (#116)
claucambra Jan 10, 2025
9f85082
Merge remote-tracking branch 'origin/main' into develop
marinofaggiana Jan 16, 2025
19f484c
added httpMaximumConnectionsPerHost
marinofaggiana Jan 21, 2025
3c394ed
httpMaximumConnectionsPerHost
marinofaggiana Jan 21, 2025
f798615
appendSession
marinofaggiana Jan 21, 2025
670e3cd
cod
marinofaggiana Jan 21, 2025
935d4bc
Added feature to get download limits explicitly via OCS API.
i2h3 Jan 21, 2025
26182ad
Merge pull request #118 from nextcloud/files_downloadlimit2
i2h3 Jan 23, 2025
34d7b9e
Update FileNameValidator.swift
mpivchev Jan 23, 2025
740e605
Merge remote-tracking branch 'origin/main' into develop
marinofaggiana Jan 30, 2025
9924a98
Make NextcloudKit Swift 6 compatible (#119)
claucambra Jan 31, 2025
3c87a40
Add static/refactor
mpivchev Jan 31, 2025
31e5f49
NextcloudKitDelegate
marinofaggiana Jan 31, 2025
3ab5b95
change Name to NKMonitor
marinofaggiana Feb 1, 2025
b93eca4
Added NKInterceptor
marinofaggiana Feb 1, 2025
dce0f8c
Interceptor
marinofaggiana Feb 1, 2025
ff51b77
Interceptor
marinofaggiana Feb 1, 2025
4184d62
interceptor
marinofaggiana Feb 1, 2025
d4940fb
cleaning
marinofaggiana Feb 1, 2025
5539a14
Interceptor
marinofaggiana Feb 1, 2025
860c104
INterceptor
marinofaggiana Feb 1, 2025
e19c074
sendable
marinofaggiana Feb 1, 2025
f858b07
test
marinofaggiana Feb 1, 2025
2d6709a
cleaning
marinofaggiana Feb 1, 2025
c764644
checkUnauthorized
marinofaggiana Feb 1, 2025
97dedf7
debug
marinofaggiana Feb 2, 2025
788aadf
X-NC-CheckUnauthorized
marinofaggiana Feb 2, 2025
8fe27d5
test
marinofaggiana Feb 2, 2025
b5c71ed
cod
marinofaggiana Feb 2, 2025
8b9be41
cod
marinofaggiana Feb 2, 2025
29ba81a
cod
marinofaggiana Feb 2, 2025
ace908b
common (#121)
marinofaggiana Feb 3, 2025
f8f9a76
cleaning
marinofaggiana Feb 3, 2025
893762a
cleaning
marinofaggiana Feb 3, 2025
1c2ceee
added checkUnauthorized options
marinofaggiana Feb 3, 2025
0abd7f4
cod
marinofaggiana Feb 3, 2025
2b034e1
fix
marinofaggiana Feb 3, 2025
9a53ffb
cleaning
marinofaggiana Feb 3, 2025
a600210
cod
marinofaggiana Feb 7, 2025
9917699
Merge remote-tracking branch 'origin/main' into develop
marinofaggiana Feb 7, 2025
e5a9969
setupLog
marinofaggiana Feb 7, 2025
34ee929
dependencies version updated
marinofaggiana Feb 7, 2025
2ece4c7
improved code
marinofaggiana Feb 7, 2025
3ab309d
improved
marinofaggiana Feb 7, 2025
a4ea592
cleaning
marinofaggiana Feb 7, 2025
0107c4e
debugPrint
marinofaggiana Feb 7, 2025
f83bc68
debugprint
marinofaggiana Feb 7, 2025
1c32a75
cod
marinofaggiana Feb 7, 2025
069c774
log
marinofaggiana Feb 7, 2025
5d96731
cleaning
marinofaggiana Feb 7, 2025
1d122f9
LOG (#123)
marinofaggiana Feb 8, 2025
f7928e1
added request delagate
marinofaggiana Feb 24, 2025
923a7cb
cleaning
marinofaggiana Feb 24, 2025
fdf5fc4
Merge remote-tracking branch 'origin/main' into develop
marinofaggiana Feb 24, 2025
40d4958
protocol NextcloudKitDelegate optional
marinofaggiana Feb 24, 2025
a6f63ac
added getRequestBodyFileExists
marinofaggiana Feb 27, 2025
db54445
public
marinofaggiana Feb 27, 2025
47b82d1
fix
marinofaggiana Feb 27, 2025
47c192c
init
marinofaggiana Feb 27, 2025
b848f79
Interceptor & Monitor Improved (#126)
marinofaggiana Mar 6, 2025
f17b596
Improved code
marinofaggiana Mar 7, 2025
219a178
Improvements
marinofaggiana Mar 7, 2025
dbc7e1e
Merge remote-tracking branch 'origin/main' into develop
marinofaggiana Mar 10, 2025
de0114f
Upload fix multisession (#129)
marinofaggiana Mar 10, 2025
eed1b57
Fix: Login poll without cached responses.
mpivchev Mar 6, 2025
d7aa6a2
Merge branch 'main' into develop
marinofaggiana Mar 11, 2025
f5330e6
Assistant V2
mpivchev Feb 13, 2025
5863709
Merge branch 'main' into develop
marinofaggiana Mar 15, 2025
a022573
new session without cache (#134)
marinofaggiana Apr 24, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
// SPDX-FileCopyrightText: Nextcloud GmbH
// SPDX-FileCopyrightText: 2025 Milen Pivchev
// SPDX-License-Identifier: GPL-3.0-or-later

import SwiftyJSON

public class NKTextProcessingTask {
public var id: Int?
public var type: String?
public var status: Int?
public var userId: String?
public var appId: String?
public var input: String?
public var output: String?
public var identifier: String?
public var completionExpectedAt: Double?

public init(id: Int? = nil, type: String? = nil, status: Int? = nil, userId: String? = nil, appId: String? = nil, input: String? = nil, output: String? = nil, identifier: String? = nil, completionExpectedAt: Double? = nil) {
self.id = id
self.type = type
self.status = status
self.userId = userId
self.appId = appId
self.input = input
self.output = output
self.identifier = identifier
self.completionExpectedAt = completionExpectedAt
}

public init?(json: JSON) {
self.id = json["id"].int
self.type = json["type"].string
self.status = json["status"].int
self.userId = json["userId"].string
self.appId = json["appId"].string
self.input = json["input"].string
self.output = json["output"].string
self.identifier = json["identifier"].string
self.completionExpectedAt = json["completionExpectedAt"].double
}

static func deserialize(multipleObjects data: JSON) -> [NKTextProcessingTask]? {
guard let allResults = data.array else { return nil }
return allResults.compactMap(NKTextProcessingTask.init)
}

static func deserialize(singleObject data: JSON) -> NKTextProcessingTask? {
NKTextProcessingTask(json: data)
}

public static func toV2(tasks: [NKTextProcessingTask]) -> TaskList {
let tasks = tasks.map { task in
AssistantTask(
id: Int64(task.id ?? 0),
type: task.type,
status: String(task.status ?? 0),
userId: task.userId,
appId: task.appId,
input: TaskInput(input: task.input),
output: TaskOutput(output: task.output),
completionExpectedAt: Int(task.completionExpectedAt ?? 0),
progress: nil,
lastUpdated: nil,
scheduledAt: nil,
endedAt: nil
)
}

return TaskList(tasks: tasks)
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
// SPDX-FileCopyrightText: Nextcloud GmbH
// SPDX-FileCopyrightText: 2025 Milen Pivchev
// SPDX-License-Identifier: GPL-3.0-or-later

import SwiftyJSON

public class NKTextProcessingTaskType {
public var id: String?
public var name: String?
public var description: String?

public init(id: String? = nil, name: String? = nil, description: String? = nil) {
self.id = id
self.name = name
self.description = description
}

public init?(json: JSON) {
self.id = json["id"].string
self.name = json["name"].string
self.description = json["description"].string
}

static func deserialize(multipleObjects data: JSON) -> [NKTextProcessingTaskType]? {
guard let allResults = data.array else { return nil }
return allResults.compactMap(NKTextProcessingTaskType.init)
}

public static func toV2(type: [NKTextProcessingTaskType]) -> TaskTypes {
let types = type.map { type in
TaskTypeData(id: type.id, name: type.name, description: type.description, inputShape: nil, outputShape: nil)
}

return TaskTypes(types: types)
}
}


Check warning on line 38 in Sources/NextcloudKit/Models/Assistant/v1/NKTextProcessingTaskType.swift

View workflow job for this annotation

GitHub Actions / Lint

Vertical Whitespace Violation: Limit vertical whitespace to a single empty line; currently 2 (vertical_whitespace)

Check warning on line 38 in Sources/NextcloudKit/Models/Assistant/v1/NKTextProcessingTaskType.swift

View workflow job for this annotation

GitHub Actions / Lint

Trailing Newline Violation: Files should have a single trailing newline (trailing_newline)
97 changes: 97 additions & 0 deletions Sources/NextcloudKit/Models/Assistant/v2/TaskList.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
// SPDX-FileCopyrightText: Nextcloud GmbH
// SPDX-FileCopyrightText: 2025 Milen Pivchev
// SPDX-License-Identifier: GPL-3.0-or-later

import SwiftyJSON

public struct TaskList: Codable {
public var tasks: [AssistantTask]

static func deserialize(from data: JSON) -> TaskList? {
let tasks = data.arrayValue.map { taskJson in
AssistantTask(
id: taskJson["id"].int64Value,
type: taskJson["type"].string,
status: taskJson["status"].string,
userId: taskJson["userId"].string,
appId: taskJson["appId"].string,
input: TaskInput(input: taskJson["input"]["input"].string),
output: TaskOutput(output: taskJson["output"]["output"].string),
completionExpectedAt: taskJson["completionExpectedAt"].int,
progress: taskJson["progress"].int,
lastUpdated: taskJson["lastUpdated"].int,
scheduledAt: taskJson["scheduledAt"].int,
endedAt: taskJson["endedAt"].int
)
}

return TaskList(tasks: tasks)
}
}

public struct AssistantTask: Codable {
public let id: Int64
public let type: String?
public let status: String?
public let userId: String?
public let appId: String?
public let input: TaskInput?
public let output: TaskOutput?
public let completionExpectedAt: Int?
public var progress: Int?
public let lastUpdated: Int?
public let scheduledAt: Int?
public let endedAt: Int?

public init(id: Int64, type: String?, status: String?, userId: String?, appId: String?, input: TaskInput?, output: TaskOutput?, completionExpectedAt: Int?, progress: Int? = nil, lastUpdated: Int?, scheduledAt: Int?, endedAt: Int?) {
self.id = id
self.type = type
self.status = status
self.userId = userId
self.appId = appId
self.input = input
self.output = output
self.completionExpectedAt = completionExpectedAt
self.progress = progress
self.lastUpdated = lastUpdated
self.scheduledAt = scheduledAt
self.endedAt = endedAt
}

static func deserialize(from data: JSON) -> AssistantTask? {
let task = AssistantTask(
id: data["id"].int64Value,
type: data["type"].string,
status: data["status"].string,
userId: data["userId"].string,
appId: data["appId"].string,
input: TaskInput(input: data["input"]["input"].string),
output: TaskOutput(output: data["output"]["output"].string),
completionExpectedAt: data["completionExpectedAt"].int,
progress: data["progress"].int,
lastUpdated: data["lastUpdated"].int,
scheduledAt: data["scheduledAt"].int,
endedAt: data["endedAt"].int
)

return task
}
}

public struct TaskInput: Codable {
public var input: String?

public init(input: String? = nil) {
self.input = input
}
}

public struct TaskOutput: Codable {
public var output: String?

public init(output: String? = nil) {
self.output = output
}
}


Check warning on line 97 in Sources/NextcloudKit/Models/Assistant/v2/TaskList.swift

View workflow job for this annotation

GitHub Actions / Lint

Vertical Whitespace Violation: Limit vertical whitespace to a single empty line; currently 2 (vertical_whitespace)

Check warning on line 97 in Sources/NextcloudKit/Models/Assistant/v2/TaskList.swift

View workflow job for this annotation

GitHub Actions / Lint

Trailing Newline Violation: Files should have a single trailing newline (trailing_newline)
89 changes: 89 additions & 0 deletions Sources/NextcloudKit/Models/Assistant/v2/TaskTypes.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
// SPDX-FileCopyrightText: Nextcloud GmbH
// SPDX-FileCopyrightText: 2025 Milen Pivchev
// SPDX-License-Identifier: GPL-3.0-or-later

import SwiftyJSON

public struct TaskTypes: Codable {
public let types: [TaskTypeData]

static func deserialize(from data: JSON) -> TaskTypes? {
var taskTypes: [TaskTypeData] = []

for (key, subJson) in data {
let taskTypeData = TaskTypeData(
id: key,
name: subJson["name"].string,
description: subJson["description"].string,
inputShape: subJson["inputShape"].dictionary != nil ? TaskInputShape(
input: subJson["inputShape"]["input"].dictionary != nil ? Shape(
name: subJson["inputShape"]["input"]["name"].stringValue,
description: subJson["inputShape"]["input"]["description"].stringValue,
type: subJson["inputShape"]["input"]["type"].stringValue
) : nil
) : nil,
outputShape: subJson["outputShape"].dictionary != nil ? TaskOutputShape(
output: subJson["outputShape"]["output"].dictionary != nil ? Shape(
name: subJson["outputShape"]["output"]["name"].stringValue,
description: subJson["outputShape"]["output"]["description"].stringValue,
type: subJson["outputShape"]["output"]["type"].stringValue
) : nil
) : nil
)

taskTypes.append(taskTypeData)
}

return TaskTypes(types: taskTypes)
}
}

public struct TaskTypeData: Codable {
public let id: String?
public let name: String?
public let description: String?
public let inputShape: TaskInputShape?
public let outputShape: TaskOutputShape?

public init(id: String?, name: String?, description: String?, inputShape: TaskInputShape?, outputShape: TaskOutputShape?) {
self.id = id
self.name = name
self.description = description
self.inputShape = inputShape
self.outputShape = outputShape
}
}

public struct TaskInputShape: Codable {
public let input: Shape?

public init(input: Shape?) {
self.input = input
}
}

public struct TaskOutputShape: Codable {
public let output: Shape?

public init(output: Shape?) {
self.output = output
}
}

public struct Shape: Codable {
public let name: String
public let description: String
public let type: String

public init(name: String, description: String, type: String) {
self.name = name
self.description = description
self.type = type
}
}






Check warning on line 89 in Sources/NextcloudKit/Models/Assistant/v2/TaskTypes.swift

View workflow job for this annotation

GitHub Actions / Lint

Vertical Whitespace Violation: Limit vertical whitespace to a single empty line; currently 6 (vertical_whitespace)

Check warning on line 89 in Sources/NextcloudKit/Models/Assistant/v2/TaskTypes.swift

View workflow job for this annotation

GitHub Actions / Lint

Trailing Newline Violation: Files should have a single trailing newline (trailing_newline)
Loading
Loading