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); }
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); }
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"); } }
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); }
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"); } }
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); }