Use strict concurrency checking in Xcode 14 to find misuses with Swift concurrency. Cleanup files and rearrange them along with fixing comment headers. Signed-off-by: kingbri <bdashore3@proton.me>
112 lines
2.8 KiB
Swift
112 lines
2.8 KiB
Swift
//
|
|
// SourceModels.swift
|
|
// Ferrite
|
|
//
|
|
// Created by Brian Dashore on 7/24/22.
|
|
//
|
|
|
|
import Foundation
|
|
|
|
public enum ApiCredentialResponseType: String, Codable, Hashable, Sendable {
|
|
case json
|
|
case text
|
|
}
|
|
|
|
public struct SourceListJson: Codable, Sendable {
|
|
let name: String
|
|
let author: String
|
|
var sources: [SourceJson]
|
|
}
|
|
|
|
public struct SourceJson: Codable, Hashable, Sendable {
|
|
let name: String
|
|
let version: Int16
|
|
let minVersion: String?
|
|
let baseUrl: String?
|
|
let fallbackUrls: [String]?
|
|
var dynamicBaseUrl: Bool?
|
|
var author: String?
|
|
var listId: UUID?
|
|
let trackers: [String]?
|
|
let api: SourceApiJson?
|
|
let jsonParser: SourceJsonParserJson?
|
|
let rssParser: SourceRssParserJson?
|
|
let htmlParser: SourceHtmlParserJson?
|
|
}
|
|
|
|
public enum SourcePreferredParser: Int16, CaseIterable, Sendable {
|
|
// case none = 0
|
|
case scraping = 1
|
|
case rss = 2
|
|
case siteApi = 3
|
|
}
|
|
|
|
public struct SourceApiJson: Codable, Hashable, Sendable {
|
|
let apiUrl: String?
|
|
let clientId: SourceApiCredentialJson?
|
|
let clientSecret: SourceApiCredentialJson?
|
|
}
|
|
|
|
public struct SourceApiCredentialJson: Codable, Hashable, Sendable {
|
|
let query: String?
|
|
let value: String?
|
|
let dynamic: Bool?
|
|
let url: String?
|
|
let responseType: ApiCredentialResponseType?
|
|
let expiryLength: Double?
|
|
}
|
|
|
|
public struct SourceJsonParserJson: Codable, Hashable, Sendable {
|
|
let searchUrl: String
|
|
let results: String?
|
|
let subResults: String?
|
|
let magnetHash: SouceComplexQueryJson?
|
|
let magnetLink: SouceComplexQueryJson?
|
|
let title: SouceComplexQueryJson?
|
|
let size: SouceComplexQueryJson?
|
|
let sl: SourceSLJson?
|
|
}
|
|
|
|
public struct SourceRssParserJson: Codable, Hashable, Sendable {
|
|
let rssUrl: String?
|
|
let searchUrl: String
|
|
let items: String
|
|
let magnetHash: SouceComplexQueryJson?
|
|
let magnetLink: SouceComplexQueryJson?
|
|
let title: SouceComplexQueryJson?
|
|
let size: SouceComplexQueryJson?
|
|
let sl: SourceSLJson?
|
|
}
|
|
|
|
public struct SourceHtmlParserJson: Codable, Hashable, Sendable {
|
|
let searchUrl: String
|
|
let rows: String
|
|
let magnet: SourceMagnetJson
|
|
let title: SouceComplexQueryJson?
|
|
let size: SouceComplexQueryJson?
|
|
let sl: SourceSLJson?
|
|
}
|
|
|
|
public struct SouceComplexQueryJson: Codable, Hashable, Sendable {
|
|
let query: String
|
|
let discriminator: String?
|
|
let attribute: String?
|
|
let regex: String?
|
|
}
|
|
|
|
public struct SourceMagnetJson: Codable, Hashable, Sendable {
|
|
let query: String
|
|
let attribute: String
|
|
let regex: String?
|
|
let externalLinkQuery: String?
|
|
}
|
|
|
|
public struct SourceSLJson: Codable, Hashable, Sendable {
|
|
let seeders: String?
|
|
let leechers: String?
|
|
let combined: String?
|
|
let attribute: String?
|
|
let discriminator: String?
|
|
let seederRegex: String?
|
|
let leecherRegex: String?
|
|
}
|