mirror of
https://github.com/Ferrite-iOS/Ferrite.git
synced 2026-01-11 20:10:27 +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 }
|
||||
}
|
||||
|
||||
@Published var selectedDebridSource: DebridSource?
|
||||
@Published var selectedDebridSource: DebridSource? {
|
||||
didSet {
|
||||
UserDefaults.standard.set(selectedDebridSource?.id ?? "", forKey: "Debrid.PreferredService")
|
||||
}
|
||||
}
|
||||
var selectedDebridItem: DebridIA?
|
||||
var selectedDebridFile: DebridIAFile?
|
||||
|
||||
|
|
@ -102,45 +106,36 @@ public class DebridManager: ObservableObject {
|
|||
var premiumizeCloudTTL: Double = 0.0
|
||||
|
||||
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
|
||||
let rawPreferredService = UserDefaults.standard.integer(forKey: "Debrid.PreferredService")
|
||||
let legacyPreferredService = DebridType(rawValue: rawPreferredService)
|
||||
selectedDebridSource = self.debridSources.first { $0.id == legacyPreferredService?.toString() }
|
||||
// Set the preferred service. Contains migration logic for earlier versions
|
||||
if let rawPreferredService = UserDefaults.standard.string(forKey: "Debrid.PreferredService") {
|
||||
let debridServiceId: String?
|
||||
|
||||
// If a user has one logged in service, automatically set the preferred service to that one
|
||||
/*
|
||||
if enabledDebrids.count == 1 {
|
||||
selectedDebridType = enabledDebrids.first
|
||||
if let preferredServiceInt = Int(rawPreferredService) {
|
||||
debridServiceId = migratePreferredService(preferredServiceInt)
|
||||
} else {
|
||||
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
|
||||
// Login cleanup function that's automatically run to switch to the new login system
|
||||
public func cleanupOldLogins() async {
|
||||
let realDebridEnabled = UserDefaults.standard.bool(forKey: "RealDebrid.Enabled")
|
||||
if realDebridEnabled {
|
||||
enabledDebrids.insert(.realDebrid)
|
||||
UserDefaults.standard.set(false, forKey: "RealDebrid.Enabled")
|
||||
}
|
||||
// TODO: Remove after v0.8.0
|
||||
// Function to migrate the preferred service to the new string ID format
|
||||
public func migratePreferredService(_ idInt: Int) -> String? {
|
||||
// Undo the EnabledDebrids key
|
||||
UserDefaults.standard.removeObject(forKey: "Debrid.EnabledArray")
|
||||
|
||||
let allDebridEnabled = UserDefaults.standard.bool(forKey: "AllDebrid.Enabled")
|
||||
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")
|
||||
}
|
||||
return DebridType(rawValue: idInt)?.toString()
|
||||
}
|
||||
|
||||
// Wrapper function to match error descriptions
|
||||
|
|
|
|||
Loading…
Reference in a new issue