From 4f2801b739070a40bf85739e3cc725b0b13b75fa Mon Sep 17 00:00:00 2001 From: Oleksii Holub <1935960+Tyrrrz@users.noreply.github.com> Date: Fri, 23 Aug 2024 02:40:27 +0300 Subject: [PATCH] Always treat queries that start with `?` as search queries (#489) --- .../Resolving/QueryResolver.cs | 16 +++++++++++----- .../Views/Components/DashboardView.axaml | 1 + 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/YoutubeDownloader.Core/Resolving/QueryResolver.cs b/YoutubeDownloader.Core/Resolving/QueryResolver.cs index 11a0326..05791c8 100644 --- a/YoutubeDownloader.Core/Resolving/QueryResolver.cs +++ b/YoutubeDownloader.Core/Resolving/QueryResolver.cs @@ -111,11 +111,17 @@ public class QueryResolver(IReadOnlyList? initialCookies = null) public async Task ResolveAsync( string query, CancellationToken cancellationToken = default - ) => - await TryResolvePlaylistAsync(query, cancellationToken) - ?? await TryResolveVideoAsync(query, cancellationToken) - ?? await TryResolveChannelAsync(query, cancellationToken) - ?? await ResolveSearchAsync(query, cancellationToken); + ) + { + // If the query starts with a question mark, it's always treated as a search query + if (query.StartsWith('?')) + return await ResolveSearchAsync(query[1..], cancellationToken); + + return await TryResolvePlaylistAsync(query, cancellationToken) + ?? await TryResolveVideoAsync(query, cancellationToken) + ?? await TryResolveChannelAsync(query, cancellationToken) + ?? await ResolveSearchAsync(query, cancellationToken); + } public async Task ResolveAsync( IReadOnlyList queries, diff --git a/YoutubeDownloader/Views/Components/DashboardView.axaml b/YoutubeDownloader/Views/Components/DashboardView.axaml index 98ef0e2..40cccbb 100644 --- a/YoutubeDownloader/Views/Components/DashboardView.axaml +++ b/YoutubeDownloader/Views/Components/DashboardView.axaml @@ -27,6 +27,7 @@ ScrollViewer.HorizontalScrollBarVisibility="Hidden" Text="{Binding Query}" Theme="{DynamicResource SoloTextBox}" + ToolTip.Tip="Any valid YouTube URL or ID is accepted. Prepend a question mark (?) to perform search by text." Watermark="URL or search query">