Skip to content

Commit bcc6a42

Browse files
marinofaggianaclaucambrampivchevAndyScherzingeri2h3
authored
Version 6.0.4 (#131)
* nextcloud/ios#2390 Signed-off-by: Marino Faggiana <[email protected]> * add async/await searchMedia Signed-off-by: Marino Faggiana <[email protected]> * Livephoto detect (#51) * Update NKModel.swift * cleaning Signed-off-by: Marino Faggiana <[email protected]> * Fix build on macOS broken by freeDisk change (#53) Signed-off-by: Claudio Cambra <[email protected]> * livePhotoFile -> fileId Signed-off-by: Marino Faggiana <[email protected]> * rollback Signed-off-by: Marino Faggiana <[email protected]> * rollback Signed-off-by: Marino Faggiana <[email protected]> * Fix error description chunk Signed-off-by: Marino Faggiana <[email protected]> * chunk error fix Signed-off-by: Marino Faggiana <[email protected]> * errorDescription Signed-off-by: Marino Faggiana <[email protected]> * added description Signed-off-by: Marino Faggiana <[email protected]> * Change to markdown Signed-off-by: Milen Pivchev <[email protected]> * Added e2ee options versionApi Signed-off-by: Marino Faggiana <[email protected]> * change variable name Signed-off-by: Marino Faggiana <[email protected]> * endpoint update Signed-off-by: Marino Faggiana <[email protected]> * Fix chunk S3 (#56) * cod Signed-off-by: Marino Faggiana <[email protected]> * fix Signed-off-by: Marino Faggiana <[email protected]> --------- Signed-off-by: Marino Faggiana <[email protected]> * public func Signed-off-by: Marino Faggiana <[email protected]> * lint Signed-off-by: Marino Faggiana <[email protected]> * remove description Signed-off-by: Marino Faggiana <[email protected]> * fix Signed-off-by: Marino Faggiana <[email protected]> * fix Signed-off-by: Marino Faggiana <[email protected]> * fix log Signed-off-by: Marino Faggiana <[email protected]> * Resolution - GPS (#59) * fix resolution-gps Signed-off-by: Marino Faggiana <[email protected]> --------- Signed-off-by: Marino Faggiana <[email protected]> * set h, w to Double Signed-off-by: Marino Faggiana <[email protected]> * coding (#61) Signed-off-by: Marino Faggiana <[email protected]> * normalized taskHandler taskHandler(task) }. Signed-off-by: Marino Faggiana <[email protected]> * add filename in trash (#63) * add filename Signed-off-by: Marino Faggiana <[email protected]> * disable Build and test Signed-off-by: Marino Faggiana <[email protected]> --------- Signed-off-by: Marino Faggiana <[email protected]> * Nextcloud Assistant (#66) * getTextProcessingTaskTypes Signed-off-by: Marino Faggiana <[email protected]> * getTextProcessingTaskTypes Signed-off-by: Marino Faggiana <[email protected]> * NKTextProcessingTaskTypes Signed-off-by: Marino Faggiana <[email protected]> * coding Signed-off-by: Marino Faggiana <[email protected]> * coding Signed-off-by: Marino Faggiana <[email protected]> * coding Signed-off-by: Marino Faggiana <[email protected]> * coding Signed-off-by: Marino Faggiana <[email protected]> * fix Signed-off-by: Marino Faggiana <[email protected]> * WIP Signed-off-by: Milen Pivchev <[email protected]> * WIP Signed-off-by: Milen Pivchev <[email protected]> * Add init Signed-off-by: Milen Pivchev <[email protected]> * Change model Signed-off-by: Milen Pivchev <[email protected]> * WIP Signed-off-by: Milen Pivchev <[email protected]> * WIP Signed-off-by: Milen Pivchev <[email protected]> --------- Signed-off-by: Marino Faggiana <[email protected]> Signed-off-by: Milen Pivchev <[email protected]> Co-authored-by: Milen Pivchev <[email protected]> * Add support for visionOS, fix tvOS and watchOS support (#67) * Add CoreServices import for visionOS Signed-off-by: Claudio Cambra <[email protected]> * Fix screen scaling calculation when UIScreen is not available (for visionOS) Signed-off-by: Claudio Cambra <[email protected]> * Fix availability of UIImage.resizeImage on non iOS platforms Signed-off-by: Claudio Cambra <[email protected]> * Add visionOS target support to NextcloudKit Signed-off-by: Claudio Cambra <[email protected]> * Bump watchOS version up, per dependency requirements Signed-off-by: Claudio Cambra <[email protected]> * Remove reachability observation on watchOS, as this is unsupported in Alamofire Signed-off-by: Claudio Cambra <[email protected]> * Remove free disk calculation on watchOS which cannot be done Signed-off-by: Claudio Cambra <[email protected]> * Bump up tvOS version per dependencies Signed-off-by: Claudio Cambra <[email protected]> * Also restrict free space calculation on tvOS, as unavailable Signed-off-by: Claudio Cambra <[email protected]> --------- Signed-off-by: Claudio Cambra <[email protected]> * Task description (#70) * coding Signed-off-by: Marino Faggiana <[email protected]> * task.taskDescription Signed-off-by: Marino Faggiana <[email protected]> * DownloadingFinish Signed-off-by: Marino Faggiana <[email protected]> * fix Signed-off-by: Marino Faggiana <[email protected]> * improvements Signed-off-by: Marino Faggiana <[email protected]> * fix Signed-off-by: Marino Faggiana <[email protected]> --------- Signed-off-by: Marino Faggiana <[email protected]> * change TypeIconFile (#71) Signed-off-by: Marino Faggiana <[email protected]> * Core Preview Improvements and use only fileId Signed-off-by: Marino Faggiana <[email protected]> * fix Signed-off-by: Marino Faggiana <[email protected]> * improvements Signed-off-by: Marino Faggiana <[email protected]> * Improvements Signed-off-by: Marino Faggiana <[email protected]> * added compressionQuality Signed-off-by: Marino Faggiana <[email protected]> * Improvements (#76) Signed-off-by: Marino Faggiana <[email protected]> * improved code Signed-off-by: Marino Faggiana <[email protected]> * fix paramenters default Signed-off-by: Marino Faggiana <[email protected]> * fix paramenters default Signed-off-by: Marino Faggiana <[email protected]> * improvements Signed-off-by: Marino Faggiana <[email protected]> * cod Signed-off-by: Marino Faggiana <[email protected]> * improvements Signed-off-by: Marino Faggiana <[email protected]> * downloadPreview Signed-off-by: Marino Faggiana <[email protected]> * added downloadPreview url Signed-off-by: Marino Faggiana <[email protected]> * httpCookieStorage (#80) Signed-off-by: Marino Faggiana <[email protected]> * new getUserProfile() Signed-off-by: Marino Faggiana <[email protected]> * change paramenter name Signed-off-by: Marino Faggiana <[email protected]> * Account (#82) * cod Signed-off-by: Marino Faggiana <[email protected]> * cod Signed-off-by: Marino Faggiana <[email protected]> * cod Signed-off-by: Marino Faggiana <[email protected]> --------- Signed-off-by: Marino Faggiana <[email protected]> * cod Signed-off-by: Marino Faggiana <[email protected]> * Revert "cod" This reverts commit 83b75a1. Signed-off-by: Marino Faggiana <[email protected]> * Filename validator (#83) * WIP Signed-off-by: Milen Pivchev <[email protected]> * WIP Signed-off-by: Milen Pivchev <[email protected]> * cleanup Signed-off-by: Milen Pivchev <[email protected]> * WIP Signed-off-by: Milen Pivchev <[email protected]> * WIP Signed-off-by: Milen Pivchev <[email protected]> * Make singleton Signed-off-by: Milen Pivchev <[email protected]> * WIP Signed-off-by: Milen Pivchev <[email protected]> * WIP Signed-off-by: Milen Pivchev <[email protected]> * WIP Signed-off-by: Milen Pivchev <[email protected]> * WIP Signed-off-by: Milen Pivchev <[email protected]> * WIP Signed-off-by: Milen Pivchev <[email protected]> * WIP Signed-off-by: Milen Pivchev <[email protected]> * WIP Signed-off-by: Milen Pivchev <[email protected]> * WIP Signed-off-by: Milen Pivchev <[email protected]> * WIP Signed-off-by: Milen Pivchev <[email protected]> * WIP Signed-off-by: Milen Pivchev <[email protected]> --------- Signed-off-by: Milen Pivchev <[email protected]> * fix session delegate Signed-off-by: Marino Faggiana <[email protected]> * fix Signed-off-by: Marino Faggiana <[email protected]> * Filename validator (#92) * WIP Signed-off-by: Milen Pivchev <[email protected]> * WIP Signed-off-by: Milen Pivchev <[email protected]> * cleanup Signed-off-by: Milen Pivchev <[email protected]> * WIP Signed-off-by: Milen Pivchev <[email protected]> * WIP Signed-off-by: Milen Pivchev <[email protected]> * Make singleton Signed-off-by: Milen Pivchev <[email protected]> * WIP Signed-off-by: Milen Pivchev <[email protected]> * WIP Signed-off-by: Milen Pivchev <[email protected]> * WIP Signed-off-by: Milen Pivchev <[email protected]> * WIP Signed-off-by: Milen Pivchev <[email protected]> * WIP Signed-off-by: Milen Pivchev <[email protected]> * WIP Signed-off-by: Milen Pivchev <[email protected]> * WIP Signed-off-by: Milen Pivchev <[email protected]> * WIP Signed-off-by: Milen Pivchev <[email protected]> * WIP Signed-off-by: Milen Pivchev <[email protected]> * WIP Signed-off-by: Milen Pivchev <[email protected]> * WIP Signed-off-by: Milen Pivchev <[email protected]> * WIP Signed-off-by: Milen Pivchev <[email protected]> * WIP Signed-off-by: Milen Pivchev <[email protected]> * WIP Signed-off-by: Milen Pivchev <[email protected]> --------- Signed-off-by: Milen Pivchev <[email protected]> Co-authored-by: Milen Pivchev <[email protected]> * WIP Signed-off-by: Milen Pivchev <[email protected]> * NextcloudKit Version 5 - Multisession (#94) --------- Signed-off-by: Marino Faggiana <[email protected]> Signed-off-by: Milen Pivchev <[email protected]> Co-authored-by: Milen Pivchev <[email protected]> * NextcloudKit V 5 Signed-off-by: Marino Faggiana <[email protected]> * fix Signed-off-by: Marino Faggiana <[email protected]> * requestCachePolicy Signed-off-by: Marino Faggiana <[email protected]> * cache Signed-off-by: Marino Faggiana <[email protected]> * cache Signed-off-by: Marino Faggiana <[email protected]> * cache Signed-off-by: Marino Faggiana <[email protected]> * Add optional spaces and periods - WCF Signed-off-by: Milen Pivchev <[email protected]> WIP Signed-off-by: Milen Pivchev <[email protected]> WIP Signed-off-by: Milen Pivchev <[email protected]> WIP Signed-off-by: Milen Pivchev <[email protected]> WIP Signed-off-by: Milen Pivchev <[email protected]> WIP Signed-off-by: Milen Pivchev <[email protected]> * Response (#97) * API Signed-off-by: Marino Faggiana <[email protected]> * assistant Signed-off-by: Marino Faggiana <[email protected]> * comments Signed-off-by: Marino Faggiana <[email protected]> * dashboard Signed-off-by: Marino Faggiana <[email protected]> * e2ee Signed-off-by: Marino Faggiana <[email protected]> * groupfolders Signed-off-by: Marino Faggiana <[email protected]> * hovercard Signed-off-by: Marino Faggiana <[email protected]> * login Signed-off-by: Marino Faggiana <[email protected]> * nctext Signed-off-by: Marino Faggiana <[email protected]> * pn Signed-off-by: Marino Faggiana <[email protected]> * richdocuments Signed-off-by: Marino Faggiana <[email protected]> * search Signed-off-by: Marino Faggiana <[email protected]> * share Signed-off-by: Marino Faggiana <[email protected]> * userstatus Signed-off-by: Marino Faggiana <[email protected]> * webdav Signed-off-by: Marino Faggiana <[email protected]> * upload Signed-off-by: Marino Faggiana <[email protected]> * API Signed-off-by: Marino Faggiana <[email protected]> * download Signed-off-by: Marino Faggiana <[email protected]> * upload Signed-off-by: Marino Faggiana <[email protected]> * NextcloudKitSessionDelegate Signed-off-by: Marino Faggiana <[email protected]> * normalized Signed-off-by: Marino Faggiana <[email protected]> --------- Signed-off-by: Marino Faggiana <[email protected]> * ThreadSafeArray Signed-off-by: Marino Faggiana <[email protected]> * logger delegate Signed-off-by: Marino Faggiana <[email protected]> * fix message 503 Signed-off-by: Marino Faggiana <[email protected]> * public Signed-off-by: Marino Faggiana <[email protected]> * fix error Signed-off-by: Marino Faggiana <[email protected]> * Add reuse compliance (#96) * Auto rename (#99) * WIP Signed-off-by: Milen Pivchev <[email protected]> * WIP Signed-off-by: Milen Pivchev <[email protected]> * WIP Signed-off-by: Milen Pivchev <[email protected]> * WIP Signed-off-by: Milen Pivchev <[email protected]> * WIP Signed-off-by: Milen Pivchev <[email protected]> * License Signed-off-by: Milen Pivchev <[email protected]> * Licenses Signed-off-by: Milen Pivchev <[email protected]> * WIP Signed-off-by: Milen Pivchev <[email protected]> * Swiftlint fixes Signed-off-by: Milen Pivchev <[email protected]> * WIP Signed-off-by: Milen Pivchev <[email protected]> * Fix lint issue Signed-off-by: Milen Pivchev <[email protected]> * Fix ordering Signed-off-by: Milen Pivchev <[email protected]> * Refactor Signed-off-by: Milen Pivchev <[email protected]> * WIP Signed-off-by: Milen Pivchev <[email protected]> * WIP Signed-off-by: Milen Pivchev <[email protected]> * WIP Signed-off-by: Milen Pivchev <[email protected]> * WIP Signed-off-by: Milen Pivchev <[email protected]> * WIP Signed-off-by: Milen Pivchev <[email protected]> * WIP Signed-off-by: Milen Pivchev <[email protected]> * WIP Signed-off-by: Milen Pivchev <[email protected]> * License Signed-off-by: Milen Pivchev <[email protected]> * Licenses Signed-off-by: Milen Pivchev <[email protected]> * WIP Signed-off-by: Milen Pivchev <[email protected]> * Swiftlint fixes Signed-off-by: Milen Pivchev <[email protected]> * WIP Signed-off-by: Milen Pivchev <[email protected]> * Fix lint issue Signed-off-by: Milen Pivchev <[email protected]> * Fix ordering Signed-off-by: Milen Pivchev <[email protected]> * Refactor Signed-off-by: Milen Pivchev <[email protected]> * WIP Signed-off-by: Milen Pivchev <[email protected]> * WIP Signed-off-by: Milen Pivchev <[email protected]> --------- Signed-off-by: Milen Pivchev <[email protected]> Co-authored-by: Marino Faggiana <[email protected]> * Keep original extension Signed-off-by: Milen Pivchev <[email protected]> * Refactor Signed-off-by: Milen Pivchev <[email protected]> * License (#102) Signed-off-by: Marino Faggiana <[email protected]> * ( multipathServiceType ) Signed-off-by: Marino Faggiana <[email protected]> * Add more extensive test for AutoRenamer (#101) * Add more extensive test Signed-off-by: Milen Pivchev <[email protected]> * Force check Signed-off-by: Milen Pivchev <[email protected]> * Revert "Force check" This reverts commit b7fadf6. * WIP Signed-off-by: Milen Pivchev <[email protected]> * WIP Signed-off-by: Milen Pivchev <[email protected]> * WIP Signed-off-by: Milen Pivchev <[email protected]> * WIP Signed-off-by: Milen Pivchev <[email protected]> * WIP Signed-off-by: Milen Pivchev <[email protected]> * WIP Signed-off-by: Milen Pivchev <[email protected]> * WIP Signed-off-by: Milen Pivchev <[email protected]> * WIP Signed-off-by: Milen Pivchev <[email protected]> * WIP Signed-off-by: Milen Pivchev <[email protected]> * WIP Signed-off-by: Milen Pivchev <[email protected]> * WIP Signed-off-by: Milen Pivchev <[email protected]> * WIP Signed-off-by: Milen Pivchev <[email protected]> * WIP Signed-off-by: Milen Pivchev <[email protected]> * WIP Signed-off-by: Milen Pivchev <[email protected]> * WIP Signed-off-by: Milen Pivchev <[email protected]> * WIP Signed-off-by: Milen Pivchev <[email protected]> * WIP Signed-off-by: Milen Pivchev <[email protected]> * WIP Signed-off-by: Milen Pivchev <[email protected]> --------- Signed-off-by: Milen Pivchev <[email protected]> Co-authored-by: Marino Faggiana <[email protected]> * Split NKModel.swift into designated source code files for every contained type. Signed-off-by: Iva Horn <[email protected]> * Update README.md (#106) Signed-off-by: Milen Pivchev <[email protected]> * Prettier Landing Page (#108) - Replaced logo with an self-created image based on the Apple symbol design for frameworks. - Removed the "V 2" in the top level heading because it contradicts the current major version 5. - Corrected alt text of image which appears to be copied and pasted from Nextcloud iOS app README. - Improved orthography on testing headings. - Added syntax definitions to some code fences. - Minor formatting improvements. * Reenabled build on macOS. (#109) Certain APIs used were not available on macOS in general or the currently supported version per package manifest. I added necessary code switches to make the code at least build again. Co-authored-by: Marino Faggiana <[email protected]> * Track ocId in NKTrash items (#110) Signed-off-by: Claudio Cambra <[email protected]> * Dav pagination (#111) * add paginate Signed-off-by: Marino Faggiana <[email protected]> * StandardHeaders Signed-off-by: Marino Faggiana <[email protected]> * code Signed-off-by: Marino Faggiana <[email protected]> * fix Signed-off-by: Marino Faggiana <[email protected]> --------- Signed-off-by: Marino Faggiana <[email protected]> * Terms of Service (#112) * tos Signed-off-by: Marino Faggiana <[email protected]> * getTermsOfService Signed-off-by: Marino Faggiana <[email protected]> * getTermsOfService Signed-off-by: Marino Faggiana <[email protected]> * cod Signed-off-by: Marino Faggiana <[email protected]> * code Signed-off-by: Marino Faggiana <[email protected]> * cod Signed-off-by: Marino Faggiana <[email protected]> * signTermsOfService Signed-off-by: Marino Faggiana <[email protected]> * cod Signed-off-by: Marino Faggiana <[email protected]> * cod Signed-off-by: Marino Faggiana <[email protected]> * cod Signed-off-by: Marino Faggiana <[email protected]> * cleaning Signed-off-by: Marino Faggiana <[email protected]> --------- Signed-off-by: Marino Faggiana <[email protected]> * Added capabilities to manage share download limits. (#107) - Requesting share download limit capability of files_downloadlimit app. - Augmented WebDAV metadata requests and responses with optional share download limits. - Extended NextcloudKit with methods to manage share download limits via OCS. Signed-off-by: Iva Horn <[email protected]> * Recommended files (#115) * cod Signed-off-by: Marino Faggiana <[email protected]> * cod Signed-off-by: Marino Faggiana <[email protected]> * cod Signed-off-by: Marino Faggiana <[email protected]> --------- Signed-off-by: Marino Faggiana <[email protected]> * improvements Signed-off-by: Marino Faggiana <[email protected]> * Allow setting custom destinations in chunked upload (#116) * Allow setting a different destination file name from local file name in chunked upload Using macOS File Provider APIs we rely on the system to provide us with a URL pointing the an item's local modified contents. This URL last path component is a UUID and does not represent the expected file name of the item. The current API of uploadChunk presents a problem because it assumes the local content file's filename is the same as what will eventually be uploaded to the server. This commit addresses the issue by allowing users of this function to provide a destination file name which will replace the provided local filename, if used. Signed-off-by: Claudio Cambra <[email protected]> * Make file chunks output directory customisable Currently the chunking procedure produces file chunks within the directory of the input file. However, this fails in cases where the directory is read-only. This can be fixed by allowing the chunked files output directory to be changed Signed-off-by: Claudio Cambra <[email protected]> --------- Signed-off-by: Claudio Cambra <[email protected]> * added httpMaximumConnectionsPerHost Signed-off-by: Marino Faggiana <[email protected]> * httpMaximumConnectionsPerHost Signed-off-by: Marino Faggiana <[email protected]> * appendSession Signed-off-by: Marino Faggiana <[email protected]> * cod Signed-off-by: Marino Faggiana <[email protected]> * Added feature to get download limits explicitly via OCS API. Signed-off-by: Iva Horn <[email protected]> * Update FileNameValidator.swift * Make NextcloudKit Swift 6 compatible (#119) * Define NKDownloadLimit as a sendable struct Signed-off-by: Claudio Cambra <[email protected]> * Define NKFile as a sendable struct Signed-off-by: Claudio Cambra <[email protected]> * Define NKSession as a sendable struct Signed-off-by: Claudio Cambra <[email protected]> f Signed-off-by: Claudio Cambra <[email protected]> * Define UTTypeConformsToServer as a sendable struct Signed-off-by: Claudio Cambra <[email protected]> * Define NKError as a sendable, equatable struct Signed-off-by: Claudio Cambra <[email protected]> * Convert ThreadSafeArray into a sendable struct This also modifies the behaviour of its methods to be sendable compliant by using locking instead of a dispatch queue Signed-off-by: Claudio Cambra <[email protected]> * Make FileAutoRenamer Sendable compliant Signed-off-by: Claudio Cambra <[email protected]> f autorenamer Signed-off-by: Claudio Cambra <[email protected]> f autorenamer Signed-off-by: Claudio Cambra <[email protected]> f autorenamer 3 Signed-off-by: Claudio Cambra <[email protected]> * Make FileNameValidator Sendable compliant Signed-off-by: Claudio Cambra <[email protected]> f filenamevalidator Signed-off-by: Claudio Cambra <[email protected]> * Fix copyright header in NSLock extension Signed-off-by: Claudio Cambra <[email protected]> * Use self createFolder rather than going for shared instance Signed-off-by: Claudio Cambra <[email protected]> * Make NextcloudKitDelegate protocol sendable Signed-off-by: Claudio Cambra <[email protected]> * Make NKBackground a final class Signed-off-by: Claudio Cambra <[email protected]> * Make NextcloudKitSessionDelegate conform to sendable Signed-off-by: Claudio Cambra <[email protected]> * Use the appropriate nkCommonInstance in NKSession initialiser Signed-off-by: Claudio Cambra <[email protected]> * Make nkCommonInstance mutable in NextcloudKit Signed-off-by: Claudio Cambra <[email protected]> * Only provide shared NextcloudKit instance on swift <6 Signed-off-by: Claudio Cambra <[email protected]> f shared nckit Signed-off-by: Claudio Cambra <[email protected]> * When using swift 6, use a task to retrieve screen scale on iOS Signed-off-by: Claudio Cambra <[email protected]> * Make NKFileProperty a sendable struct Signed-off-by: Claudio Cambra <[email protected]> f nkfileproperty Signed-off-by: Claudio Cambra <[email protected]> * Convert NKCommon into a sendable struct This required modifying the caches into standard maps. Unfortunately NSCache is not sendable compliant. I have made the changes take effect only when building with Swift 6 Signed-off-by: Claudio Cambra <[email protected]> * Fix whitespace handling in FileAutoRenamer Signed-off-by: Claudio Cambra <[email protected]> * Remove leading dot for hidden file filenames in autorenamer This is seemingly expected by the autotests Signed-off-by: Claudio Cambra <[email protected]> --------- Signed-off-by: Claudio Cambra <[email protected]> Co-authored-by: Milen Pivchev <[email protected]> * Add static/refactor Signed-off-by: Milen Pivchev <[email protected]> * NextcloudKitDelegate Signed-off-by: Marino Faggiana <[email protected]> * change Name to NKMonitor Signed-off-by: Marino Faggiana <[email protected]> * Added NKInterceptor Signed-off-by: Marino Faggiana <[email protected]> * Interceptor Signed-off-by: Marino Faggiana <[email protected]> * Interceptor Signed-off-by: Marino Faggiana <[email protected]> * interceptor Signed-off-by: Marino Faggiana <[email protected]> * cleaning Signed-off-by: Marino Faggiana <[email protected]> * Interceptor Signed-off-by: Marino Faggiana <[email protected]> * INterceptor Signed-off-by: Marino Faggiana <[email protected]> * sendable Signed-off-by: Marino Faggiana <[email protected]> * test Signed-off-by: Marino Faggiana <[email protected]> * cleaning Signed-off-by: Marino Faggiana <[email protected]> * checkUnauthorized Signed-off-by: Marino Faggiana <[email protected]> * debug Signed-off-by: Marino Faggiana <[email protected]> * X-NC-CheckUnauthorized Signed-off-by: Marino Faggiana <[email protected]> * test Signed-off-by: Marino Faggiana <[email protected]> * cod Signed-off-by: Marino Faggiana <[email protected]> * cod Signed-off-by: Marino Faggiana <[email protected]> * cod Signed-off-by: Marino Faggiana <[email protected]> * common (#121) * fix Signed-off-by: Marino Faggiana <[email protected]> * cod Signed-off-by: Marino Faggiana <[email protected]> --------- Signed-off-by: Marino Faggiana <[email protected]> * cleaning Signed-off-by: Marino Faggiana <[email protected]> * cleaning Signed-off-by: Marino Faggiana <[email protected]> * added checkUnauthorized options Signed-off-by: Marino Faggiana <[email protected]> * cod Signed-off-by: Marino Faggiana <[email protected]> * fix Signed-off-by: Marino Faggiana <[email protected]> * cleaning Signed-off-by: Marino Faggiana <[email protected]> * cod Signed-off-by: Marino Faggiana <[email protected]> * setupLog Signed-off-by: Marino Faggiana <[email protected]> * dependencies version updated Signed-off-by: Marino Faggiana <[email protected]> * improved code Signed-off-by: Marino Faggiana <[email protected]> * improved Signed-off-by: Marino Faggiana <[email protected]> * cleaning Signed-off-by: Marino Faggiana <[email protected]> * debugPrint Signed-off-by: Marino Faggiana <[email protected]> * debugprint Signed-off-by: Marino Faggiana <[email protected]> * cod Signed-off-by: Marino Faggiana <[email protected]> * log Signed-off-by: Marino Faggiana <[email protected]> * cleaning Signed-off-by: Marino Faggiana <[email protected]> * LOG (#123) * cod Signed-off-by: Marino Faggiana <[email protected]> * cod Signed-off-by: Marino Faggiana <[email protected]> --------- Signed-off-by: Marino Faggiana <[email protected]> * added request delagate Signed-off-by: Marino Faggiana <[email protected]> * cleaning Signed-off-by: Marino Faggiana <[email protected]> * protocol NextcloudKitDelegate optional Signed-off-by: Marino Faggiana <[email protected]> * added getRequestBodyFileExists Signed-off-by: Marino Faggiana <[email protected]> * public Signed-off-by: Marino Faggiana <[email protected]> * fix Signed-off-by: Marino Faggiana <[email protected]> * init Signed-off-by: Marino Faggiana <[email protected]> * Interceptor & Monitor Improved (#126) * cod Signed-off-by: Marino Faggiana <[email protected]> * cod Signed-off-by: Marino Faggiana <[email protected]> * code Signed-off-by: Marino Faggiana <[email protected]> * fix Signed-off-by: Marino Faggiana <[email protected]> * improvements Signed-off-by: Marino Faggiana <[email protected]> * cod Signed-off-by: Marino Faggiana <[email protected]> --------- Signed-off-by: Marino Faggiana <[email protected]> Co-authored-by: Marino Faggiana <[email protected]> * Improved code Signed-off-by: Marino Faggiana <[email protected]> * Improvements Signed-off-by: Marino Faggiana <[email protected]> * Upload fix multisession (#129) * fix Signed-off-by: Marino Faggiana <[email protected]> * fix Signed-off-by: Marino Faggiana <[email protected]> --------- Signed-off-by: Marino Faggiana <[email protected]> Co-authored-by: Marino Faggiana <[email protected]> * Fix: Login poll without cached responses. Signed-off-by: Milen Pivchev <[email protected]> * Assistant V2 Signed-off-by: Milen Pivchev <[email protected]> Fix compile Signed-off-by: Milen Pivchev <[email protected]> Refactor Signed-off-by: Milen Pivchev <[email protected]> WIP Signed-off-by: Milen Pivchev <[email protected]> Refactor Signed-off-by: Milen Pivchev <[email protected]> WIP Signed-off-by: Milen Pivchev <[email protected]> WIP Signed-off-by: Milen Pivchev <[email protected]> WIP Signed-off-by: Milen Pivchev <[email protected]> WIP Signed-off-by: Milen Pivchev <[email protected]> WIP Signed-off-by: Milen Pivchev <[email protected]> WIP Signed-off-by: Milen Pivchev <[email protected]> WIP Signed-off-by: Milen Pivchev <[email protected]> WIP Signed-off-by: Milen Pivchev <[email protected]> WIP Signed-off-by: Milen Pivchev <[email protected]> Refactor Signed-off-by: Milen Pivchev <[email protected]> Finish Signed-off-by: Milen Pivchev <[email protected]> Compliance Signed-off-by: Milen Pivchev <[email protected]> PR fixes Signed-off-by: Milen Pivchev <[email protected]> Assistant API v2 (#124) * WIP Signed-off-by: Milen Pivchev <[email protected]> * Fix compile Signed-off-by: Milen Pivchev <[email protected]> * Refactor Signed-off-by: Milen Pivchev <[email protected]> * WIP Signed-off-by: Milen Pivchev <[email protected]> * Refactor Signed-off-by: Milen Pivchev <[email protected]> * WIP Signed-off-by: Milen Pivchev <[email protected]> * WIP Signed-off-by: Milen Pivchev <[email protected]> * WIP Signed-off-by: Milen Pivchev <[email protected]> * WIP Signed-off-by: Milen Pivchev <[email protected]> * WIP Signed-off-by: Milen Pivchev <[email protected]> * WIP Signed-off-by: Milen Pivchev <[email protected]> * WIP Signed-off-by: Milen Pivchev <[email protected]> * WIP Signed-off-by: Milen Pivchev <[email protected]> * WIP Signed-off-by: Milen Pivchev <[email protected]> * Refactor Signed-off-by: Milen Pivchev <[email protected]> * Finish Signed-off-by: Milen Pivchev <[email protected]> * Compliance Signed-off-by: Milen Pivchev <[email protected]> * PR fixes Signed-off-by: Milen Pivchev <[email protected]> * Upload fix multisession (#129) * fix Signed-off-by: Marino Faggiana <[email protected]> * fix Signed-off-by: Marino Faggiana <[email protected]> --------- Signed-off-by: Marino Faggiana <[email protected]> Co-authored-by: Marino Faggiana <[email protected]> * Fix: Login poll without cached responses. Signed-off-by: Milen Pivchev <[email protected]> * Linter Signed-off-by: Milen Pivchev <[email protected]> --------- Signed-off-by: Milen Pivchev <[email protected]> Signed-off-by: Marino Faggiana <[email protected]> Co-authored-by: Marino Faggiana <[email protected]> Co-authored-by: Marino Faggiana <[email protected]> --------- Signed-off-by: Marino Faggiana <[email protected]> Signed-off-by: Marino Faggiana <[email protected]> Signed-off-by: Claudio Cambra <[email protected]> Signed-off-by: Milen Pivchev <[email protected]> Signed-off-by: Iva Horn <[email protected]> Co-authored-by: Marino Faggiana <[email protected]> Co-authored-by: Marino Faggiana <[email protected]> Co-authored-by: Claudio Cambra <[email protected]> Co-authored-by: Milen Pivchev <[email protected]> Co-authored-by: Andy Scherzinger <[email protected]> Co-authored-by: Iva Horn <[email protected]>
1 parent 7a59ec3 commit bcc6a42

File tree

6 files changed

+466
-72
lines changed

6 files changed

+466
-72
lines changed
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
// SPDX-FileCopyrightText: Nextcloud GmbH
2+
// SPDX-FileCopyrightText: 2025 Milen Pivchev
3+
// SPDX-License-Identifier: GPL-3.0-or-later
4+
5+
import SwiftyJSON
6+
7+
public class NKTextProcessingTask {
8+
public var id: Int?
9+
public var type: String?
10+
public var status: Int?
11+
public var userId: String?
12+
public var appId: String?
13+
public var input: String?
14+
public var output: String?
15+
public var identifier: String?
16+
public var completionExpectedAt: Double?
17+
18+
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) {
19+
self.id = id
20+
self.type = type
21+
self.status = status
22+
self.userId = userId
23+
self.appId = appId
24+
self.input = input
25+
self.output = output
26+
self.identifier = identifier
27+
self.completionExpectedAt = completionExpectedAt
28+
}
29+
30+
public init?(json: JSON) {
31+
self.id = json["id"].int
32+
self.type = json["type"].string
33+
self.status = json["status"].int
34+
self.userId = json["userId"].string
35+
self.appId = json["appId"].string
36+
self.input = json["input"].string
37+
self.output = json["output"].string
38+
self.identifier = json["identifier"].string
39+
self.completionExpectedAt = json["completionExpectedAt"].double
40+
}
41+
42+
static func deserialize(multipleObjects data: JSON) -> [NKTextProcessingTask]? {
43+
guard let allResults = data.array else { return nil }
44+
return allResults.compactMap(NKTextProcessingTask.init)
45+
}
46+
47+
static func deserialize(singleObject data: JSON) -> NKTextProcessingTask? {
48+
NKTextProcessingTask(json: data)
49+
}
50+
51+
public static func toV2(tasks: [NKTextProcessingTask]) -> TaskList {
52+
let tasks = tasks.map { task in
53+
AssistantTask(
54+
id: Int64(task.id ?? 0),
55+
type: task.type,
56+
status: String(task.status ?? 0),
57+
userId: task.userId,
58+
appId: task.appId,
59+
input: TaskInput(input: task.input),
60+
output: TaskOutput(output: task.output),
61+
completionExpectedAt: Int(task.completionExpectedAt ?? 0),
62+
progress: nil,
63+
lastUpdated: nil,
64+
scheduledAt: nil,
65+
endedAt: nil
66+
)
67+
}
68+
69+
return TaskList(tasks: tasks)
70+
}
71+
}
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
// SPDX-FileCopyrightText: Nextcloud GmbH
2+
// SPDX-FileCopyrightText: 2025 Milen Pivchev
3+
// SPDX-License-Identifier: GPL-3.0-or-later
4+
5+
import SwiftyJSON
6+
7+
public class NKTextProcessingTaskType {
8+
public var id: String?
9+
public var name: String?
10+
public var description: String?
11+
12+
public init(id: String? = nil, name: String? = nil, description: String? = nil) {
13+
self.id = id
14+
self.name = name
15+
self.description = description
16+
}
17+
18+
public init?(json: JSON) {
19+
self.id = json["id"].string
20+
self.name = json["name"].string
21+
self.description = json["description"].string
22+
}
23+
24+
static func deserialize(multipleObjects data: JSON) -> [NKTextProcessingTaskType]? {
25+
guard let allResults = data.array else { return nil }
26+
return allResults.compactMap(NKTextProcessingTaskType.init)
27+
}
28+
29+
public static func toV2(type: [NKTextProcessingTaskType]) -> TaskTypes {
30+
let types = type.map { type in
31+
TaskTypeData(id: type.id, name: type.name, description: type.description, inputShape: nil, outputShape: nil)
32+
}
33+
34+
return TaskTypes(types: types)
35+
}
36+
}
37+
38+
Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
// SPDX-FileCopyrightText: Nextcloud GmbH
2+
// SPDX-FileCopyrightText: 2025 Milen Pivchev
3+
// SPDX-License-Identifier: GPL-3.0-or-later
4+
5+
import SwiftyJSON
6+
7+
public struct TaskList: Codable {
8+
public var tasks: [AssistantTask]
9+
10+
static func deserialize(from data: JSON) -> TaskList? {
11+
let tasks = data.arrayValue.map { taskJson in
12+
AssistantTask(
13+
id: taskJson["id"].int64Value,
14+
type: taskJson["type"].string,
15+
status: taskJson["status"].string,
16+
userId: taskJson["userId"].string,
17+
appId: taskJson["appId"].string,
18+
input: TaskInput(input: taskJson["input"]["input"].string),
19+
output: TaskOutput(output: taskJson["output"]["output"].string),
20+
completionExpectedAt: taskJson["completionExpectedAt"].int,
21+
progress: taskJson["progress"].int,
22+
lastUpdated: taskJson["lastUpdated"].int,
23+
scheduledAt: taskJson["scheduledAt"].int,
24+
endedAt: taskJson["endedAt"].int
25+
)
26+
}
27+
28+
return TaskList(tasks: tasks)
29+
}
30+
}
31+
32+
public struct AssistantTask: Codable {
33+
public let id: Int64
34+
public let type: String?
35+
public let status: String?
36+
public let userId: String?
37+
public let appId: String?
38+
public let input: TaskInput?
39+
public let output: TaskOutput?
40+
public let completionExpectedAt: Int?
41+
public var progress: Int?
42+
public let lastUpdated: Int?
43+
public let scheduledAt: Int?
44+
public let endedAt: Int?
45+
46+
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?) {
47+
self.id = id
48+
self.type = type
49+
self.status = status
50+
self.userId = userId
51+
self.appId = appId
52+
self.input = input
53+
self.output = output
54+
self.completionExpectedAt = completionExpectedAt
55+
self.progress = progress
56+
self.lastUpdated = lastUpdated
57+
self.scheduledAt = scheduledAt
58+
self.endedAt = endedAt
59+
}
60+
61+
static func deserialize(from data: JSON) -> AssistantTask? {
62+
let task = AssistantTask(
63+
id: data["id"].int64Value,
64+
type: data["type"].string,
65+
status: data["status"].string,
66+
userId: data["userId"].string,
67+
appId: data["appId"].string,
68+
input: TaskInput(input: data["input"]["input"].string),
69+
output: TaskOutput(output: data["output"]["output"].string),
70+
completionExpectedAt: data["completionExpectedAt"].int,
71+
progress: data["progress"].int,
72+
lastUpdated: data["lastUpdated"].int,
73+
scheduledAt: data["scheduledAt"].int,
74+
endedAt: data["endedAt"].int
75+
)
76+
77+
return task
78+
}
79+
}
80+
81+
public struct TaskInput: Codable {
82+
public var input: String?
83+
84+
public init(input: String? = nil) {
85+
self.input = input
86+
}
87+
}
88+
89+
public struct TaskOutput: Codable {
90+
public var output: String?
91+
92+
public init(output: String? = nil) {
93+
self.output = output
94+
}
95+
}
96+
97+
Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
// SPDX-FileCopyrightText: Nextcloud GmbH
2+
// SPDX-FileCopyrightText: 2025 Milen Pivchev
3+
// SPDX-License-Identifier: GPL-3.0-or-later
4+
5+
import SwiftyJSON
6+
7+
public struct TaskTypes: Codable {
8+
public let types: [TaskTypeData]
9+
10+
static func deserialize(from data: JSON) -> TaskTypes? {
11+
var taskTypes: [TaskTypeData] = []
12+
13+
for (key, subJson) in data {
14+
let taskTypeData = TaskTypeData(
15+
id: key,
16+
name: subJson["name"].string,
17+
description: subJson["description"].string,
18+
inputShape: subJson["inputShape"].dictionary != nil ? TaskInputShape(
19+
input: subJson["inputShape"]["input"].dictionary != nil ? Shape(
20+
name: subJson["inputShape"]["input"]["name"].stringValue,
21+
description: subJson["inputShape"]["input"]["description"].stringValue,
22+
type: subJson["inputShape"]["input"]["type"].stringValue
23+
) : nil
24+
) : nil,
25+
outputShape: subJson["outputShape"].dictionary != nil ? TaskOutputShape(
26+
output: subJson["outputShape"]["output"].dictionary != nil ? Shape(
27+
name: subJson["outputShape"]["output"]["name"].stringValue,
28+
description: subJson["outputShape"]["output"]["description"].stringValue,
29+
type: subJson["outputShape"]["output"]["type"].stringValue
30+
) : nil
31+
) : nil
32+
)
33+
34+
taskTypes.append(taskTypeData)
35+
}
36+
37+
return TaskTypes(types: taskTypes)
38+
}
39+
}
40+
41+
public struct TaskTypeData: Codable {
42+
public let id: String?
43+
public let name: String?
44+
public let description: String?
45+
public let inputShape: TaskInputShape?
46+
public let outputShape: TaskOutputShape?
47+
48+
public init(id: String?, name: String?, description: String?, inputShape: TaskInputShape?, outputShape: TaskOutputShape?) {
49+
self.id = id
50+
self.name = name
51+
self.description = description
52+
self.inputShape = inputShape
53+
self.outputShape = outputShape
54+
}
55+
}
56+
57+
public struct TaskInputShape: Codable {
58+
public let input: Shape?
59+
60+
public init(input: Shape?) {
61+
self.input = input
62+
}
63+
}
64+
65+
public struct TaskOutputShape: Codable {
66+
public let output: Shape?
67+
68+
public init(output: Shape?) {
69+
self.output = output
70+
}
71+
}
72+
73+
public struct Shape: Codable {
74+
public let name: String
75+
public let description: String
76+
public let type: String
77+
78+
public init(name: String, description: String, type: String) {
79+
self.name = name
80+
self.description = description
81+
self.type = type
82+
}
83+
}
84+
85+
86+
87+
88+
89+

0 commit comments

Comments
 (0)