示例#1
0
        protected override RomData ScraperSpecificGetAllData(RomData dataToFillOut)
        {
            string dataTerm = string.Format(getAllDataUrl, dataToFillOut.ScraperUniqueKey, apiKey);
            string finalUrl = string.Format("{0}{1}", rootUrl, dataTerm);
            string results  = MakeTextRequest(finalUrl, headers);

            if (results != string.Empty)
            {
                GiantBombGameResults resultData = SerializationUtilities.DeserializeString <GiantBombGameResults>(results, DataFormat.JSON);
                if (resultData.results != null)
                {
                    var extractedResults = resultData.results;
                    dataToFillOut.Description = extractedResults.deck;
                    if (extractedResults.publishers?.Length > 0)
                    {
                        dataToFillOut.Publisher = extractedResults.publishers[0].name;
                    }
                    if (extractedResults.developers?.Length > 0)
                    {
                        dataToFillOut.Developer = extractedResults.developers[0].name;
                    }
                    dataToFillOut.Rating     = GetRating(extractedResults.reviews);
                    dataToFillOut.NumPlayers = GetNumPlayers(extractedResults.releases);
                    GetImages(dataToFillOut, extractedResults);
                }
            }

            return(dataToFillOut);
        }
        protected override List <RomData> ScraperSpecificSearch(RomData dataToSearchFor)
        {
            string nameTerm   = GenerateSearchableName(dataToSearchFor);
            string searchTerm = string.Format(searchFormat, nameTerm);
            string finalUrl   = String.Format("{0}{1}", searchRootUrl, searchTerm);


            List <RomData> returnData = new List <RomData>();
            String         results    = MakeTextRequest(finalUrl, headers);

            if (results != String.Empty)
            {
                List <IgdbData> resultsData = SerializationUtilities.DeserializeString <List <IgdbData> >(
                    results, DataFormat.JSON, platformConverter, dateConverter);

                foreach (var resultData in resultsData)
                {
                    RomData convertedData = dataToSearchFor.Clone();
                    convertedData.FriendlyName     = resultData.name;
                    convertedData.ScraperUniqueKey = resultData.id;
                    if (resultData.release_dates != null && resultData.release_dates.Count() > 0)
                    {
                        var releaseData = resultData.release_dates[0];
                        convertedData.Console     = releaseData.platform;
                        convertedData.ReleaseDate = releaseData.date;
                    }

                    returnData.Add(convertedData);
                }
            }

            return(returnData);
        }
