mirror of
https://github.com/yattee/yattee.git
synced 2026-05-13 10:55:03 +00:00
Resolve URL shorteners and prompt for ambiguous description links
Tapping bit.ly/tinyurl/t.co/etc. in a description or comment previously opened Safari even when the destination was a playable YouTube URL. Added an opt-in "Resolve Short Links" toggle under YouTube Enhancements (off by default) that follows the redirect on tap: if the target is a YouTube/PeerTube/direct-media URL, open it in-app; otherwise prompt the user before falling back to yt-dlp extraction or the browser. Also added a confirmation dialog for non-shortener links that only matched the loose .externalVideo yt-dlp fallback, so arbitrary web pages in descriptions no longer silently kick off extraction. Prompts live on NavigationCoordinator and are dual-hosted by YatteeApp and ExpandedPlayerSheet so they remain visible whether or not the expanded player is covering the main view.
This commit is contained in:
@@ -16,6 +16,7 @@ struct YouTubeEnhancementsSettingsView: View {
|
||||
SponsorBlockSection(settings: settings)
|
||||
ReturnYouTubeDislikeSection(settings: settings)
|
||||
DeArrowSection(settings: settings)
|
||||
ResolveShortLinksSection(settings: settings)
|
||||
}
|
||||
}
|
||||
#if !os(tvOS)
|
||||
@@ -93,6 +94,21 @@ private struct DeArrowSection: View {
|
||||
}
|
||||
}
|
||||
|
||||
// MARK: - Resolve Short Links Section
|
||||
|
||||
private struct ResolveShortLinksSection: View {
|
||||
@Bindable var settings: SettingsManager
|
||||
|
||||
var body: some View {
|
||||
SettingsFormSection(footer: "settings.youtubeEnhancements.resolveShortLinks.footer") {
|
||||
Toggle(
|
||||
String(localized: "settings.resolveShortLinks.title"),
|
||||
isOn: $settings.resolveShortLinksEnabled
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#Preview {
|
||||
NavigationStack {
|
||||
YouTubeEnhancementsSettingsView()
|
||||
|
||||
Reference in New Issue
Block a user