mirror of
https://github.com/Ferrite-iOS/Ferrite.git
synced 2026-04-21 08:52:00 +00:00
Debrid: Migrate preferred service setter
PreferredService is now the debrid ID. Signed-off-by: kingbri <bdashore3@proton.me>
This commit is contained in:
parent
02636e0bda
commit
59ac719d9a
1 changed files with 29 additions and 34 deletions
|
|
@ -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
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue