示例#1
0
        private List <SearchResult> SearchGames(string keyword, MetadataProvider provider)
        {
            var searchList = new List <SearchResult>();

            switch (provider)
            {
            case MetadataProvider.Wiki:
                var wiki = new Wikipedia();
                foreach (var page in wiki.Search(keyword))
                {
                    searchList.Add(new SearchResult(page.title, page.title, page.snippet));
                }

                break;

            case MetadataProvider.IGDB:
                var igdb = new IGDB();
                foreach (var page in igdb.Search(keyword))
                {
                    searchList.Add(new SearchResult(page.id.ToString(), page.name, string.Empty));
                }

                break;
            }

            return(searchList);
        }
示例#2
0
        public override string ToString()
        {
            List <string> items = new List <string>(8);   // up to 8 items in list

            items.Add(ID.ToJSONString().ToJSONEntry("_id"));
            if (IGDB != -1)
            {
                items.Add(IGDB.ToJSONString().ToJSONEntry("igdb_id"));
            }
            items.Add(Genres.ToJSONString().ToJSONEntry("genres"));
            items.Add(Name.ToJSONString().ToJSONEntry("name"));
            items.Add(Slug.ToJSONString().ToJSONEntry("slug"));
            items.Add(Summary.ToJSONString().ToJSONEntry("summary"));
            items.Add(CoverURL.ToJSONString().ToJSONEntry("cover"));
            items.Add(Type.ToJSONString().ToJSONEntry("type"));
            return(items.TOJSONEntry());

            /*
             * string format = "{{" +
             *              "\"_id\": {0}," +
             *              "\"igdb_id\": {1}," +
             *              "\"genres\": {2}," +
             *              "\"name\": {3}," +
             *              "\"slug\": {4}," +
             *              "\"summary\": {5}," +
             *              "\"cover\": {6}," +
             *              "\"type\": {7}" +
             *              "}}";
             * return string.Format(format,
             *              ID.ToJSONString(),
             *              IGDB.ToJSONString(),
             *              Genres.ToJSONString(),
             *              Name.ToJSONString(),
             *              Slug.ToJSONString(),
             *              Summary.ToJSONString(),
             *              CoverURL.ToJSONString(),
             *              Type.ToJSONString());
             */
        }
示例#3
0
        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();
                });
            });
        }