Debrid: Migrate preferred service setter

PreferredService is now the debrid ID.

Signed-off-by: kingbri <bdashore3@proton.me>
This commit is contained in:
kingbri 2024-06-06 11:51:43 -04:00
parent 02636e0bda
commit 59ac719d9a

View file

@ -26,7 +26,11 @@ public class DebridManager: ObservableObject {
debridSources.contains { $0.isLoggedIn } debridSources.contains { $0.isLoggedIn }
} }
@Published var selectedDebridSource: DebridSource? @Published var selectedDebridSource: DebridSource? {
didSet {
UserDefaults.standard.set(selectedDebridSource?.id ?? "", forKey: "Debrid.PreferredService")
}
}
var selectedDebridItem: DebridIA? var selectedDebridItem: DebridIA?
var selectedDebridFile: DebridIAFile? var selectedDebridFile: DebridIAFile?
@ -102,45 +106,36 @@ public class DebridManager: ObservableObject {
var premiumizeCloudTTL: Double = 0.0 var premiumizeCloudTTL: Double = 0.0
init() { init() {
if let rawDebridList = UserDefaults.standard.string(forKey: "Debrid.EnabledArray"),
let serializedDebridList = Set<DebridType>(rawValue: rawDebridList)
{
enabledDebrids = serializedDebridList
}
// If a UserDefaults integer isn't set, it's usually 0 // Set the preferred service. Contains migration logic for earlier versions
let rawPreferredService = UserDefaults.standard.integer(forKey: "Debrid.PreferredService") if let rawPreferredService = UserDefaults.standard.string(forKey: "Debrid.PreferredService") {
let legacyPreferredService = DebridType(rawValue: rawPreferredService) let debridServiceId: String?
selectedDebridSource = self.debridSources.first { $0.id == legacyPreferredService?.toString() }
// If a user has one logged in service, automatically set the preferred service to that one if let preferredServiceInt = Int(rawPreferredService) {
/* debridServiceId = migratePreferredService(preferredServiceInt)
if enabledDebrids.count == 1 { } else {
selectedDebridType = enabledDebrids.first print(rawPreferredService)
debridServiceId = rawPreferredService
}
// Only set the debrid source if it's logged in
// Otherwise remove the key
let tempDebridSource = self.debridSources.first { $0.id == debridServiceId }
if (tempDebridSource?.isLoggedIn ?? false) {
selectedDebridSource = tempDebridSource
} else {
UserDefaults.standard.removeObject(forKey: "Debrid.PreferredService")
}
} }
*/
} }
// TODO: Remove this after v0.6.0 // TODO: Remove after v0.8.0
// Login cleanup function that's automatically run to switch to the new login system // Function to migrate the preferred service to the new string ID format
public func cleanupOldLogins() async { public func migratePreferredService(_ idInt: Int) -> String? {
let realDebridEnabled = UserDefaults.standard.bool(forKey: "RealDebrid.Enabled") // Undo the EnabledDebrids key
if realDebridEnabled { UserDefaults.standard.removeObject(forKey: "Debrid.EnabledArray")
enabledDebrids.insert(.realDebrid)
UserDefaults.standard.set(false, forKey: "RealDebrid.Enabled")
}
let allDebridEnabled = UserDefaults.standard.bool(forKey: "AllDebrid.Enabled") return DebridType(rawValue: idInt)?.toString()
if allDebridEnabled {
enabledDebrids.insert(.allDebrid)
UserDefaults.standard.set(false, forKey: "AllDebrid.Enabled")
}
let premiumizeEnabled = UserDefaults.standard.bool(forKey: "Premiumize.Enabled")
if premiumizeEnabled {
enabledDebrids.insert(.premiumize)
UserDefaults.standard.set(false, forKey: "Premiumize.Enabled")
}
} }
// Wrapper function to match error descriptions // Wrapper function to match error descriptions