meraki-analytics / cassiopeia

An all-inclusive Python framework for the Riot Games League of Legends API. Cass focuses on making the data easy and fun to work with, while providing all the tools necessary to create a website or do data analysis.
MIT License
553 stars 134 forks source link

Teamfight Tactics support? #319

Closed JamesYouL2 closed 3 years ago

JamesYouL2 commented 4 years ago

I'm not sure how to call the TFT api using Cassiopeia. Is this supported?

jjmaldonis commented 4 years ago

Unfortunately it isn't. Let's leave this issue open, and if people read this and would use TFT support, please give this comment a thumbs up. I'll look at it every once in a while, and if there is a lot of desire I'll prioritize it higher :)

hustincao commented 4 years ago

Hello! I'm new to open source contribution and would like to try my hand at it. If possible, can I check this out?

jjmaldonis commented 4 years ago

@hustincao That would be fantastic! Cass is complicated to wrap your head around, not going to lie, but it's got some really cool stuff going on behind the scenes that you might find cool once you dive in.

Here are a couple relevant dependencies that we've created that you'll run into eventually: https://github.com/meraki-analytics/merakicommons/blob/master/merakicommons/ghost.py is used in https://github.com/meraki-analytics/cassiopeia/blob/master/cassiopeia/datastores/ghost.py and https://github.com/meraki-analytics/datapipelines-python is used in https://github.com/meraki-analytics/cassiopeia/tree/master/cassiopeia/datastores/riotapi

"Ghost" objects are essentially shells of an object, and contain only enough data so that the object knows how to load itself. When a piece of data is accessed that the object doesn't have yet, it will load that data into itself using the "shell" data it was instantiated with.

The datapipeline handles loading all data from the Riot API, and any other data source that you may want to use (databases, files, etc). You'll likely only need to worry about the Riot API, so check out that folder in our repo.

The code has a lot of boilerplate, and even after writing it I still struggle to follow it half the time. Once you figure out how the boilerplate stuff works, it'll likely be a more enjoyable development experience haha!

Rob and I are pretty active on the Riot API discord, and we have one of our own as well, so feel free to pop by and @ us or message us. Happy to answer questions and even jump on a call if you want a run down of how things work.

hustincao commented 4 years ago

Thanks for the insight! I was taking a look into some of it (only for a short bit). I also tried looking for your discord server and your discord in the Riot API but couldn't find them. Where could I get this info?

jjmaldonis commented 4 years ago

@ me on discord @Kalturi in the Riot API server. Here's our meraki server: https://discord.gg/uYW7qhP

EDIT: My bad @ Kalturi! You stole my name tho!

Crimack commented 4 years ago

I've had a little go at this, which might hopefully get the ball rolling. If I find a bit more time I'll have a go at the match API next!

jjmaldonis commented 3 years ago

Closing this, see #338