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); }
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"); } }
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 DetermineNumPlayers(GiantBombGameResults resultData) { if (resultData.results.maximum_players != null) { if (resultData.results.maximum_players > 4) { return("4+"); } return(resultData.results.maximum_players.ToString()); } else if (resultData.results.minimum_players != null) { if (resultData.results.minimum_players > 4) { return("4+"); } return(resultData.results.minimum_players.ToString()); } else { return("Unknown"); } }