maed TMDB default + image size selector

This commit is contained in:
Francesco 2025-06-01 18:01:51 +02:00
parent c3e000da9d
commit c95c249843
3 changed files with 39 additions and 15 deletions

View file

@ -219,13 +219,13 @@ struct EpisodeCell: View {
.onAppear {
updateProgress()
updateDownloadStatus()
if UserDefaults.standard.string(forKey: "metadataProviders") ?? "Anilist" == "AniList" {
if UserDefaults.standard.string(forKey: "metadataProviders") ?? "TMDB" == "TMDB" {
DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) {
fetchAnimeEpisodeDetails()
fetchTMDBEpisodeImage()
}
} else {
DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) {
fetchTMDBEpisodeImage()
fetchAnimeEpisodeDetails()
}
}
@ -778,14 +778,16 @@ struct EpisodeCell: View {
let episodeNum = episodeID + 1
let urlString = "https://api.themoviedb.org/3/tv/\(tmdbID)/season/\(season)/episode/\(episodeNum)?api_key=738b4edd0a156cc126dc4a4b8aea4aca"
guard let url = URL(string: urlString) else { return }
let tmdbImageWidth = UserDefaults.standard.string(forKey: "tmdbImageWidth") ?? "w780"
URLSession.custom.dataTask(with: url) { data, _, error in
guard let data = data, error == nil else { return }
do {
if let json = try JSONSerialization.jsonObject(with: data) as? [String: Any] {
let name = json["name"] as? String ?? ""
let stillPath = json["still_path"] as? String
let imageUrl = stillPath != nil ? "https://image.tmdb.org/t/p/w780\(stillPath!)" : ""
let imageUrl = stillPath != nil ? "https://image.tmdb.org/t/p/\(tmdbImageWidth)\(stillPath!)" : ""
DispatchQueue.main.async {
self.episodeTitle = name
self.episodeImageUrl = imageUrl

View file

@ -779,7 +779,7 @@ struct MediaInfoView: View {
}
private func fetchMetadataIDIfNeeded() {
let provider = UserDefaults.standard.string(forKey: "metadataProviders") ?? "Anilist"
let provider = UserDefaults.standard.string(forKey: "metadataProviders") ?? "TMDB"
let cleaned = cleanTitle(title)
if provider == "TMDB" {
tmdbID = nil

View file

@ -153,12 +153,14 @@ struct SettingsViewGeneral: View {
@AppStorage("refreshModulesOnLaunch") private var refreshModulesOnLaunch: Bool = true
@AppStorage("fetchEpisodeMetadata") private var fetchEpisodeMetadata: Bool = true
@AppStorage("analyticsEnabled") private var analyticsEnabled: Bool = false
@AppStorage("metadataProviders") private var metadataProviders: String = "AniList"
@AppStorage("metadataProviders") private var metadataProviders: String = "TMDB"
@AppStorage("tmdbImageWidth") private var TMDBimageWidht: String = "w780"
@AppStorage("mediaColumnsPortrait") private var mediaColumnsPortrait: Int = 2
@AppStorage("mediaColumnsLandscape") private var mediaColumnsLandscape: Int = 4
@AppStorage("currentAppIcon") private var currentAppIcon = "Default"
private let metadataProvidersList = ["AniList", "TMDB"]
private let TMDBimageWidhtList = ["w300", "w500", "w780", "w1280", "original"]
private let sortOrderOptions = ["Ascending", "Descending"]
@EnvironmentObject var settings: Settings
@State private var showAppIconPicker = false
@ -222,14 +224,34 @@ struct SettingsViewGeneral: View {
isOn: $fetchEpisodeMetadata
)
SettingsPickerRow(
icon: "server.rack",
title: "Metadata Provider",
options: metadataProvidersList,
optionToString: { $0 },
selection: $metadataProviders,
showDivider: false
)
if metadataProviders == "TMDB" {
SettingsPickerRow(
icon: "server.rack",
title: "Metadata Provider",
options: metadataProvidersList,
optionToString: { $0 },
selection: $metadataProviders,
showDivider: true
)
SettingsPickerRow(
icon: "square.stack.3d.down.right",
title: "Thumbnails Width",
options: TMDBimageWidhtList,
optionToString: { $0 },
selection: $TMDBimageWidht,
showDivider: false
)
} else {
SettingsPickerRow(
icon: "server.rack",
title: "Metadata Provider",
options: metadataProvidersList,
optionToString: { $0 },
selection: $metadataProviders,
showDivider: false
)
}
}
SettingsSection(