diff --git a/Marechai.App/Presentation/ViewModels/Admin/WwpcImportModels.cs b/Marechai.App/Presentation/ViewModels/Admin/WwpcImportModels.cs index 1bb83e5b..329f3145 100644 --- a/Marechai.App/Presentation/ViewModels/Admin/WwpcImportModels.cs +++ b/Marechai.App/Presentation/ViewModels/Admin/WwpcImportModels.cs @@ -79,10 +79,24 @@ public sealed partial class WwpcScreenshotDecisionItem : ObservableObject public string ImageUrl { get; init; } = string.Empty; public string OriginalCaption { get; init; } = string.Empty; + public string ThumbnailUrl => AbsoluteWwpcUrl(ImageUrl); + public string SourcePageUrl => AbsoluteWwpcUrl(SourceUrl); + public bool HasThumbnail => !string.IsNullOrWhiteSpace(ThumbnailUrl); + [ObservableProperty] private bool _include; [ObservableProperty] private string _captionOverride = string.Empty; [ObservableProperty] private SoftwarePlatformDto? _platform; [ObservableProperty] private WwpcVersionDecisionItem? _linkedVersion; + + private static string AbsoluteWwpcUrl(string? url) + { + if(string.IsNullOrWhiteSpace(url)) return string.Empty; + if(url.StartsWith("http://", StringComparison.OrdinalIgnoreCase) || + url.StartsWith("https://", StringComparison.OrdinalIgnoreCase)) + return url; + + return "https://winworldpc.com" + (url.StartsWith('/') ? url : "/" + url); + } } public sealed partial class WwpcGenreChipItem : ObservableObject diff --git a/Marechai.App/Presentation/Views/Admin/AdminWwpcImportReviewPage.xaml b/Marechai.App/Presentation/Views/Admin/AdminWwpcImportReviewPage.xaml index f6bece49..18dfa5e8 100644 --- a/Marechai.App/Presentation/Views/Admin/AdminWwpcImportReviewPage.xaml +++ b/Marechai.App/Presentation/Views/Admin/AdminWwpcImportReviewPage.xaml @@ -419,6 +419,30 @@ + + + + + + + + + + + + diff --git a/Marechai.App/Presentation/Views/Admin/AdminWwpcImportReviewPage.xaml.cs b/Marechai.App/Presentation/Views/Admin/AdminWwpcImportReviewPage.xaml.cs index 84b49560..8f11e55f 100644 --- a/Marechai.App/Presentation/Views/Admin/AdminWwpcImportReviewPage.xaml.cs +++ b/Marechai.App/Presentation/Views/Admin/AdminWwpcImportReviewPage.xaml.cs @@ -64,8 +64,8 @@ public sealed partial class AdminWwpcImportReviewPage : Page private async void OpenScreenshotSource_Click(object sender, RoutedEventArgs e) { if((sender as HyperlinkButton)?.CommandParameter is not WwpcScreenshotDecisionItem item) return; - if(string.IsNullOrWhiteSpace(item.ImageUrl)) return; - if(Uri.TryCreate(item.ImageUrl, UriKind.Absolute, out Uri? uri)) + if(string.IsNullOrWhiteSpace(item.SourcePageUrl)) return; + if(Uri.TryCreate(item.SourcePageUrl, UriKind.Absolute, out Uri? uri)) await Launcher.LaunchUriAsync(uri); } }