refactor: remove built-in provider registry in favor of extensions

All search, metadata, and download providers are now exclusively
supplied by extensions. The built-in provider registry that previously
exposed Deezer/Tidal/Qobuz as hardcoded providers is fully removed.

Removed across Go, Dart, Kotlin, and Swift:
- BuiltInProviderSpec class, registry, and all accessor helpers
- SearchProviderAllJSON, GetBuiltInProvidersJSON, ParseProviderURLJSON,
  ParseDeezerURLExport Go exports and their platform channel bindings
- Built-in provider items in search dropdown, service picker, and
  provider priority UI lists
- provider_ui_utils.dart helper file

Deezer metadata enrichment (ISRC lookup, extended metadata, cover
upgrade) remains fully functional through direct DeezerClient calls
in the download pipeline — these are not part of the provider
registry and are unaffected.

Mark deezer as a retired built-in metadata provider so stale user
priority lists are cleaned up on next launch.
This commit is contained in:
zarzet
2026-05-05 03:55:24 +07:00
parent cfc8e699f3
commit 101ab3f521
49 changed files with 275 additions and 1502 deletions
-23
View File
@@ -458,22 +458,6 @@ import Gobackend // Import Go framework
if let error = error { throw error }
return response
case "searchProviderAll":
let args = call.arguments as! [String: Any]
let providerId = args["provider_id"] as! String
let query = args["query"] as! String
let trackLimit = args["track_limit"] as? Int ?? 15
let artistLimit = args["artist_limit"] as? Int ?? 3
let filter = args["filter"] as? String ?? ""
let response = GobackendSearchProviderAllJSON(providerId, query, Int(trackLimit), Int(artistLimit), filter, &error)
if let error = error { throw error }
return response
case "getBuiltInProviders":
let response = GobackendGetBuiltInProvidersJSON(&error)
if let error = error { throw error }
return response
case "getDeezerRelatedArtists":
let args = call.arguments as! [String: Any]
let artistId = args["artist_id"] as! String
@@ -491,13 +475,6 @@ import Gobackend // Import Go framework
if let error = error { throw error }
return response
case "parseProviderUrl":
let args = call.arguments as! [String: Any]
let url = args["url"] as! String
let response = GobackendParseProviderURLJSON(url, &error)
if let error = error { throw error }
return response
case "searchDeezerByISRC":
let args = call.arguments as! [String: Any]
let isrc = args["isrc"] as! String