private void ButtonOK_Click(object sender, RoutedEventArgs e) { var id = ((SearchResult)ListSearch.SelectedItem).Id; Task.Factory.StartNew(() => { TextDownloading.Dispatcher.Invoke(() => { ListSearch.Visibility = Visibility.Hidden; TextDownloading.Visibility = Visibility.Visible; ButtonOK.IsEnabled = false; ButtonCancel.IsEnabled = false; }); try { switch (provider) { case MetadataProvider.Wiki: var wiki = new Wikipedia(); var page = wiki.GetPage(id); MetadataData = wiki.ParseGamePage(page, searchTerm); break; case MetadataProvider.IGDB: var igdb = new IGDB(); MetadataData = igdb.GetParsedGame(UInt64.Parse(id)); break; } } catch (Exception exc) { #if DEBUG logger.Error(exc, "Failed to download metadata from meta page."); #else logger.Warn(exc, "Failed to download metadata from meta page."); #endif Dispatcher.Invoke(() => { PlayniteMessageBox.Show("Didn't found any relevant information about game \"" + searchTerm + "\" on specified page."); }); TextDownloading.Dispatcher.Invoke(() => { ListSearch.Visibility = Visibility.Visible; TextDownloading.Visibility = Visibility.Hidden; ButtonOK.IsEnabled = true; ButtonCancel.IsEnabled = true; }); return; } Dispatcher.Invoke(() => { DialogResult = true; Close(); }); }); }
public void ParseGamePage_MetadataParsingTest() { var wiki = new Wikipedia(); // Standard page var game = wiki.ParseGamePage(wiki.GetPage("Guild Wars 2")); ValidateGameDate(game); ValidateBoxArt(game); // Without title in info box game = wiki.ParseGamePage(wiki.GetPage("Kingpin: Life of Crime")); ValidateGameDate(game); ValidateBoxArt(game); // Multiple release dates game = wiki.ParseGamePage(wiki.GetPage("Command & Conquer: Red Alert")); ValidateGameDate(game); ValidateBoxArt(game); // Multiple developers game = wiki.ParseGamePage(wiki.GetPage("Counter-Strike: Global Offensive")); ValidateGameDate(game); ValidateBoxArt(game); // Different page laytout game = wiki.ParseGamePage(wiki.GetPage("Quake III Arena")); ValidateGameDate(game); ValidateBoxArt(game); // Multiple property tables game = wiki.ParseGamePage(wiki.GetPage("Lotus_(series)"), "Lotus Turbo Challenge 2"); ValidateGameDate(game); ValidateBoxArt(game); game = wiki.ParseGamePage(wiki.GetPage("TrackMania"), "TrackMania United"); ValidateGameDate(game); ValidateBoxArt(game); // No image game = wiki.ParseGamePage(wiki.GetPage("State of War (video game)")); ValidateGameDate(game); // Different formats game = wiki.ParseGamePage(wiki.GetPage("Dungeon Siege")); ValidateGameDate(game); game = wiki.ParseGamePage(wiki.GetPage("MotoGP 3: Ultimate Racing Technology")); ValidateGameDate(game); game = wiki.ParseGamePage(wiki.GetPage("Quake 4")); ValidateGameDate(game); game = wiki.ParseGamePage(wiki.GetPage("DEFCON (video game)")); ValidateGameDate(game); game = wiki.ParseGamePage(wiki.GetPage("Kid Chaos (video game)")); ValidateGameDate(game); game = wiki.ParseGamePage(wiki.GetPage("StarCraft II: Wings of Liberty")); ValidateGameDate(game); game = wiki.ParseGamePage(wiki.GetPage("V-Rally")); ValidateGameDate(game); }