RealDebrid saves a user's unrestricted links and "torrents" (magnet links in this case). Add the ability to see and queue a user's RD library in Ferrite itself. This required a further abstraction of the debrid manager to allow for more types other than search results to be passed to various functions. Deleting an item from RD's cloud list deletes the item from RD as well. NOTE: This does not track download progress, but it does show if a magnet is currently being downloaded or not. Signed-off-by: kingbri <bdashore3@proton.me>
41 lines
974 B
Swift
41 lines
974 B
Swift
//
|
|
// DebridManagerModels.swift
|
|
// Ferrite
|
|
//
|
|
// Created by Brian Dashore on 11/27/22.
|
|
//
|
|
|
|
import Foundation
|
|
|
|
// MARK: - Universal IA enum (IA = InstantAvailability)
|
|
|
|
public enum IAStatus: Codable, Hashable, Sendable {
|
|
case full
|
|
case partial
|
|
case none
|
|
}
|
|
|
|
// MARK: - Enum for debrid differentiation. 0 is nil
|
|
|
|
public enum DebridType: Int, Codable, Hashable, CaseIterable {
|
|
case realDebrid = 1
|
|
case allDebrid = 2
|
|
case premiumize = 3
|
|
|
|
func toString(abbreviated: Bool = false) -> String {
|
|
switch self {
|
|
case .realDebrid:
|
|
return abbreviated ? "RD" : "RealDebrid"
|
|
case .allDebrid:
|
|
return abbreviated ? "AD" : "AllDebrid"
|
|
case .premiumize:
|
|
return abbreviated ? "PM" : "Premiumize"
|
|
}
|
|
}
|
|
}
|
|
|
|
// Wrapper struct for magnet links to contain both the link and hash for easy access
|
|
public struct Magnet: Codable, Hashable, Sendable {
|
|
let link: String?
|
|
let hash: String
|
|
}
|