Open Serneum opened 7 years ago
It currently looks like we can get some information on the game from NemeStats, but it would only really be the BoardGameGeek ID. We may need to make a second request to BGG to get the box art, player limits, and play time. We could update the NemeStats API to include the information because it does pull it from BGG
@Serneum I have a question about this, are we simply building a wrapper for the nemestats API, or do we want to also build a wrapper for the BoardGameGeek API? It seems like we could use a separate library for wrapping the BoardGameGeek API and use it to pull out some of this game information.
@daveshah had mentioned trying to get everything from NemeStats so that it's in sync. I've considered getting the BGG game id from NemeStats and then getting the game information from BGG but that's two REST calls that could potentially just be one if NemeStats updates the API. I'm not opposed to either idea
We can also start with a wrapper for both and get that working and go down to just a NemeStats wrapper later. In fact, maybe that's what we should do
@Serneum I added a new function to get games for the group. I'm sure it will help but I don't think it fulfills the acceptance criteria of this issue just yet. Feel free to look at the branch I have started though.
@joelbyler You should rebase instead of merging master into branches. Do you have an example of what information is returned? I don't know if Jake ever added the extra info (box art, etc) into what is returned by the REST services
{
"gameDefinitions": [
{
"gameDefinitionId": 71348,
"gameDefinitionName": "Ancient Terrible Things (2014)",
"active": true,
"boardGameGeekGameDefinitionId": 137031
},
{
"gameDefinitionId": 71349,
"gameDefinitionName": "Antimatter Matters (2013)",
"active": true,
"boardGameGeekGameDefinitionId": 144236
},
{
"gameDefinitionId": 71350,
"gameDefinitionName": "Arkham Horror (2005)",
"active": true,
"boardGameGeekGameDefinitionId": 15987
},
{
"gameDefinitionId": 65496,
"gameDefinitionName": "BANG!",
"active": true,
"boardGameGeekGameDefinitionId": 3955
},
{
"gameDefinitionId": 71360,
"gameDefinitionName": "Beowulf: A Board Game (2015)",
"active": true,
"boardGameGeekGameDefinitionId": 160453
},
{
"gameDefinitionId": 62671,
"gameDefinitionName": "Betrayal at House on the Hill (2004)",
"active": true,
"boardGameGeekGameDefinitionId": 10547
},
{
"gameDefinitionId": 34637,
"gameDefinitionName": "Boss Monster: The Dungeon Building Card Game (2013)",
"active": true,
"boardGameGeekGameDefinitionId": 131835
},
{
"gameDefinitionId": 71266,
"gameDefinitionName": "Cards Against Humanity (2009)",
"active": true,
"boardGameGeekGameDefinitionId": 50381
},
{
"gameDefinitionId": 67050,
"gameDefinitionName": "Codenames",
"active": true,
"boardGameGeekGameDefinitionId": 178900
},
{
"gameDefinitionId": 71351,
"gameDefinitionName": "Convert (2014)",
"active": true,
"boardGameGeekGameDefinitionId": 140236
},
{
"gameDefinitionId": 71352,
"gameDefinitionName": "Cornish Smuggler (2013)",
"active": true,
"boardGameGeekGameDefinitionId": 142451
},
{
"gameDefinitionId": 71268,
"gameDefinitionName": "Cthulhu Dice (2010)",
"active": true,
"boardGameGeekGameDefinitionId": 65611
},
{
"gameDefinitionId": 71353,
"gameDefinitionName": "Cthulhu Wars (2015)",
"active": true,
"boardGameGeekGameDefinitionId": 139976
},
{
"gameDefinitionId": 71354,
"gameDefinitionName": "Dead Men Tell No Tales (2015)",
"active": true,
"boardGameGeekGameDefinitionId": 141423
},
{
"gameDefinitionId": 71269,
"gameDefinitionName": "Deep Space D-6 (2015)",
"active": true,
"boardGameGeekGameDefinitionId": 183571
},
{
"gameDefinitionId": 71270,
"gameDefinitionName": "Dragon's Ransom (2015)",
"active": true,
"boardGameGeekGameDefinitionId": 166710
},
{
"gameDefinitionId": 71271,
"gameDefinitionName": "Exploding Kittens (2015)",
"active": true,
"boardGameGeekGameDefinitionId": 172225
},
{
"gameDefinitionId": 34354,
"gameDefinitionName": "Exploding Kittens: NSFW Deck (2015)",
"active": true,
"boardGameGeekGameDefinitionId": 172242
},
{
"gameDefinitionId": 71355,
"gameDefinitionName": "Fairytale Games: The Battle Royale (2014)",
"active": true,
"boardGameGeekGameDefinitionId": 141636
},
{
"gameDefinitionId": 69600,
"gameDefinitionName": "Gruff",
"active": true,
"boardGameGeekGameDefinitionId": 173804
},
{
"gameDefinitionId": 71356,
"gameDefinitionName": "Hoverkraft (2014)",
"active": true,
"boardGameGeekGameDefinitionId": 169256
},
{
"gameDefinitionId": 67851,
"gameDefinitionName": "Hunters of Arcfall",
"active": true,
"boardGameGeekGameDefinitionId": 142988
},
{
"gameDefinitionId": 71272,
"gameDefinitionName": "IncrediBrawl (2014)",
"active": true,
"boardGameGeekGameDefinitionId": 142653
},
{
"gameDefinitionId": 74868,
"gameDefinitionName": "Joking Hazard (2016)",
"active": true,
"boardGameGeekGameDefinitionId": 193621
},
{
"gameDefinitionId": 34633,
"gameDefinitionName": "Letters to Santa (2012)",
"active": true,
"boardGameGeekGameDefinitionId": 129622
},
{
"gameDefinitionId": 74308,
"gameDefinitionName": "Love Letter",
"active": true,
"boardGameGeekGameDefinitionId": 129622
},
{
"gameDefinitionId": 71357,
"gameDefinitionName": "Mansions of Madness (2011)",
"active": true,
"boardGameGeekGameDefinitionId": 83330
},
{
"gameDefinitionId": 34357,
"gameDefinitionName": "Mascarade (2013)",
"active": true,
"boardGameGeekGameDefinitionId": 139030
},
{
"gameDefinitionId": 71273,
"gameDefinitionName": "Moby Dick, or, The Card Game (2013)",
"active": true,
"boardGameGeekGameDefinitionId": 142584
},
{
"gameDefinitionId": 60223,
"gameDefinitionName": "One Night Ultimate Werewolf",
"active": true,
"boardGameGeekGameDefinitionId": 147949
},
{
"gameDefinitionId": 69599,
"gameDefinitionName": "Pandemic",
"active": true,
"boardGameGeekGameDefinitionId": 30549
},
{
"gameDefinitionId": 72156,
"gameDefinitionName": "Paperback (2014)",
"active": true,
"boardGameGeekGameDefinitionId": 141572
},
{
"gameDefinitionId": 71290,
"gameDefinitionName": "Risk 2210 A.D. (2001)",
"active": true,
"boardGameGeekGameDefinitionId": 1829
},
{
"gameDefinitionId": 71291,
"gameDefinitionName": "Saboteur (2004)",
"active": true,
"boardGameGeekGameDefinitionId": 9220
},
{
"gameDefinitionId": 71292,
"gameDefinitionName": "Saboteur 2 (expansion-only editions) (2011)",
"active": true,
"boardGameGeekGameDefinitionId": 91072
},
{
"gameDefinitionId": 68208,
"gameDefinitionName": "Salem",
"active": true,
"boardGameGeekGameDefinitionId": 175549
},
{
"gameDefinitionId": 68166,
"gameDefinitionName": "Samurai Sword",
"active": true,
"boardGameGeekGameDefinitionId": 128667
},
{
"gameDefinitionId": 71358,
"gameDefinitionName": "Scalawag! (2014)",
"active": true,
"boardGameGeekGameDefinitionId": 140600
},
{
"gameDefinitionId": 67889,
"gameDefinitionName": "Secret Hitler",
"active": true,
"boardGameGeekGameDefinitionId": 188834
},
{
"gameDefinitionId": 71293,
"gameDefinitionName": "Shadow Hunters (2005)",
"active": true,
"boardGameGeekGameDefinitionId": 24068
},
{
"gameDefinitionId": 71295,
"gameDefinitionName": "Slap .45 (2015)",
"active": true,
"boardGameGeekGameDefinitionId": 165633
},
{
"gameDefinitionId": 56061,
"gameDefinitionName": "Small World",
"active": true,
"boardGameGeekGameDefinitionId": 40692
},
{
"gameDefinitionId": 34174,
"gameDefinitionName": "Small World: Cursed! (2009)",
"active": true,
"boardGameGeekGameDefinitionId": 57072
},
{
"gameDefinitionId": 34355,
"gameDefinitionName": "Spyfall (2014)",
"active": true,
"boardGameGeekGameDefinitionId": 166384
},
{
"gameDefinitionId": 71297,
"gameDefinitionName": "Strife: Legacy of the Eternals (2014)",
"active": true,
"boardGameGeekGameDefinitionId": 159632
},
{
"gameDefinitionId": 71298,
"gameDefinitionName": "Strife: Shadows and Steam (2016)",
"active": true,
"boardGameGeekGameDefinitionId": 177513
},
{
"gameDefinitionId": 39056,
"gameDefinitionName": "Sushi Go! (2013)",
"active": true,
"boardGameGeekGameDefinitionId": 133473
},
{
"gameDefinitionId": 72155,
"gameDefinitionName": "The Agents (2013)",
"active": true,
"boardGameGeekGameDefinitionId": 141932
},
{
"gameDefinitionId": 71274,
"gameDefinitionName": "The Red Dragon Inn (2007)",
"active": true,
"boardGameGeekGameDefinitionId": 24310
},
{
"gameDefinitionId": 71275,
"gameDefinitionName": "The Red Dragon Inn 2 (2008)",
"active": true,
"boardGameGeekGameDefinitionId": 33451
},
{
"gameDefinitionId": 71276,
"gameDefinitionName": "The Red Dragon Inn 3 (2011)",
"active": true,
"boardGameGeekGameDefinitionId": 66510
},
{
"gameDefinitionId": 71277,
"gameDefinitionName": "The Red Dragon Inn 4 (2013)",
"active": true,
"boardGameGeekGameDefinitionId": 142402
},
{
"gameDefinitionId": 71278,
"gameDefinitionName": "The Red Dragon Inn 5 (2015)",
"active": true,
"boardGameGeekGameDefinitionId": 173634
},
{
"gameDefinitionId": 71288,
"gameDefinitionName": "The Red Dragon Inn: Gambling? I'm In! (2010)",
"active": true,
"boardGameGeekGameDefinitionId": 46530
},
{
"gameDefinitionId": 39693,
"gameDefinitionName": "The Resistance (2009)",
"active": true,
"boardGameGeekGameDefinitionId": 41114
},
{
"gameDefinitionId": 73041,
"gameDefinitionName": "The Resistance: Avalon",
"active": true,
"boardGameGeekGameDefinitionId": 128882
},
{
"gameDefinitionId": 73003,
"gameDefinitionName": "The Resistance: Hostile Intent",
"active": true,
"boardGameGeekGameDefinitionId": 162889
},
{
"gameDefinitionId": 71296,
"gameDefinitionName": "Till Dawn (2014)",
"active": true,
"boardGameGeekGameDefinitionId": 154498
},
{
"gameDefinitionId": 38647,
"gameDefinitionName": "Tsuro (2004)",
"active": true,
"boardGameGeekGameDefinitionId": 16992
},
{
"gameDefinitionId": 71361,
"gameDefinitionName": "We Didn't Playtest This At All (2007)",
"active": true,
"boardGameGeekGameDefinitionId": 31016
},
{
"gameDefinitionId": 71362,
"gameDefinitionName": "We Didn't Playtest This Either (2009)",
"active": true,
"boardGameGeekGameDefinitionId": 42448
},
{
"gameDefinitionId": 71359,
"gameDefinitionName": "Wok Star (2010)",
"active": true,
"boardGameGeekGameDefinitionId": 71655
},
{
"gameDefinitionId": 38241,
"gameDefinitionName": "Zombie Dice (2010)",
"active": true,
"boardGameGeekGameDefinitionId": 62871
}
]
}
Would we then use the boardGameGeekGameDefinitionId
with the BGG client to get the box art, num players, etc?
I think so, yes. I can add the BGG client as a dependency.
Ok, so let's consider this done as the NemeStats client should just be a wrapper for NemeStats and not involve BGG at all. The game library can use both if we decide to go that route
Will close once you create a PR