示例#3
0
        protected override List <RomData> ScraperSpecificSearch(RomData dataToSearchFor)
        {
            List <RomData> returnList = new List <RomData>();
            string         nameTerm   = GenerateSearchableName(dataToSearchFor);
            string         searchTerm = String.Format(searchUrl, apiKey, nameTerm, ConvertConsole(dataToSearchFor.Console));
            string         finalUrl   = String.Format("{0}{1}", rootUrl, searchTerm);

            string results = MakeTextRequest(finalUrl);

            if (!String.IsNullOrEmpty(results))
            {
                MobyGamesSearchResults searchResults = SerializationUtilities.DeserializeString <MobyGamesSearchResults>(results, DataFormat.JSON);
                if (searchResults != null)
                {
                    foreach (var game in searchResults.games)
                    {
                        RomData convertedData = dataToSearchFor.Clone();
                        convertedData.FriendlyName     = game.title;
                        convertedData.ScraperUniqueKey = game.game_id.ToString();
                        returnList.Add(convertedData);
                    }
                }
            }

            return(returnList);
        }
        protected override List <RomData> ScraperSpecificSearch(RomData dataToSearchFor)
        {
            List <RomData> data = new List <RomData>();

            String nameTerm     = GenerateSearchableName(dataToSearchFor);
            String platformTerm = ConvertConsole(dataToSearchFor.Console);
            String searchPage   = String.Format(searchPageformat, nameTerm, platformTerm);
            String finalUrl     = String.Format("{0}{1}", rootUrl, searchPage);

            String results = MakeTextRequest(finalUrl);

            if (results != String.Empty)
            {
                Data resultsData = SerializationUtilities.DeserializeString <Data>(results, DataFormat.XML);
                foreach (var resultData in resultsData.Game)
                {
                    RomData convertedResultData = dataToSearchFor.Clone();
                    convertedResultData.FriendlyName     = resultData.GameTitle;
                    convertedResultData.ScraperUniqueKey = resultData.id;
                    convertedResultData.ReleaseDate      = String.IsNullOrEmpty(resultData.ReleaseDate) ? DateTime.MaxValue : DateTime.Parse(resultData.ReleaseDate);
                    convertedResultData.Console          = ConvertConsole(resultData.Platform);

                    data.Add(convertedResultData);
                }
            }

            return(data);
        }
        protected override RomData ScraperSpecificGetAllData(RomData dataToFillOut)
        {
            string finalUrl = String.Format(getDataFormat, dataToFillOut.ScraperUniqueKey);

            finalUrl = String.Format("{0}{1}", searchRootUrl, finalUrl);
            string Results = MakeTextRequest(finalUrl, headers);

            if (Results != String.Empty)
            {
                IgdbData resultData = SerializationUtilities.DeserializeString <List <IgdbData> >(Results, DataFormat.JSON, gameModeConverter)[0];
                dataToFillOut.Description = String.IsNullOrEmpty(resultData.storyline) ? "No Description Available" : resultData.storyline;
                dataToFillOut.NumPlayers  = resultData.game_modes?.Count() > 0 ? resultData.game_modes[0].NumPlayers : "Unknown";
                dataToFillOut.Rating      = (float)resultData.rating / 100.0f;
                dataToFillOut.Publisher   = RetrieveCompanyInfo(resultData.publishers);
                dataToFillOut.Developer   = RetrieveCompanyInfo(resultData.developers);
                RetrieveImages(dataToFillOut, resultData.screenshots);
            }
            return(dataToFillOut);
        }
        protected override RomData ScraperSpecificGetAllData(RomData dataToFillOut)
        {
            String getDataTerm = String.Format(getDataFormat, dataToFillOut.ScraperUniqueKey);
            String finalUrl    = String.Format("{0}{1}", rootUrl, getDataTerm);
            String results     = MakeTextRequest(finalUrl);

            if (results != String.Empty)
            {
                Data     resultsData = SerializationUtilities.DeserializeString <Data>(results, DataFormat.XML);
                DataGame game        = resultsData.Game[0];
                dataToFillOut.Rating      = String.IsNullOrEmpty(game.Rating) ? 0.0f : float.Parse(game.Rating);
                dataToFillOut.Publisher   = game.Publisher;
                dataToFillOut.Developer   = game.Developer;
                dataToFillOut.Description = game.Overview;
                dataToFillOut.NumPlayers  = game.Players;

                GetImages(dataToFillOut, resultsData, game);
            }
            return(dataToFillOut);
        }
示例#7
0
 private string GetNumPlayers(GiantBombAdditionalDetail[] releases)
 {
     if (releases?.Length > 0)
     {
         string releaseUrl = string.Format("?api_key={0}&format=json&field_list=maximum_players,minimum_players", apiKey);
         string finalUrl   = string.Format("{0}{1}", releases[0].api_detail_url, releaseUrl);
         String results    = MakeTextRequest(finalUrl, headers);
         if (results != String.Empty)
         {
             GiantBombGameResults resultData = SerializationUtilities.DeserializeString <GiantBombGameResults>(results, DataFormat.JSON);
             return(DetermineNumPlayers(resultData));
         }
         else
         {
             return("Unknown");
         }
     }
     else
     {
         return("Unknown");
     }
 }
