示例#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);
        }
示例#2
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");
     }
 }
示例#3
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);
     }
 }
示例#4
0
 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");
     }
 }