ElixirCLE / nemestats_client

3 stars 2 forks source link

Can I retrieve game information from NemeStats? #3

Open Serneum opened 7 years ago

Serneum commented 7 years ago
Serneum commented 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 commented 7 years ago

I've opened an issue in NemeStats

joelbyler commented 7 years ago

@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.

Serneum commented 7 years ago

@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

Serneum commented 7 years ago

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

joelbyler commented 7 years ago

@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.

Serneum commented 7 years ago

@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

Serneum commented 7 years ago
{
    "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?

joelbyler commented 7 years ago

I think so, yes. I can add the BGG client as a dependency.

Serneum commented 7 years ago

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

Serneum commented 7 years ago

Will close once you create a PR