示例#8
0
        protected override List <RomData> ScraperSpecificSearch(RomData dataToSearchFor)
        {
            List <RomData> returnList = new List <RomData>();
            string         nameTerm   = GenerateSearchableName(dataToSearchFor);
            string         searchTerm = String.Format(searchUrl, apiKey, nameTerm);
            string         finalUrl   = String.Format("{0}{1}", rootUrl, searchTerm);

            string results = MakeTextRequest(finalUrl, headers);

            if (results != String.Empty)
            {
                GiantBombSearchResults resultData = SerializationUtilities.DeserializeString <GiantBombSearchResults>(results, DataFormat.JSON, consoleConverter, dateConverter);
                if (resultData.results != null)
                {
                    foreach (var res in resultData.results)
                    {
                        RomData convertedData = dataToSearchFor.Clone();
                        convertedData.FriendlyName     = res.name;
                        convertedData.ScraperUniqueKey = res.id.ToString();
                        convertedData.ReleaseDate      = res.original_release_date;
                        convertedData.Console          = EmulatorConsoles.UNKNOWN;
                        if (res.platforms?.Length > 0)
                        {
                            foreach (var platform in res.platforms)
                            {
                                convertedData.Console = platform.platform;
                                if (!convertedData.Console.Equals(EmulatorConsoles.UNKNOWN))
                                {
                                    break;
                                }
                            }
                        }
                        returnList.Add(convertedData);
                    }
                }
            }

            return(returnList);
        }
示例#9
0
 private float GetRating(GiantBombAdditionalDetail[] reviews)
 {
     if (reviews?.Length > 0)
     {
         string reviewUrl = string.Format("?api_key={0}&format=json&field_list=score", apiKey);
         string finalUrl  = string.Format("{0}{1}", reviews[0].api_detail_url, reviewUrl);
         String results   = MakeTextRequest(finalUrl, headers);
         if (results != String.Empty)
         {
             GiantBombGameResults resultData = SerializationUtilities.DeserializeString <GiantBombGameResults>(results, DataFormat.JSON);
             return(resultData.results.score * 2);
         }
         else
         {
             return(0.0f);
         }
     }
     else
     {
         return(0.0f);
     }
 }
 private string RetrieveCompanyInfo(long[] ids)
 {
     if (ids.Length > 0)
     {
         string finalUrl = String.Format(getCompanyFormat, ids[0]);
         finalUrl = String.Format("{0}{1}", searchRootUrl, finalUrl);
         string Results = MakeTextRequest(finalUrl, headers);
         if (Results != String.Empty)
         {
             IgdbData resultData = SerializationUtilities.DeserializeString <List <IgdbData> >(Results, DataFormat.JSON, gameModeConverter)[0];
             return(resultData.name);
         }
         else
         {
             return("Unknown");
         }
     }
     else
     {
         return("Unknown");
     }
 }
示例#11
0
        protected override RomData ScraperSpecificGetAllData(RomData dataToFillOut)
        {
            string gameid     = dataToFillOut.ScraperUniqueKey;
            string searchTerm = String.Format(getAllDataUrl, gameid, apiKey);
            string finalUrl   = String.Format("{0}{1}", rootUrl, searchTerm);

            string results = MakeTextRequest(finalUrl);

            if (!String.IsNullOrEmpty(results))
            {
                MobyGamesGetDataResult getDataResult = SerializationUtilities.DeserializeString <MobyGamesGetDataResult>(
                    results, DataFormat.JSON, new MobyGamesReleaseDateConverter(), new MobyGamesConsoleConverter());
                if (getDataResult != null)
                {
                    dataToFillOut.FriendlyName = getDataResult.title;
                    dataToFillOut.Description  = getDataResult.description;
                    dataToFillOut.ReleaseDate  = getDataResult.platforms.Where(f => f.platform_id.Equals(dataToFillOut.Console)).First().first_release_date;
                    dataToFillOut.BoxArt       = MakeImageRequest(getDataResult.sample_cover.image);
                    dataToFillOut.Rating       = getDataResult.moby_score;
                }
            }

            return(dataToFillOut);
        }