Skip to content

Instantly share code, notes, and snippets.

@Scub3d
Forked from brcooley/api-lolesports-com_docs.md
Last active March 4, 2020 19:49
Show Gist options
  • Select an option

  • Save Scub3d/0523abc590028ff0e2fd6fda0fb4fa48 to your computer and use it in GitHub Desktop.

Select an option

Save Scub3d/0523abc590028ff0e2fd6fda0fb4fa48 to your computer and use it in GitHub Desktop.

Revisions

  1. Spenser Solys revised this gist Sep 27, 2016. 2 changed files with 0 additions and 181 deletions.
    2 changes: 0 additions & 2 deletions .gitignore
    Original file line number Diff line number Diff line change
    @@ -1,2 +0,0 @@
    # All json files
    *.json
    179 changes: 0 additions & 179 deletions riotAPICaller.py
    Original file line number Diff line number Diff line change
    @@ -1,179 +0,0 @@
    import json, requests

    # Start of request functions

    def getLeagues(_id=None, slug=None):
    if(_id == None and slug == None):
    r = requests.get("http://api.lolesports.com/api/v1/leagues").json()
    elif(_id == None and slug != None):
    r = requests.get("http://api.lolesports.com/api/v1/leagues?slug=" + str(slug)).json()
    elif(_id != None and slug == None):
    r = requests.get("http://api.lolesports.com/api/v1/leagues?id=" + str(_id)).json()
    elif(_id != None and slug != None):
    r = requests.get("http://api.lolesports.com/api/v1/leagues?id=" + str(_id) + "?slug=" + str(slug)).json()
    return r

    def getScheduleItems(leagueId):
    r = requests.get("http://api.lolesports.com/api/v1/scheduleItems?leagueId=" + str(leagueId)).json()
    return r

    def getTeam(slug, tournamentId):
    r = requests.get("http://api.lolesports.com/api/v1/teams?slug=" + str(slug) + "&tournament=" + str(tournamentId)).json()
    return r

    def getPlayer(slug, tournamentId):
    r = requests.get("http://api.lolesports.com/api/v1/players?slug=" + str(slug) + "&tournament=" + str(tournamentId)).json()
    return r

    def getTournaments(leagueId):
    r = requests.get("http://api.lolesports.com/api/v2/highlanderTournaments?league=" + str(leagueId)).json()
    return r

    def getMatchDetails(tournamentId, matchId):
    r = requests.get("http://api.lolesports.com/api/v2/highlanderMatchDetails?tournamentId=" + str(tournamentId) + "&matchId=" + str(matchId)).json()
    return r

    def getPlayerStats(tournamentId):
    r = requests.get("http://api.lolesports.com/api/v2/tournamentPlayerStats?tournamentId=" + str(tournamentId)).json()
    return r

    def getArticles(language=None, _from=None):
    if(language == None and _from == None):
    r = requests.get("http://api.lolesports.com/api/v1/articles").json()
    elif(language == None and _from != None):
    r = requests.get("http://api.lolesports.com/api/v1/articles?from=" + str(_from)).json()
    elif(language != None and _from == None):
    r = requests.get("http://api.lolesports.com/api/v1/articles?language=" + str(language)).json()
    elif(language != None and _from != None):
    r = requests.get("http://api.lolesports.com/api/v1/articles?language=" + str(language) + "?from=" + str(_from)).json()
    return r

    def getMarquees(locale):
    r = requests.get("http://api.lolesports.com/api/v1/marquees?locale=" + locale).json()
    return r

    def getHTMLBlocks():
    r = requests.get("http://api.lolesports.com/api/v1/htmlBlocks").json()
    return r

    def getVideos():
    r = requests.get("http://api.lolesports.com/api/v2/videos").json()
    return r

    def getStreamGroups():
    r = requests.get("http://api.lolesports.com/api/v2/streamgroups").json()
    return r

    def getGameStats(gameRealm, gameId, gameHash):
    r = requests.get("https://acs.leagueoflegends.com/v1/stats/game/" + str(gameRealm) + "/" + str(gameId) + "?gameHash=" + str(gameHash), verify=False).json()
    return r

    def getGameTimeline(gameRealm, gameId, gameHash):
    r = requests.get("https://acs.leagueoflegends.com/v1/stats/game/" + str(gameRealm) + "/" + str(gameId) + "/timeline?gameHash=" + str(gameHash), verify=False).json()
    return r

    # End of request functions
    # Start of URL functions

    def getLeaguesURL(_id=None, slug=None):
    if(_id == None and slug == None):
    return "http://api.lolesports.com/api/v1/leagues"
    elif(_id == None and slug != None):
    return "http://api.lolesports.com/api/v1/leagues?slug=" + str(slug)
    elif(_id != None and slug == None):
    return "http://api.lolesports.com/api/v1/leagues?id=" + str(_id)
    elif(_id != None and slug != None):
    return "http://api.lolesports.com/api/v1/leagues?id=" + str(_id) + "?slug=" + str(slug)

    def getScheduleItemsURL(leagueId):
    return "http://api.lolesports.com/api/v1/scheduleItems?leagueId=" + str(leagueId)

    def getTeamURL(slug, tournamentId):
    return "http://api.lolesports.com/api/v1/teams?slug=" + str(slug) + "&tournament=" + str(tournamentId)

    def getPlayerURL(slug, tournamentId):
    return "http://api.lolesports.com/api/v1/players?slug=" + str(slug) + "&tournament=" + str(tournamentId)

    def getTournamentsURL(leagueId):
    return "http://api.lolesports.com/api/v2/highlanderTournaments?league=" + str(leagueId)

    def getMatchDetailsURL(tournamentId, matchId):
    return "http://api.lolesports.com/api/v2/highlanderMatchDetails?tournamentId=" + str(tournamentId) + "&matchId=" + str(matchId)

    def getPlayerStatsURL(tournamentId):
    return "http://api.lolesports.com/api/v2/tournamentPlayerStats?tournamentId=" + str(tournamentId)

    def getArticlesURL(language=None, _from=None):
    if(language == None and _from == None):
    return "http://api.lolesports.com/api/v1/articles"
    elif(language == None and _from != None):
    return "http://api.lolesports.com/api/v1/articles?from=" + str(_from)
    elif(language != None and _from == None):
    return "http://api.lolesports.com/api/v1/articles?language=" + str(language)
    elif(language != None and _from != None):
    return "http://api.lolesports.com/api/v1/articles?language=" + str(language) + "?from=" + str(_from)

    def getMarqueesURL(locale):
    return "http://api.lolesports.com/api/v1/marquees?locale=" + locale

    def getHTMLBlocksURL():
    return "http://api.lolesports.com/api/v1/htmlBlocks"

    def getVideosURL():
    return "http://api.lolesports.com/api/v2/videos"

    def getStreamGroupsURL():
    return "http://api.lolesports.com/api/v2/streamgroups"

    def getGameStatsURL(gameRealm, gameId, gameHash):
    return "https://acs.leagueoflegends.com/v1/stats/game/" + str(gameRealm) + "/" + str(gameId) + "?gameHash=" + str(gameHash)

    def getGameTimelineURL(gameRealm, gameId, gameHash):
    return "https://acs.leagueoflegends.com/v1/stats/game/" + str(gameRealm) + "/" + str(gameId) + "/timeline?gameHash=" + str(gameHash)

    # End of URL functions




    # Random Stuff

    def parseLeagues(json):
    for league in json["leagues"]:
    tournaments = getTournaments(league["id"])
    for tournament in tournaments["highlanderTournaments"]:
    if tournament["title"] == "lck_2016_summer":
    #for gameId in tournament["gameIds"]:
    #print gameId, tournament["id"]
    #print getMatchDetails(tournament["id"], gameId)
    #print "ok"
    print tournament["id"]




    def getAllMatchURLS():
    matchDetailsURLs = []
    leaguesJSON = getLeagues()
    for league in leaguesJSON["leagues"]:
    tournaments = getTournaments(league["id"])
    for tournament in tournaments["highlanderTournaments"]:
    if tournament["title"] == "na_2016_summer":
    for bracket in tournament["brackets"]:
    for matchId in tournament["brackets"][bracket]["matches"]:
    matchDetailsURLs = getMatchDetailsURL(tournament["id"], matchId)
    print matchDetailsURLs

    if __name__ == '__main__':
    #parseLeagues(getLeagues())
    #print len("6ccafe25-5e3c-4d9a-a67e-b4c3358df4de")
    #requestMatchDetails("91be3d78-874a-44e0-943f-073d4c9d7bf6", "22851f97-7555-494d-b234-1e4bbeaf8dd5")
    #print getGameStats("TRLH1", "1001440530", "8111bf29dfce9731")
    #doScheduleItems()
    #getAllMatchURLS()

    print parseLeagues(getLeagues())




  2. Spenser Solys revised this gist Jun 12, 2016. 2 changed files with 0 additions and 104976 deletions.
    1,808 changes: 0 additions & 1,808 deletions temp.json
    Original file line number Diff line number Diff line change
    @@ -1,1808 +0,0 @@
    {
    "gameId": 1001440530,
    "platformId": "TRLH1",
    "gameCreation": 1449972553049,
    "gameDuration": 1786,
    "queueId": 0,
    "mapId": 11,
    "seasonId": 6,
    "gameVersion": "5.23.0.250",
    "gameMode": "CLASSIC",
    "gameType": "CUSTOM_GAME",
    "teams": [
    {
    "teamId": 100,
    "win": "Win",
    "firstBlood": true,
    "firstTower": true,
    "firstInhibitor": true,
    "firstBaron": true,
    "firstDragon": true,
    "firstRiftHerald": false,
    "towerKills": 11,
    "inhibitorKills": 3,
    "baronKills": 1,
    "dragonKills": 2,
    "vilemawKills": 0,
    "riftHeraldKills": 0,
    "dominionVictoryScore": 0,
    "bans": [
    {
    "championId": 13,
    "pickTurn": 1
    },
    {
    "championId": 412,
    "pickTurn": 3
    },
    {
    "championId": 36,
    "pickTurn": 5
    }
    ]
    },
    {
    "teamId": 200,
    "win": "Fail",
    "firstBlood": false,
    "firstTower": false,
    "firstInhibitor": false,
    "firstBaron": false,
    "firstDragon": false,
    "firstRiftHerald": false,
    "towerKills": 0,
    "inhibitorKills": 0,
    "baronKills": 0,
    "dragonKills": 0,
    "vilemawKills": 0,
    "riftHeraldKills": 0,
    "dominionVictoryScore": 0,
    "bans": [
    {
    "championId": 105,
    "pickTurn": 2
    },
    {
    "championId": 133,
    "pickTurn": 4
    },
    {
    "championId": 41,
    "pickTurn": 6
    }
    ]
    }
    ],
    "participants": [
    {
    "participantId": 1,
    "teamId": 100,
    "championId": 117,
    "spell1Id": 4,
    "spell2Id": 12,
    "masteries": [
    {
    "masteryId": 6111,
    "rank": 5
    },
    {
    "masteryId": 6122,
    "rank": 1
    },
    {
    "masteryId": 6134,
    "rank": 5
    },
    {
    "masteryId": 6142,
    "rank": 1
    },
    {
    "masteryId": 6312,
    "rank": 5
    },
    {
    "masteryId": 6322,
    "rank": 1
    },
    {
    "masteryId": 6331,
    "rank": 5
    },
    {
    "masteryId": 6343,
    "rank": 1
    },
    {
    "masteryId": 6352,
    "rank": 5
    },
    {
    "masteryId": 6362,
    "rank": 1
    }
    ],
    "runes": [
    {
    "runeId": 5247,
    "rank": 9
    },
    {
    "runeId": 5296,
    "rank": 9
    },
    {
    "runeId": 5317,
    "rank": 9
    },
    {
    "runeId": 5357,
    "rank": 3
    }
    ],
    "highestAchievedSeasonTier": "UNRANKED",
    "stats": {
    "participantId": 1,
    "win": true,
    "item0": 3092,
    "item1": 1026,
    "item2": 3158,
    "item3": 1052,
    "item4": 3100,
    "item5": 3027,
    "item6": 3363,
    "kills": 4,
    "deaths": 1,
    "assists": 16,
    "largestKillingSpree": 3,
    "largestMultiKill": 2,
    "killingSprees": 1,
    "longestTimeSpentLiving": 1542,
    "doubleKills": 1,
    "tripleKills": 0,
    "quadraKills": 0,
    "pentaKills": 0,
    "unrealKills": 0,
    "totalDamageDealt": 146067,
    "magicDamageDealt": 111512,
    "physicalDamageDealt": 33650,
    "trueDamageDealt": 904,
    "largestCriticalStrike": 0,
    "totalDamageDealtToChampions": 21032,
    "magicDamageDealtToChampions": 16838,
    "physicalDamageDealtToChampions": 3913,
    "trueDamageDealtToChampions": 280,
    "totalHeal": 2247,
    "totalUnitsHealed": 1,
    "totalDamageTaken": 12035,
    "magicalDamageTaken": 7698,
    "physicalDamageTaken": 4223,
    "trueDamageTaken": 112,
    "goldEarned": 14043,
    "goldSpent": 11410,
    "turretKills": 3,
    "inhibitorKills": 0,
    "totalMinionsKilled": 194,
    "neutralMinionsKilled": 2,
    "neutralMinionsKilledTeamJungle": 2,
    "neutralMinionsKilledEnemyJungle": 0,
    "totalTimeCrowdControlDealt": 984,
    "champLevel": 15,
    "visionWardsBoughtInGame": 5,
    "sightWardsBoughtInGame": 0,
    "wardsPlaced": 22,
    "wardsKilled": 4,
    "firstBloodKill": true,
    "firstBloodAssist": false,
    "firstTowerKill": true,
    "firstTowerAssist": false,
    "firstInhibitorKill": false,
    "firstInhibitorAssist": true,
    "combatPlayerScore": 0,
    "objectivePlayerScore": 0,
    "totalPlayerScore": 0,
    "totalScoreRank": 0
    },
    "timeline": {
    "participantId": 1,
    "creepsPerMinDeltas": {
    "10-20": 6.9,
    "0-10": 8
    },
    "xpPerMinDeltas": {
    "10-20": 458.6,
    "0-10": 473.29999999999995
    },
    "goldPerMinDeltas": {
    "10-20": 407.9,
    "0-10": 363.2
    },
    "csDiffPerMinDeltas": {
    "10-20": -0.6999999999999997,
    "0-10": 1.5000000000000004
    },
    "xpDiffPerMinDeltas": {
    "10-20": 31.80000000000001,
    "0-10": 71.89999999999998
    },
    "damageTakenPerMinDeltas": {
    "10-20": 272.1,
    "0-10": 94.8
    },
    "damageTakenDiffPerMinDeltas": {
    "10-20": -408.5,
    "0-10": -304.3
    },
    "role": "SOLO",
    "lane": "TOP"
    }
    },
    {
    "participantId": 2,
    "teamId": 100,
    "championId": 64,
    "spell1Id": 11,
    "spell2Id": 4,
    "masteries": [
    {
    "masteryId": 6114,
    "rank": 5
    },
    {
    "masteryId": 6121,
    "rank": 1
    },
    {
    "masteryId": 6131,
    "rank": 5
    },
    {
    "masteryId": 6142,
    "rank": 1
    },
    {
    "masteryId": 6312,
    "rank": 5
    },
    {
    "masteryId": 6322,
    "rank": 1
    },
    {
    "masteryId": 6331,
    "rank": 5
    },
    {
    "masteryId": 6343,
    "rank": 1
    },
    {
    "masteryId": 6352,
    "rank": 5
    },
    {
    "masteryId": 6362,
    "rank": 1
    }
    ],
    "runes": [
    {
    "runeId": 5253,
    "rank": 9
    },
    {
    "runeId": 5295,
    "rank": 6
    },
    {
    "runeId": 5296,
    "rank": 3
    },
    {
    "runeId": 5317,
    "rank": 9
    },
    {
    "runeId": 5335,
    "rank": 3
    }
    ],
    "highestAchievedSeasonTier": "UNRANKED",
    "stats": {
    "participantId": 2,
    "win": true,
    "item0": 1412,
    "item1": 3026,
    "item2": 2049,
    "item3": 1001,
    "item4": 3071,
    "item5": 0,
    "item6": 3364,
    "kills": 3,
    "deaths": 2,
    "assists": 9,
    "largestKillingSpree": 3,
    "largestMultiKill": 3,
    "killingSprees": 1,
    "longestTimeSpentLiving": 1293,
    "doubleKills": 1,
    "tripleKills": 1,
    "quadraKills": 0,
    "pentaKills": 0,
    "unrealKills": 0,
    "totalDamageDealt": 135837,
    "magicDamageDealt": 21604,
    "physicalDamageDealt": 104742,
    "trueDamageDealt": 9490,
    "largestCriticalStrike": 0,
    "totalDamageDealtToChampions": 10154,
    "magicDamageDealtToChampions": 1446,
    "physicalDamageDealtToChampions": 8102,
    "trueDamageDealtToChampions": 606,
    "totalHeal": 7211,
    "totalUnitsHealed": 1,
    "totalDamageTaken": 26036,
    "magicalDamageTaken": 7293,
    "physicalDamageTaken": 18579,
    "trueDamageTaken": 164,
    "goldEarned": 11302,
    "goldSpent": 10925,
    "turretKills": 1,
    "inhibitorKills": 0,
    "totalMinionsKilled": 24,
    "neutralMinionsKilled": 85,
    "neutralMinionsKilledTeamJungle": 72,
    "neutralMinionsKilledEnemyJungle": 13,
    "totalTimeCrowdControlDealt": 620,
    "champLevel": 15,
    "visionWardsBoughtInGame": 2,
    "sightWardsBoughtInGame": 0,
    "wardsPlaced": 18,
    "wardsKilled": 9,
    "firstBloodKill": false,
    "firstBloodAssist": false,
    "firstTowerKill": false,
    "firstTowerAssist": false,
    "firstInhibitorKill": false,
    "firstInhibitorAssist": true,
    "combatPlayerScore": 0,
    "objectivePlayerScore": 0,
    "totalPlayerScore": 0,
    "totalScoreRank": 0
    },
    "timeline": {
    "participantId": 2,
    "creepsPerMinDeltas": {
    "10-20": 1.4000000000000001,
    "0-10": 0
    },
    "xpPerMinDeltas": {
    "10-20": 405.79999999999995,
    "0-10": 338.1
    },
    "goldPerMinDeltas": {
    "10-20": 311,
    "0-10": 266.5
    },
    "csDiffPerMinDeltas": {
    "10-20": -0.6999999999999997,
    "0-10": -0.4
    },
    "xpDiffPerMinDeltas": {
    "10-20": -22.200000000000017,
    "0-10": 32.900000000000034
    },
    "damageTakenPerMinDeltas": {
    "10-20": 840.8000000000001,
    "0-10": 495.9
    },
    "damageTakenDiffPerMinDeltas": {
    "10-20": 39.10000000000008,
    "0-10": -9.500000000000028
    },
    "role": "NONE",
    "lane": "JUNGLE"
    }
    },
    {
    "participantId": 3,
    "teamId": 100,
    "championId": 38,
    "spell1Id": 12,
    "spell2Id": 4,
    "masteries": [
    {
    "masteryId": 6114,
    "rank": 5
    },
    {
    "masteryId": 6122,
    "rank": 1
    },
    {
    "masteryId": 6134,
    "rank": 5
    },
    {
    "masteryId": 6142,
    "rank": 1
    },
    {
    "masteryId": 6154,
    "rank": 5
    },
    {
    "masteryId": 6164,
    "rank": 1
    },
    {
    "masteryId": 6312,
    "rank": 5
    },
    {
    "masteryId": 6322,
    "rank": 1
    },
    {
    "masteryId": 6331,
    "rank": 5
    },
    {
    "masteryId": 6343,
    "rank": 1
    }
    ],
    "runes": [
    {
    "runeId": 5273,
    "rank": 9
    },
    {
    "runeId": 5296,
    "rank": 9
    },
    {
    "runeId": 5316,
    "rank": 9
    },
    {
    "runeId": 5357,
    "rank": 3
    }
    ],
    "highestAchievedSeasonTier": "UNRANKED",
    "stats": {
    "participantId": 3,
    "win": true,
    "item0": 2033,
    "item1": 3027,
    "item2": 3158,
    "item3": 3100,
    "item4": 3089,
    "item5": 3001,
    "item6": 3363,
    "kills": 10,
    "deaths": 1,
    "assists": 7,
    "largestKillingSpree": 8,
    "largestMultiKill": 5,
    "killingSprees": 2,
    "longestTimeSpentLiving": 1448,
    "doubleKills": 1,
    "tripleKills": 1,
    "quadraKills": 1,
    "pentaKills": 1,
    "unrealKills": 0,
    "totalDamageDealt": 159070,
    "magicDamageDealt": 131883,
    "physicalDamageDealt": 26004,
    "trueDamageDealt": 1182,
    "largestCriticalStrike": 0,
    "totalDamageDealtToChampions": 26149,
    "magicDamageDealtToChampions": 24687,
    "physicalDamageDealtToChampions": 1347,
    "trueDamageDealtToChampions": 114,
    "totalHeal": 1751,
    "totalUnitsHealed": 1,
    "totalDamageTaken": 21922,
    "magicalDamageTaken": 9305,
    "physicalDamageTaken": 11809,
    "trueDamageTaken": 808,
    "goldEarned": 14599,
    "goldSpent": 13725,
    "turretKills": 2,
    "inhibitorKills": 2,
    "totalMinionsKilled": 223,
    "neutralMinionsKilled": 9,
    "neutralMinionsKilledTeamJungle": 8,
    "neutralMinionsKilledEnemyJungle": 1,
    "totalTimeCrowdControlDealt": 323,
    "champLevel": 16,
    "visionWardsBoughtInGame": 1,
    "sightWardsBoughtInGame": 0,
    "wardsPlaced": 19,
    "wardsKilled": 2,
    "firstBloodKill": false,
    "firstBloodAssist": false,
    "firstTowerKill": false,
    "firstTowerAssist": false,
    "firstInhibitorKill": true,
    "firstInhibitorAssist": false,
    "combatPlayerScore": 0,
    "objectivePlayerScore": 0,
    "totalPlayerScore": 0,
    "totalScoreRank": 0
    },
    "timeline": {
    "participantId": 3,
    "creepsPerMinDeltas": {
    "10-20": 7.3999999999999995,
    "0-10": 5.9
    },
    "xpPerMinDeltas": {
    "10-20": 523.7,
    "0-10": 446.5
    },
    "goldPerMinDeltas": {
    "10-20": 425.4,
    "0-10": 239.2
    },
    "csDiffPerMinDeltas": {
    "10-20": -2.1000000000000005,
    "0-10": -1.5
    },
    "xpDiffPerMinDeltas": {
    "10-20": -2.1999999999999886,
    "0-10": 5.000000000000028
    },
    "damageTakenPerMinDeltas": {
    "10-20": 796.8,
    "0-10": 362.5
    },
    "damageTakenDiffPerMinDeltas": {
    "10-20": 320.99999999999994,
    "0-10": 114.60000000000001
    },
    "role": "SOLO",
    "lane": "MIDDLE"
    }
    },
    {
    "participantId": 4,
    "teamId": 100,
    "championId": 236,
    "spell1Id": 4,
    "spell2Id": 7,
    "masteries": [
    {
    "masteryId": 6111,
    "rank": 5
    },
    {
    "masteryId": 6122,
    "rank": 1
    },
    {
    "masteryId": 6131,
    "rank": 5
    },
    {
    "masteryId": 6142,
    "rank": 1
    },
    {
    "masteryId": 6151,
    "rank": 5
    },
    {
    "masteryId": 6162,
    "rank": 1
    },
    {
    "masteryId": 6312,
    "rank": 5
    },
    {
    "masteryId": 6322,
    "rank": 1
    },
    {
    "masteryId": 6331,
    "rank": 5
    },
    {
    "masteryId": 6343,
    "rank": 1
    }
    ],
    "runes": [
    {
    "runeId": 5245,
    "rank": 9
    },
    {
    "runeId": 5277,
    "rank": 4
    },
    {
    "runeId": 5289,
    "rank": 5
    },
    {
    "runeId": 5317,
    "rank": 9
    },
    {
    "runeId": 5337,
    "rank": 3
    }
    ],
    "highestAchievedSeasonTier": "UNRANKED",
    "stats": {
    "participantId": 4,
    "win": true,
    "item0": 1055,
    "item1": 3508,
    "item2": 3031,
    "item3": 3158,
    "item4": 3086,
    "item5": 1042,
    "item6": 3363,
    "kills": 4,
    "deaths": 2,
    "assists": 9,
    "largestKillingSpree": 3,
    "largestMultiKill": 2,
    "killingSprees": 1,
    "longestTimeSpentLiving": 765,
    "doubleKills": 1,
    "tripleKills": 0,
    "quadraKills": 0,
    "pentaKills": 0,
    "unrealKills": 0,
    "totalDamageDealt": 177199,
    "magicDamageDealt": 5866,
    "physicalDamageDealt": 170053,
    "trueDamageDealt": 1279,
    "largestCriticalStrike": 834,
    "totalDamageDealtToChampions": 18602,
    "magicDamageDealtToChampions": 1008,
    "physicalDamageDealtToChampions": 17274,
    "trueDamageDealtToChampions": 319,
    "totalHeal": 4361,
    "totalUnitsHealed": 5,
    "totalDamageTaken": 14765,
    "magicalDamageTaken": 7380,
    "physicalDamageTaken": 6964,
    "trueDamageTaken": 420,
    "goldEarned": 13780,
    "goldSpent": 10925,
    "turretKills": 3,
    "inhibitorKills": 0,
    "totalMinionsKilled": 258,
    "neutralMinionsKilled": 17,
    "neutralMinionsKilledTeamJungle": 15,
    "neutralMinionsKilledEnemyJungle": 2,
    "totalTimeCrowdControlDealt": 125,
    "champLevel": 15,
    "visionWardsBoughtInGame": 1,
    "sightWardsBoughtInGame": 0,
    "wardsPlaced": 12,
    "wardsKilled": 5,
    "firstBloodKill": false,
    "firstBloodAssist": false,
    "firstTowerKill": false,
    "firstTowerAssist": false,
    "firstInhibitorKill": false,
    "firstInhibitorAssist": false,
    "combatPlayerScore": 0,
    "objectivePlayerScore": 0,
    "totalPlayerScore": 0,
    "totalScoreRank": 0
    },
    "timeline": {
    "participantId": 4,
    "creepsPerMinDeltas": {
    "10-20": 10.8,
    "0-10": 7.199999999999999
    },
    "xpPerMinDeltas": {
    "10-20": 452.6,
    "0-10": 295
    },
    "goldPerMinDeltas": {
    "10-20": 408.4,
    "0-10": 260.6
    },
    "csDiffPerMinDeltas": {
    "10-20": 1.2499999999999998,
    "0-10": 0.44999999999999996
    },
    "xpDiffPerMinDeltas": {
    "10-20": 86.15,
    "0-10": -6.600000000000023
    },
    "damageTakenPerMinDeltas": {
    "10-20": 492.1,
    "0-10": 266.2
    },
    "damageTakenDiffPerMinDeltas": {
    "10-20": -21.049999999999955,
    "0-10": -18.399999999999977
    },
    "role": "DUO_CARRY",
    "lane": "BOTTOM"
    }
    },
    {
    "participantId": 5,
    "teamId": 100,
    "championId": 267,
    "spell1Id": 14,
    "spell2Id": 4,
    "masteries": [
    {
    "masteryId": 6211,
    "rank": 5
    },
    {
    "masteryId": 6223,
    "rank": 1
    },
    {
    "masteryId": 6232,
    "rank": 5
    },
    {
    "masteryId": 6241,
    "rank": 1
    },
    {
    "masteryId": 6311,
    "rank": 5
    },
    {
    "masteryId": 6322,
    "rank": 1
    },
    {
    "masteryId": 6332,
    "rank": 5
    },
    {
    "masteryId": 6343,
    "rank": 1
    },
    {
    "masteryId": 6351,
    "rank": 5
    },
    {
    "masteryId": 6362,
    "rank": 1
    }
    ],
    "runes": [
    {
    "runeId": 5289,
    "rank": 9
    },
    {
    "runeId": 5317,
    "rank": 9
    },
    {
    "runeId": 5357,
    "rank": 3
    },
    {
    "runeId": 5402,
    "rank": 9
    }
    ],
    "highestAchievedSeasonTier": "UNRANKED",
    "stats": {
    "participantId": 5,
    "win": true,
    "item0": 3092,
    "item1": 0,
    "item2": 2049,
    "item3": 2043,
    "item4": 3070,
    "item5": 1327,
    "item6": 3364,
    "kills": 1,
    "deaths": 1,
    "assists": 16,
    "largestKillingSpree": 0,
    "largestMultiKill": 1,
    "killingSprees": 0,
    "longestTimeSpentLiving": 1532,
    "doubleKills": 0,
    "tripleKills": 0,
    "quadraKills": 0,
    "pentaKills": 0,
    "unrealKills": 0,
    "totalDamageDealt": 15483,
    "magicDamageDealt": 8998,
    "physicalDamageDealt": 5982,
    "trueDamageDealt": 502,
    "largestCriticalStrike": 0,
    "totalDamageDealtToChampions": 7205,
    "magicDamageDealtToChampions": 5424,
    "physicalDamageDealtToChampions": 1278,
    "trueDamageDealtToChampions": 502,
    "totalHeal": 9695,
    "totalUnitsHealed": 5,
    "totalDamageTaken": 9550,
    "magicalDamageTaken": 4366,
    "physicalDamageTaken": 5183,
    "trueDamageTaken": 0,
    "goldEarned": 8949,
    "goldSpent": 5700,
    "turretKills": 0,
    "inhibitorKills": 0,
    "totalMinionsKilled": 13,
    "neutralMinionsKilled": 0,
    "neutralMinionsKilledTeamJungle": 0,
    "neutralMinionsKilledEnemyJungle": 0,
    "totalTimeCrowdControlDealt": 106,
    "champLevel": 13,
    "visionWardsBoughtInGame": 4,
    "sightWardsBoughtInGame": 0,
    "wardsPlaced": 25,
    "wardsKilled": 10,
    "firstBloodKill": false,
    "firstBloodAssist": false,
    "firstTowerKill": false,
    "firstTowerAssist": false,
    "firstInhibitorKill": false,
    "firstInhibitorAssist": true,
    "combatPlayerScore": 0,
    "objectivePlayerScore": 0,
    "totalPlayerScore": 0,
    "totalScoreRank": 0
    },
    "timeline": {
    "participantId": 5,
    "creepsPerMinDeltas": {
    "10-20": 0.4,
    "0-10": 0.1
    },
    "xpPerMinDeltas": {
    "10-20": 321.2,
    "0-10": 242.5
    },
    "goldPerMinDeltas": {
    "10-20": 218.8,
    "0-10": 144.7
    },
    "csDiffPerMinDeltas": {
    "10-20": 1.2499999999999998,
    "0-10": 0.44999999999999996
    },
    "xpDiffPerMinDeltas": {
    "10-20": 86.15,
    "0-10": -6.600000000000023
    },
    "damageTakenPerMinDeltas": {
    "10-20": 292.1,
    "0-10": 186
    },
    "damageTakenDiffPerMinDeltas": {
    "10-20": -21.049999999999955,
    "0-10": -18.399999999999977
    },
    "role": "DUO_SUPPORT",
    "lane": "BOTTOM"
    }
    },
    {
    "participantId": 6,
    "teamId": 200,
    "championId": 54,
    "spell1Id": 12,
    "spell2Id": 4,
    "masteries": [
    {
    "masteryId": 6114,
    "rank": 5
    },
    {
    "masteryId": 6122,
    "rank": 1
    },
    {
    "masteryId": 6134,
    "rank": 5
    },
    {
    "masteryId": 6142,
    "rank": 1
    },
    {
    "masteryId": 6212,
    "rank": 5
    },
    {
    "masteryId": 6223,
    "rank": 1
    },
    {
    "masteryId": 6231,
    "rank": 5
    },
    {
    "masteryId": 6241,
    "rank": 1
    },
    {
    "masteryId": 6252,
    "rank": 5
    },
    {
    "masteryId": 6261,
    "rank": 1
    }
    ],
    "runes": [
    {
    "runeId": 5289,
    "rank": 9
    },
    {
    "runeId": 5316,
    "rank": 9
    },
    {
    "runeId": 5335,
    "rank": 3
    },
    {
    "runeId": 5402,
    "rank": 9
    }
    ],
    "highestAchievedSeasonTier": "UNRANKED",
    "stats": {
    "participantId": 6,
    "win": false,
    "item0": 2033,
    "item1": 3111,
    "item2": 3082,
    "item3": 3025,
    "item4": 3065,
    "item5": 0,
    "item6": 3340,
    "kills": 1,
    "deaths": 5,
    "assists": 4,
    "largestKillingSpree": 0,
    "largestMultiKill": 1,
    "killingSprees": 0,
    "longestTimeSpentLiving": 1005,
    "doubleKills": 0,
    "tripleKills": 0,
    "quadraKills": 0,
    "pentaKills": 0,
    "unrealKills": 0,
    "totalDamageDealt": 93754,
    "magicDamageDealt": 51192,
    "physicalDamageDealt": 42561,
    "trueDamageDealt": 0,
    "largestCriticalStrike": 0,
    "totalDamageDealtToChampions": 9467,
    "magicDamageDealtToChampions": 8368,
    "physicalDamageDealtToChampions": 1099,
    "trueDamageDealtToChampions": 0,
    "totalHeal": 2876,
    "totalUnitsHealed": 1,
    "totalDamageTaken": 26938,
    "magicalDamageTaken": 14836,
    "physicalDamageTaken": 11372,
    "trueDamageTaken": 729,
    "goldEarned": 8913,
    "goldSpent": 8200,
    "turretKills": 0,
    "inhibitorKills": 0,
    "totalMinionsKilled": 199,
    "neutralMinionsKilled": 3,
    "neutralMinionsKilledTeamJungle": 3,
    "neutralMinionsKilledEnemyJungle": 0,
    "totalTimeCrowdControlDealt": 1292,
    "champLevel": 14,
    "visionWardsBoughtInGame": 0,
    "sightWardsBoughtInGame": 0,
    "wardsPlaced": 11,
    "wardsKilled": 6,
    "firstBloodKill": false,
    "firstBloodAssist": false,
    "firstTowerKill": false,
    "firstTowerAssist": false,
    "firstInhibitorKill": false,
    "firstInhibitorAssist": false,
    "combatPlayerScore": 0,
    "objectivePlayerScore": 0,
    "totalPlayerScore": 0,
    "totalScoreRank": 0
    },
    "timeline": {
    "participantId": 6,
    "creepsPerMinDeltas": {
    "10-20": 7.6,
    "0-10": 6.5
    },
    "xpPerMinDeltas": {
    "10-20": 426.79999999999995,
    "0-10": 401.4
    },
    "goldPerMinDeltas": {
    "10-20": 293.70000000000005,
    "0-10": 225.1
    },
    "csDiffPerMinDeltas": {
    "10-20": 0.6999999999999997,
    "0-10": -1.5000000000000004
    },
    "xpDiffPerMinDeltas": {
    "10-20": -31.80000000000001,
    "0-10": -71.89999999999998
    },
    "damageTakenPerMinDeltas": {
    "10-20": 680.6,
    "0-10": 399.1
    },
    "damageTakenDiffPerMinDeltas": {
    "10-20": 408.5,
    "0-10": 304.3
    },
    "role": "SOLO",
    "lane": "TOP"
    }
    },
    {
    "participantId": 7,
    "teamId": 200,
    "championId": 203,
    "spell1Id": 11,
    "spell2Id": 4,
    "masteries": [
    {
    "masteryId": 6111,
    "rank": 5
    },
    {
    "masteryId": 6122,
    "rank": 1
    },
    {
    "masteryId": 6131,
    "rank": 5
    },
    {
    "masteryId": 6142,
    "rank": 1
    },
    {
    "masteryId": 6312,
    "rank": 5
    },
    {
    "masteryId": 6321,
    "rank": 1
    },
    {
    "masteryId": 6331,
    "rank": 5
    },
    {
    "masteryId": 6343,
    "rank": 1
    },
    {
    "masteryId": 6351,
    "rank": 5
    },
    {
    "masteryId": 6362,
    "rank": 1
    }
    ],
    "runes": [
    {
    "runeId": 5245,
    "rank": 5
    },
    {
    "runeId": 5253,
    "rank": 4
    },
    {
    "runeId": 5289,
    "rank": 9
    },
    {
    "runeId": 5317,
    "rank": 9
    },
    {
    "runeId": 5337,
    "rank": 3
    }
    ],
    "highestAchievedSeasonTier": "UNRANKED",
    "stats": {
    "participantId": 7,
    "win": false,
    "item0": 0,
    "item1": 3142,
    "item2": 0,
    "item3": 0,
    "item4": 1412,
    "item5": 3006,
    "item6": 3363,
    "kills": 0,
    "deaths": 5,
    "assists": 3,
    "largestKillingSpree": 0,
    "largestMultiKill": 0,
    "killingSprees": 0,
    "longestTimeSpentLiving": 521,
    "doubleKills": 0,
    "tripleKills": 0,
    "quadraKills": 0,
    "pentaKills": 0,
    "unrealKills": 0,
    "totalDamageDealt": 114423,
    "magicDamageDealt": 3471,
    "physicalDamageDealt": 101897,
    "trueDamageDealt": 9054,
    "largestCriticalStrike": 0,
    "totalDamageDealtToChampions": 6671,
    "magicDamageDealtToChampions": 603,
    "physicalDamageDealtToChampions": 4915,
    "trueDamageDealtToChampions": 1152,
    "totalHeal": 9359,
    "totalUnitsHealed": 3,
    "totalDamageTaken": 23843,
    "magicalDamageTaken": 7502,
    "physicalDamageTaken": 16074,
    "trueDamageTaken": 266,
    "goldEarned": 7898,
    "goldSpent": 7525,
    "turretKills": 0,
    "inhibitorKills": 0,
    "totalMinionsKilled": 30,
    "neutralMinionsKilled": 78,
    "neutralMinionsKilledTeamJungle": 76,
    "neutralMinionsKilledEnemyJungle": 2,
    "totalTimeCrowdControlDealt": 361,
    "champLevel": 13,
    "visionWardsBoughtInGame": 2,
    "sightWardsBoughtInGame": 0,
    "wardsPlaced": 14,
    "wardsKilled": 12,
    "firstBloodKill": false,
    "firstBloodAssist": false,
    "firstTowerKill": false,
    "firstTowerAssist": false,
    "firstInhibitorKill": false,
    "firstInhibitorAssist": false,
    "combatPlayerScore": 0,
    "objectivePlayerScore": 0,
    "totalPlayerScore": 0,
    "totalScoreRank": 0
    },
    "timeline": {
    "participantId": 7,
    "creepsPerMinDeltas": {
    "10-20": 2.0999999999999996,
    "0-10": 0.4
    },
    "xpPerMinDeltas": {
    "10-20": 428,
    "0-10": 305.2
    },
    "goldPerMinDeltas": {
    "10-20": 291.3,
    "0-10": 223.7
    },
    "csDiffPerMinDeltas": {
    "10-20": 0.6999999999999997,
    "0-10": 0.4
    },
    "xpDiffPerMinDeltas": {
    "10-20": 22.200000000000017,
    "0-10": -32.900000000000034
    },
    "damageTakenPerMinDeltas": {
    "10-20": 801.7,
    "0-10": 505.4
    },
    "damageTakenDiffPerMinDeltas": {
    "10-20": -39.10000000000008,
    "0-10": 9.500000000000028
    },
    "role": "NONE",
    "lane": "JUNGLE"
    }
    },
    {
    "participantId": 8,
    "teamId": 200,
    "championId": 34,
    "spell1Id": 14,
    "spell2Id": 4,
    "masteries": [
    {
    "masteryId": 6114,
    "rank": 5
    },
    {
    "masteryId": 6122,
    "rank": 1
    },
    {
    "masteryId": 6134,
    "rank": 5
    },
    {
    "masteryId": 6142,
    "rank": 1
    },
    {
    "masteryId": 6312,
    "rank": 5
    },
    {
    "masteryId": 6322,
    "rank": 1
    },
    {
    "masteryId": 6331,
    "rank": 5
    },
    {
    "masteryId": 6343,
    "rank": 1
    },
    {
    "masteryId": 6351,
    "rank": 5
    },
    {
    "masteryId": 6362,
    "rank": 1
    }
    ],
    "runes": [
    {
    "runeId": 5296,
    "rank": 9
    },
    {
    "runeId": 5316,
    "rank": 9
    },
    {
    "runeId": 5357,
    "rank": 3
    },
    {
    "runeId": 5402,
    "rank": 9
    }
    ],
    "highestAchievedSeasonTier": "UNRANKED",
    "stats": {
    "participantId": 8,
    "win": false,
    "item0": 3027,
    "item1": 1052,
    "item2": 0,
    "item3": 3174,
    "item4": 1058,
    "item5": 3158,
    "item6": 3363,
    "kills": 3,
    "deaths": 3,
    "assists": 3,
    "largestKillingSpree": 2,
    "largestMultiKill": 1,
    "killingSprees": 1,
    "longestTimeSpentLiving": 1300,
    "doubleKills": 0,
    "tripleKills": 0,
    "quadraKills": 0,
    "pentaKills": 0,
    "unrealKills": 0,
    "totalDamageDealt": 115559,
    "magicDamageDealt": 104259,
    "physicalDamageDealt": 10946,
    "trueDamageDealt": 352,
    "largestCriticalStrike": 649,
    "totalDamageDealtToChampions": 17024,
    "magicDamageDealtToChampions": 14890,
    "physicalDamageDealtToChampions": 1781,
    "trueDamageDealtToChampions": 352,
    "totalHeal": 7882,
    "totalUnitsHealed": 1,
    "totalDamageTaken": 23139,
    "magicalDamageTaken": 13253,
    "physicalDamageTaken": 9567,
    "trueDamageTaken": 318,
    "goldEarned": 9924,
    "goldSpent": 9385,
    "turretKills": 0,
    "inhibitorKills": 0,
    "totalMinionsKilled": 220,
    "neutralMinionsKilled": 1,
    "neutralMinionsKilledTeamJungle": 1,
    "neutralMinionsKilledEnemyJungle": 0,
    "totalTimeCrowdControlDealt": 3743,
    "champLevel": 15,
    "visionWardsBoughtInGame": 4,
    "sightWardsBoughtInGame": 0,
    "wardsPlaced": 16,
    "wardsKilled": 5,
    "firstBloodKill": false,
    "firstBloodAssist": false,
    "firstTowerKill": false,
    "firstTowerAssist": false,
    "firstInhibitorKill": false,
    "firstInhibitorAssist": false,
    "combatPlayerScore": 0,
    "objectivePlayerScore": 0,
    "totalPlayerScore": 0,
    "totalScoreRank": 0
    },
    "timeline": {
    "participantId": 8,
    "creepsPerMinDeltas": {
    "10-20": 9.5,
    "0-10": 7.4
    },
    "xpPerMinDeltas": {
    "10-20": 525.9,
    "0-10": 441.5
    },
    "goldPerMinDeltas": {
    "10-20": 355.70000000000005,
    "0-10": 247.8
    },
    "csDiffPerMinDeltas": {
    "10-20": 2.1000000000000005,
    "0-10": 1.5
    },
    "xpDiffPerMinDeltas": {
    "10-20": 2.1999999999999886,
    "0-10": -5.000000000000028
    },
    "damageTakenPerMinDeltas": {
    "10-20": 475.8,
    "0-10": 247.89999999999998
    },
    "damageTakenDiffPerMinDeltas": {
    "10-20": -320.99999999999994,
    "0-10": -114.60000000000001
    },
    "role": "SOLO",
    "lane": "MIDDLE"
    }
    },
    {
    "participantId": 9,
    "teamId": 200,
    "championId": 21,
    "spell1Id": 4,
    "spell2Id": 7,
    "masteries": [
    {
    "masteryId": 6111,
    "rank": 5
    },
    {
    "masteryId": 6122,
    "rank": 1
    },
    {
    "masteryId": 6131,
    "rank": 5
    },
    {
    "masteryId": 6142,
    "rank": 1
    },
    {
    "masteryId": 6151,
    "rank": 5
    },
    {
    "masteryId": 6162,
    "rank": 1
    },
    {
    "masteryId": 6312,
    "rank": 5
    },
    {
    "masteryId": 6322,
    "rank": 1
    },
    {
    "masteryId": 6331,
    "rank": 5
    },
    {
    "masteryId": 6343,
    "rank": 1
    }
    ],
    "runes": [
    {
    "runeId": 5245,
    "rank": 9
    },
    {
    "runeId": 5277,
    "rank": 4
    },
    {
    "runeId": 5289,
    "rank": 5
    },
    {
    "runeId": 5317,
    "rank": 9
    },
    {
    "runeId": 5337,
    "rank": 3
    }
    ],
    "highestAchievedSeasonTier": "UNRANKED",
    "stats": {
    "participantId": 9,
    "win": false,
    "item0": 0,
    "item1": 0,
    "item2": 3006,
    "item3": 3508,
    "item4": 3094,
    "item5": 1055,
    "item6": 3363,
    "kills": 3,
    "deaths": 4,
    "assists": 3,
    "largestKillingSpree": 2,
    "largestMultiKill": 2,
    "killingSprees": 1,
    "longestTimeSpentLiving": 1002,
    "doubleKills": 1,
    "tripleKills": 0,
    "quadraKills": 0,
    "pentaKills": 0,
    "unrealKills": 0,
    "totalDamageDealt": 94171,
    "magicDamageDealt": 23867,
    "physicalDamageDealt": 70304,
    "trueDamageDealt": 0,
    "largestCriticalStrike": 366,
    "totalDamageDealtToChampions": 15971,
    "magicDamageDealtToChampions": 4620,
    "physicalDamageDealtToChampions": 11351,
    "trueDamageDealtToChampions": 0,
    "totalHeal": 2426,
    "totalUnitsHealed": 3,
    "totalDamageTaken": 14438,
    "magicalDamageTaken": 6599,
    "physicalDamageTaken": 7628,
    "trueDamageTaken": 210,
    "goldEarned": 9397,
    "goldSpent": 8650,
    "turretKills": 0,
    "inhibitorKills": 0,
    "totalMinionsKilled": 188,
    "neutralMinionsKilled": 3,
    "neutralMinionsKilledTeamJungle": 3,
    "neutralMinionsKilledEnemyJungle": 0,
    "totalTimeCrowdControlDealt": 244,
    "champLevel": 12,
    "visionWardsBoughtInGame": 0,
    "sightWardsBoughtInGame": 0,
    "wardsPlaced": 10,
    "wardsKilled": 8,
    "firstBloodKill": false,
    "firstBloodAssist": false,
    "firstTowerKill": false,
    "firstTowerAssist": false,
    "firstInhibitorKill": false,
    "firstInhibitorAssist": false,
    "combatPlayerScore": 0,
    "objectivePlayerScore": 0,
    "totalPlayerScore": 0,
    "totalScoreRank": 0
    },
    "timeline": {
    "participantId": 9,
    "creepsPerMinDeltas": {
    "10-20": 8.3,
    "0-10": 5.6
    },
    "xpPerMinDeltas": {
    "10-20": 348.3,
    "0-10": 261.9
    },
    "goldPerMinDeltas": {
    "10-20": 311,
    "0-10": 209.2
    },
    "csDiffPerMinDeltas": {
    "10-20": -1.2499999999999998,
    "0-10": -0.44999999999999996
    },
    "xpDiffPerMinDeltas": {
    "10-20": -86.15,
    "0-10": 6.600000000000023
    },
    "damageTakenPerMinDeltas": {
    "10-20": 410.3,
    "0-10": 258.2
    },
    "damageTakenDiffPerMinDeltas": {
    "10-20": 21.049999999999955,
    "0-10": 18.399999999999977
    },
    "role": "DUO_CARRY",
    "lane": "BOTTOM"
    }
    },
    {
    "participantId": 10,
    "teamId": 200,
    "championId": 25,
    "spell1Id": 3,
    "spell2Id": 4,
    "masteries": [
    {
    "masteryId": 6211,
    "rank": 5
    },
    {
    "masteryId": 6223,
    "rank": 1
    },
    {
    "masteryId": 6232,
    "rank": 5
    },
    {
    "masteryId": 6241,
    "rank": 1
    },
    {
    "masteryId": 6311,
    "rank": 5
    },
    {
    "masteryId": 6322,
    "rank": 1
    },
    {
    "masteryId": 6332,
    "rank": 5
    },
    {
    "masteryId": 6342,
    "rank": 1
    },
    {
    "masteryId": 6352,
    "rank": 5
    },
    {
    "masteryId": 6362,
    "rank": 1
    }
    ],
    "runes": [
    {
    "runeId": 5245,
    "rank": 9
    },
    {
    "runeId": 5289,
    "rank": 5
    },
    {
    "runeId": 5301,
    "rank": 4
    },
    {
    "runeId": 5315,
    "rank": 5
    },
    {
    "runeId": 5317,
    "rank": 4
    },
    {
    "runeId": 5347,
    "rank": 1
    },
    {
    "runeId": 5357,
    "rank": 2
    }
    ],
    "highestAchievedSeasonTier": "UNRANKED",
    "stats": {
    "participantId": 10,
    "win": false,
    "item0": 2049,
    "item1": 3092,
    "item2": 2010,
    "item3": 1052,
    "item4": 3105,
    "item5": 3117,
    "item6": 3363,
    "kills": 0,
    "deaths": 5,
    "assists": 4,
    "largestKillingSpree": 0,
    "largestMultiKill": 0,
    "killingSprees": 0,
    "longestTimeSpentLiving": 998,
    "doubleKills": 0,
    "tripleKills": 0,
    "quadraKills": 0,
    "pentaKills": 0,
    "unrealKills": 0,
    "totalDamageDealt": 18429,
    "magicDamageDealt": 15358,
    "physicalDamageDealt": 3070,
    "trueDamageDealt": 0,
    "largestCriticalStrike": 0,
    "totalDamageDealtToChampions": 8446,
    "magicDamageDealtToChampions": 7562,
    "physicalDamageDealtToChampions": 884,
    "trueDamageDealtToChampions": 0,
    "totalHeal": 661,
    "totalUnitsHealed": 1,
    "totalDamageTaken": 16465,
    "magicalDamageTaken": 8178,
    "physicalDamageTaken": 7988,
    "trueDamageTaken": 298,
    "goldEarned": 7178,
    "goldSpent": 6560,
    "turretKills": 0,
    "inhibitorKills": 0,
    "totalMinionsKilled": 24,
    "neutralMinionsKilled": 0,
    "neutralMinionsKilledTeamJungle": 0,
    "neutralMinionsKilledEnemyJungle": 0,
    "totalTimeCrowdControlDealt": 168,
    "champLevel": 11,
    "visionWardsBoughtInGame": 3,
    "sightWardsBoughtInGame": 0,
    "wardsPlaced": 29,
    "wardsKilled": 10,
    "firstBloodKill": false,
    "firstBloodAssist": false,
    "firstTowerKill": false,
    "firstTowerAssist": false,
    "firstInhibitorKill": false,
    "firstInhibitorAssist": false,
    "combatPlayerScore": 0,
    "objectivePlayerScore": 0,
    "totalPlayerScore": 0,
    "totalScoreRank": 0
    },
    "timeline": {
    "participantId": 10,
    "creepsPerMinDeltas": {
    "10-20": 0.4,
    "0-10": 0.8
    },
    "xpPerMinDeltas": {
    "10-20": 253.2,
    "0-10": 288.79999999999995
    },
    "goldPerMinDeltas": {
    "10-20": 231.8,
    "0-10": 163.2
    },
    "csDiffPerMinDeltas": {
    "10-20": -1.2499999999999998,
    "0-10": -0.44999999999999996
    },
    "xpDiffPerMinDeltas": {
    "10-20": -86.15,
    "0-10": 6.600000000000023
    },
    "damageTakenPerMinDeltas": {
    "10-20": 416,
    "0-10": 230.79999999999998
    },
    "damageTakenDiffPerMinDeltas": {
    "10-20": 21.049999999999955,
    "0-10": 18.399999999999977
    },
    "role": "DUO_SUPPORT",
    "lane": "BOTTOM"
    }
    }
    ],
    "participantIdentities": [
    {
    "participantId": 1,
    "player": {
    "summonerName": "FIRE Ziv",
    "profileIcon": 944
    }
    },
    {
    "participantId": 2,
    "player": {
    "summonerName": "FIRE Karsa",
    "profileIcon": 944
    }
    },
    {
    "participantId": 3,
    "player": {
    "summonerName": "FIRE Westdoor",
    "profileIcon": 944
    }
    },
    {
    "participantId": 4,
    "player": {
    "summonerName": "FIRE Bebe",
    "profileIcon": 944
    }
    },
    {
    "participantId": 5,
    "player": {
    "summonerName": "FIRE Olleh",
    "profileIcon": 944
    }
    },
    {
    "participantId": 6,
    "player": {
    "summonerName": "ICE Smurf",
    "profileIcon": 945
    }
    },
    {
    "participantId": 7,
    "player": {
    "summonerName": "ICE Dimajke",
    "profileIcon": 945
    }
    },
    {
    "participantId": 8,
    "player": {
    "summonerName": "ICE Kira",
    "profileIcon": 945
    }
    },
    {
    "participantId": 9,
    "player": {
    "summonerName": "ICE LeX",
    "profileIcon": 945
    }
    },
    {
    "participantId": 10,
    "player": {
    "summonerName": "ICE Dimonko",
    "profileIcon": 945
    }
    }
    ]
    }
    103,168 changes: 0 additions & 103,168 deletions temp2.json
    0 additions, 103,168 deletions not shown because the diff is too large. Please use a local Git client to view these changes.
  3. Spenser Solys revised this gist Jun 12, 2016. 2 changed files with 3324 additions and 1446 deletions.
    2 changes: 2 additions & 0 deletions .gitignore
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,2 @@
    # All json files
    *.json
    4,768 changes: 3,322 additions & 1,446 deletions temp2.json
    3,322 additions, 1,446 deletions not shown because the diff is too large. Please use a local Git client to view these changes.
  4. Spenser Solys revised this gist Jun 9, 2016. 1 changed file with 3040 additions and 3033 deletions.
    6,073 changes: 3,040 additions & 3,033 deletions temp2.json
    3,040 additions, 3,033 deletions not shown because the diff is too large. Please use a local Git client to view these changes.
  5. Spenser Solys revised this gist Jun 9, 2016. 5 changed files with 103403 additions and 689 deletions.
    332 changes: 304 additions & 28 deletions api-lolesports-com_docs.md
    Original file line number Diff line number Diff line change
    @@ -2057,39 +2057,315 @@ Example(s):

    ```
    {
    streams: [
    streams.??: Unknown
    .teams: [
    .teams.0: {
    .teams.0.homeLeague: String
    .teams.0.altLogoUrl: String
    .teams.0.name: String
    .teams.0.players: [
    .teams.0.players.0: Int
    ]
    .teams.0.acronym: String
    .teams.0.updatedAt: String
    .teams.0.teamPhotoUrl: String
    .teams.0.slug: String
    .teams.0.starters: [
    .teams.0.starters.0: Int
    ]
    .teams.0.bios: {
    .teams.0.bios.fr_FR: String
    .teams.0.bios.pt_BR: String
    .teams.0.bios.en_US: String
    .teams.0.bios.es_AR: String
    .teams.0.bios.de_DE: String
    .teams.0.bios.pl_PL: String
    .teams.0.bios.es_ES: String
    }
    .teams.0.logoUrl: String
    .teams.0.foreignIds: {
    .teams.0.foreignIds.drupalId: String
    }
    .teams.0.id: Int
    .teams.0.createdAt: String
    .teams.0.subs: [
    .teams.0.subs.0: Int
    ]
    }
    ]
    .players: [
    .players.0: {
    .players.0.roleSlug: String
    .players.0.name: String
    .players.0.firstName: String
    .players.0.photoUrl: String
    .players.0.lastName: String
    .players.0.region: String
    .players.0.updatedAt: String
    .players.0.birthdate: Unknown
    .players.0.slug: String
    .players.0.bios: {
    .players.0.bios.fr_FR: String
    .players.0.bios.pt_BR: String
    .players.0.bios.en_US: String
    .players.0.bios.de_DE: String
    .players.0.bios.pl_PL: String
    .players.0.bios.es_ES: String
    }
    .players.0.socialNetworks: {
    .players.0.socialNetworks.twitter: String
    .players.0.socialNetworks.twitch: String
    .players.0.socialNetworks.facebook: String
    }
    .players.0.hometown: String
    .players.0.champions: [
    .players.0.champions.??: Unknown
    ]
    .players.0.liveGameTeam: Int
    .players.0.foreignIds: {
    .players.0.foreignIds.TRLH3: String
    .players.0.foreignIds.TRLH2: String
    .players.0.foreignIds.TRLH1: String
    .players.0.foreignIds.drupalId: String
    .players.0.foreignIds.TRLH4: String
    }
    .players.0.id: Int
    .players.0.createdAt: String
    }
    ]
    highlanderTournaments: [
    highlanderTournaments.??: Unknown
    .streams: [
    .streams.0: {
    .streams.0.embedHTML: String
    .streams.0.weight: Int
    .streams.0.title: String
    .streams.0.locale: String
    .streams.0.updatedAt: String
    .streams.0.enabled: Boolean
    .streams.0.slug: String
    .streams.0.lastViewerUpdate: String
    .streams.0.currentViewers: Int
    .streams.0.providerIcon: Unknown
    .streams.0.provider: String
    .streams.0.providerStreamId: String
    .streams.0.streamgroups: [
    .streams.0.streamgroups.0: Int
    ]
    .streams.0.id: Int
    .streams.0.createdAt: String
    }
    ]
    streamgroups: [
    streamgroups.0: {
    streamgroups.0.showAd: Boolean
    streamgroups.0.showBanner: Boolean
    streamgroups.0.showSchedule: Boolean
    streamgroups.0.title: String
    streamgroups.0.nowPlaying: String
    streamgroups.0.adLargeImage: String
    streamgroups.0.slug: String
    streamgroups.0.showStat: Boolean
    streamgroups.0.live: Boolean
    streamgroups.0.streams: List
    streamgroups.0.updatedAt: String
    streamgroups.0.showSocial: Boolean
    streamgroups.0.bannerId: Int
    streamgroups.0.regionPriority: String
    streamgroups.0.adSmallImage: String
    streamgroups.0.id: Int
    streamgroups.0.createdAt: String
    streamgroups.0.adUrl: String/URL Addon (ex. //{region}.merch.riotgames.com/{lang}/ ... jk, its just a link to the riot store
    .highlanderRecords: [
    .highlanderRecords.0: {
    .highlanderRecords.0.tournament: String
    .highlanderRecords.0.roster: String
    .highlanderRecords.0.wins: Int
    .highlanderRecords.0.losses: Int
    .highlanderRecords.0.score: Int
    .highlanderRecords.0.ties: Int
    .highlanderRecords.0.id: String
    .highlanderRecords.0.bracket: String
    }
    ]
    players: [
    players.??: Unknown
    .banners: [
    .banners.0: {
    .banners.0.imageUrl: Unknown
    .banners.0.label: String
    .banners.0.link: Unknown
    .banners.0.updatedAt: String
    .banners.0.id: Int
    .banners.0.slug: String
    .banners.0.createdAt: String
    }
    ]
    teams: [
    teams.??: Unknown
    .highlanderTournaments: [
    .highlanderTournaments.0: {
    .highlanderTournaments.0.leagueReference: String
    .highlanderTournaments.0.league: String
    .highlanderTournaments.0.description: String
    .highlanderTournaments.0.roles: {
    .highlanderTournaments.0.roles.owner: [
    .highlanderTournaments.0.roles.owner.0: {
    .highlanderTournaments.0.roles.owner.0.origin: String
    .highlanderTournaments.0.roles.owner.0.profileIconId: Int
    .highlanderTournaments.0.roles.owner.0.summonerName: String
    .highlanderTournaments.0.roles.owner.0.admin: Boolean
    .highlanderTournaments.0.roles.owner.0.region: String
    .highlanderTournaments.0.roles.owner.0.summonerLevel: Int
    }
    ]
    .highlanderTournaments.0.roles.creator: [
    .highlanderTournaments.0.roles.creator.0: {
    .highlanderTournaments.0.roles.creator.0.origin: String
    .highlanderTournaments.0.roles.creator.0.profileIconId: Int
    .highlanderTournaments.0.roles.creator.0.summonerName: String
    .highlanderTournaments.0.roles.creator.0.admin: Boolean
    .highlanderTournaments.0.roles.creator.0.region: String
    .highlanderTournaments.0.roles.creator.0.summonerLevel: Int
    }
    ]
    }
    .highlanderTournaments.0.title: String
    .highlanderTournaments.0.queues: {
    .highlanderTournaments.0.queues.??: Unknown
    }
    .highlanderTournaments.0.gameMode: {
    .highlanderTournaments.0.gameMode.requiredPlayers: Int
    .highlanderTournaments.0.gameMode.mapName: String
    .highlanderTournaments.0.gameMode.identifier: String
    .highlanderTournaments.0.gameMode.requiredTeams: Int
    }
    .highlanderTournaments.0.rosteringStrategy: {
    .highlanderTournaments.0.rosteringStrategy.identifier: String
    }
    .highlanderTournaments.0.breakpoints: {
    .highlanderTournaments.0.breakpoints.child: {
    .highlanderTournaments.0.breakpoints.child.name: String
    .highlanderTournaments.0.breakpoints.child.roles: {
    .highlanderTournaments.0.breakpoints.child.roles.owner: [
    .highlanderTournaments.0.breakpoints.child.roles.owner.0: {
    .highlanderTournaments.0.breakpoints.child.roles.owner.0.origin: String
    .highlanderTournaments.0.breakpoints.child.roles.owner.0.profileIconId: Int
    .highlanderTournaments.0.breakpoints.child.roles.owner.0.summonerName: String
    .highlanderTournaments.0.breakpoints.child.roles.owner.0.admin: Boolean
    .highlanderTournaments.0.breakpoints.child.roles.owner.0.region: String
    .highlanderTournaments.0.breakpoints.child.roles.owner.0.summonerLevel: Int
    }
    ]
    .highlanderTournaments.0.breakpoints.child.roles.creator: [
    .highlanderTournaments.0.breakpoints.child.roles.creator.0: {
    .highlanderTournaments.0.breakpoints.child.roles.creator.0.origin: String
    .highlanderTournaments.0.breakpoints.child.roles.creator.0.profileIconId: Int
    .highlanderTournaments.0.breakpoints.child.roles.creator.0.summonerName: String
    .highlanderTournaments.0.breakpoints.child.roles.creator.0.admin: Boolean
    .highlanderTournaments.0.breakpoints.child.roles.creator.0.region: String
    .highlanderTournaments.0.breakpoints.child.roles.creator.0.summonerLevel: Int
    }
    ]
    }
    .highlanderTournaments.0.breakpoints.child.scores: {
    .highlanderTournaments.0.breakpoints.child.scores.??: Unknown
    }
    .highlanderTournaments.0.breakpoints.child.input: [
    .highlanderTournaments.0.breakpoints.child.input.??: Unknown
    ]
    .highlanderTournaments.0.breakpoints.child.position: Int
    .highlanderTournaments.0.breakpoints.child.generator: {
    .highlanderTournaments.0.breakpoints.child.generator.identifier: String
    }
    .highlanderTournaments.0.breakpoints.child.id: String
    }
    }
    .highlanderTournaments.0.liveMatches: [
    .highlanderTournaments.0.liveMatches.0: String
    ]
    .highlanderTournaments.0.rosters: {
    .highlanderTournaments.0.rosters.child: {
    .highlanderTournaments.0.rosters.child.name: String
    .highlanderTournaments.0.rosters.child.roles: {
    .highlanderTournaments.0.rosters.child.roles.??: Unknown
    }
    .highlanderTournaments.0.rosters.child.substitutions: {
    .highlanderTournaments.0.rosters.child.substitutions.??: Unknown
    }
    .highlanderTournaments.0.rosters.child.team: String
    .highlanderTournaments.0.rosters.child.id: String
    .highlanderTournaments.0.rosters.child.teamReference: String
    }
    }
    .highlanderTournaments.0.brackets: {
    .highlanderTournaments.0.brackets.child: {
    .highlanderTournaments.0.brackets.child.matchScores: {
    .highlanderTournaments.0.brackets.child.matchScores.??: Unknown
    }
    .highlanderTournaments.0.brackets.child.canManufacture: Boolean
    .highlanderTournaments.0.brackets.child.name: String
    .highlanderTournaments.0.brackets.child.roles: {
    .highlanderTournaments.0.brackets.child.roles.owner: [
    .highlanderTournaments.0.brackets.child.roles.owner.0: {
    .highlanderTournaments.0.brackets.child.roles.owner.0.origin: String
    .highlanderTournaments.0.brackets.child.roles.owner.0.profileIconId: Int
    .highlanderTournaments.0.brackets.child.roles.owner.0.summonerName: String
    .highlanderTournaments.0.brackets.child.roles.owner.0.admin: Boolean
    .highlanderTournaments.0.brackets.child.roles.owner.0.region: String
    .highlanderTournaments.0.brackets.child.roles.owner.0.summonerLevel: Int
    }
    ]
    .highlanderTournaments.0.brackets.child.roles.creator: [
    .highlanderTournaments.0.brackets.child.roles.creator.0: {
    .highlanderTournaments.0.brackets.child.roles.creator.0.origin: String
    .highlanderTournaments.0.brackets.child.roles.creator.0.profileIconId: Int
    .highlanderTournaments.0.brackets.child.roles.creator.0.summonerName: String
    .highlanderTournaments.0.brackets.child.roles.creator.0.admin: Boolean
    .highlanderTournaments.0.brackets.child.roles.creator.0.region: String
    .highlanderTournaments.0.brackets.child.roles.creator.0.summonerLevel: Int
    }
    ]
    }
    .highlanderTournaments.0.brackets.child.matches: {
    .highlanderTournaments.0.brackets.child.matches.??: Unknown
    }
    .highlanderTournaments.0.brackets.child.gameMode: {
    .highlanderTournaments.0.brackets.child.gameMode.requiredPlayers: Int
    .highlanderTournaments.0.brackets.child.gameMode.mapName: String
    .highlanderTournaments.0.brackets.child.gameMode.identifier: String
    .highlanderTournaments.0.brackets.child.gameMode.requiredTeams: Int
    }
    .highlanderTournaments.0.brackets.child.groupPosition: Int
    .highlanderTournaments.0.brackets.child.state: String
    .highlanderTournaments.0.brackets.child.scores: {
    .highlanderTournaments.0.brackets.child.scores.??: Unknown
    }
    .highlanderTournaments.0.brackets.child.bracketType: {
    .highlanderTournaments.0.brackets.child.bracketType.identifier: String
    }
    .highlanderTournaments.0.brackets.child.position: Int
    .highlanderTournaments.0.brackets.child.id: String
    .highlanderTournaments.0.brackets.child.input: [
    .highlanderTournaments.0.brackets.child.input.??: Unknown
    ]
    }
    }
    .highlanderTournaments.0.matchType: {
    .highlanderTournaments.0.matchType.identifier: String
    .highlanderTournaments.0.matchType.options: {
    .highlanderTournaments.0.matchType.options.best_of: String
    }
    }
    .highlanderTournaments.0.gameIds: [
    .highlanderTournaments.0.gameIds.0: String
    ]
    .highlanderTournaments.0.id: String
    .highlanderTournaments.0.platformIds: [
    .highlanderTournaments.0.platformIds.0: String
    ]
    .highlanderTournaments.0.published: Boolean
    }
    ]
    .streamgroups: [
    .streamgroups.0: {
    .streamgroups.0.showAd: Boolean
    .streamgroups.0.slug: String
    .streamgroups.0.showBanner: Boolean
    .streamgroups.0.showSchedule: Boolean
    .streamgroups.0.title: String
    .streamgroups.0.nowPlaying: Unknown
    .streamgroups.0.adLargeImage: Unknown
    .streamgroups.0.tournamentContext: String
    .streamgroups.0.content: Unknown
    .streamgroups.0.showStat: Boolean
    .streamgroups.0.live: Boolean
    .streamgroups.0.streams: [
    .streamgroups.0.streams.0: Int
    ]
    .streamgroups.0.updatedAt: String
    .streamgroups.0.showSocial: Boolean
    .streamgroups.0.bannerId: Int
    .streamgroups.0.regionPriority: Unknown
    .streamgroups.0.adSmallImage: Unknown
    .streamgroups.0.banner: Int
    .streamgroups.0.id: Int
    .streamgroups.0.createdAt: String
    .streamgroups.0.adUrl: Unknown
    }
    ]
    }
    ```
    3 changes: 1 addition & 2 deletions generate_schema.py
    Original file line number Diff line number Diff line change
    @@ -45,8 +45,7 @@ def term_print(field_name, json_obj, level):
    types.ListType: 'List',
    types.NoneType: 'Unknown',
    types.LongType: 'Long',
    types.FloatType: 'Float',
    types.DoubleType: 'Double',
    types.FloatType: 'Float'
    }
    lprint('{}: {}'.format(field_name, pretty_types[type(json_obj)]), level)

    11 changes: 7 additions & 4 deletions riotAPICaller.py
    Original file line number Diff line number Diff line change
    @@ -143,10 +143,11 @@ def parseLeagues(json):
    tournaments = getTournaments(league["id"])
    for tournament in tournaments["highlanderTournaments"]:
    if tournament["title"] == "lck_2016_summer":
    for gameId in tournament["gameIds"]:
    #for gameId in tournament["gameIds"]:
    #print gameId, tournament["id"]
    print getMatchDetails(tournament["id"], gameId)
    print "ok"
    #print getMatchDetails(tournament["id"], gameId)
    #print "ok"
    print tournament["id"]



    @@ -169,7 +170,9 @@ def getAllMatchURLS():
    #requestMatchDetails("91be3d78-874a-44e0-943f-073d4c9d7bf6", "22851f97-7555-494d-b234-1e4bbeaf8dd5")
    #print getGameStats("TRLH1", "1001440530", "8111bf29dfce9731")
    #doScheduleItems()
    getAllMatchURLS()
    #getAllMatchURLS()

    print parseLeagues(getLeagues())



    2,461 changes: 1,806 additions & 655 deletions temp.json
    1,806 additions, 655 deletions not shown because the diff is too large. Please use a local Git client to view these changes.
    101,285 changes: 101,285 additions & 0 deletions temp2.json
    101,285 additions, 0 deletions not shown because the diff is too large. Please use a local Git client to view these changes.
  6. Spenser Solys revised this gist Jun 5, 2016. 2 changed files with 408 additions and 387 deletions.
    3 changes: 2 additions & 1 deletion riotAPICaller.py
    Original file line number Diff line number Diff line change
    @@ -157,10 +157,11 @@ def getAllMatchURLS():
    for league in leaguesJSON["leagues"]:
    tournaments = getTournaments(league["id"])
    for tournament in tournaments["highlanderTournaments"]:
    if tournament["title"] == "lck_2016_summer":
    if tournament["title"] == "na_2016_summer":
    for bracket in tournament["brackets"]:
    for matchId in tournament["brackets"][bracket]["matches"]:
    matchDetailsURLs = getMatchDetailsURL(tournament["id"], matchId)
    print matchDetailsURLs

    if __name__ == '__main__':
    #parseLeagues(getLeagues())
    792 changes: 406 additions & 386 deletions temp.json
    406 additions, 386 deletions not shown because the diff is too large. Please use a local Git client to view these changes.
  7. Spenser Solys revised this gist Jun 4, 2016. 3 changed files with 649 additions and 11 deletions.
    1 change: 1 addition & 0 deletions generate_schema.py
    Original file line number Diff line number Diff line change
    @@ -46,6 +46,7 @@ def term_print(field_name, json_obj, level):
    types.NoneType: 'Unknown',
    types.LongType: 'Long',
    types.FloatType: 'Float',
    types.DoubleType: 'Double',
    }
    lprint('{}: {}'.format(field_name, pretty_types[type(json_obj)]), level)

    21 changes: 11 additions & 10 deletions riotAPICaller.py
    Original file line number Diff line number Diff line change
    @@ -150,24 +150,25 @@ def parseLeagues(json):



    def doScheduleItems():
    count = 0
    json = getLeagues(2)
    for league in json["leagues"]:
    sjson = getScheduleItems(league["id"])
    for sc in sjson["scheduleItems"]:
    print sc["tournament"]
    #print sjson["tournament"]


    def getAllMatchURLS():
    matchDetailsURLs = []
    leaguesJSON = getLeagues()
    for league in leaguesJSON["leagues"]:
    tournaments = getTournaments(league["id"])
    for tournament in tournaments["highlanderTournaments"]:
    if tournament["title"] == "lck_2016_summer":
    for bracket in tournament["brackets"]:
    for matchId in tournament["brackets"][bracket]["matches"]:
    matchDetailsURLs = getMatchDetailsURL(tournament["id"], matchId)

    if __name__ == '__main__':
    #parseLeagues(getLeagues())
    #print len("6ccafe25-5e3c-4d9a-a67e-b4c3358df4de")
    #requestMatchDetails("91be3d78-874a-44e0-943f-073d4c9d7bf6", "22851f97-7555-494d-b234-1e4bbeaf8dd5")
    #print getGameStats("TRLH1", "1001440530", "8111bf29dfce9731")
    #doScheduleItems()
    print getScheduleItemsURL(2)
    getAllMatchURLS()



    638 changes: 637 additions & 1 deletion temp.json
    637 additions, 1 deletion not shown because the diff is too large. Please use a local Git client to view these changes.
  8. Spenser Solys revised this gist Jun 3, 2016. 3 changed files with 1685 additions and 12510 deletions.
    1,933 changes: 1,631 additions & 302 deletions api-lolesports-com_docs.md
    1,631 additions, 302 deletions not shown because the diff is too large. Please use a local Git client to view these changes.
    58 changes: 53 additions & 5 deletions riotAPICaller.py
    Original file line number Diff line number Diff line change
    @@ -1,4 +1,4 @@
    import json, requests, pymongo
    import json, requests

    # Start of request functions

    @@ -30,9 +30,8 @@ def getTournaments(leagueId):
    return r

    def getMatchDetails(tournamentId, matchId):
    #r = requests.get("http://api.lolesports.com/api/v2/highlanderMatchDetails?tournamentId=" + str(tournamentId) + "&matchId=" + str(matchId)).json()
    #return r
    return "http://api.lolesports.com/api/v2/highlanderMatchDetails?tournamentId=" + str(tournamentId) + "&matchId=" + str(matchId)
    r = requests.get("http://api.lolesports.com/api/v2/highlanderMatchDetails?tournamentId=" + str(tournamentId) + "&matchId=" + str(matchId)).json()
    return r

    def getPlayerStats(tournamentId):
    r = requests.get("http://api.lolesports.com/api/v2/tournamentPlayerStats?tournamentId=" + str(tournamentId)).json()
    @@ -74,17 +73,65 @@ def getGameTimeline(gameRealm, gameId, gameHash):
    return r

    # End of request functions
    # Start of URL functions

    def getLeaguesURL(_id=None, slug=None):
    if(_id == None and slug == None):
    return "http://api.lolesports.com/api/v1/leagues"
    elif(_id == None and slug != None):
    return "http://api.lolesports.com/api/v1/leagues?slug=" + str(slug)
    elif(_id != None and slug == None):
    return "http://api.lolesports.com/api/v1/leagues?id=" + str(_id)
    elif(_id != None and slug != None):
    return "http://api.lolesports.com/api/v1/leagues?id=" + str(_id) + "?slug=" + str(slug)

    def getScheduleItemsURL(leagueId):
    return "http://api.lolesports.com/api/v1/scheduleItems?leagueId=" + str(leagueId)

    def getTeamURL(slug, tournamentId):
    return "http://api.lolesports.com/api/v1/teams?slug=" + str(slug) + "&tournament=" + str(tournamentId)

    def getPlayerURL(slug, tournamentId):
    return "http://api.lolesports.com/api/v1/players?slug=" + str(slug) + "&tournament=" + str(tournamentId)

    def getTournamentsURL(leagueId):
    return "http://api.lolesports.com/api/v2/highlanderTournaments?league=" + str(leagueId)

    def getMatchDetailsURL(tournamentId, matchId):
    return "http://api.lolesports.com/api/v2/highlanderMatchDetails?tournamentId=" + str(tournamentId) + "&matchId=" + str(matchId)

    def getPlayerStatsURL(tournamentId):
    return "http://api.lolesports.com/api/v2/tournamentPlayerStats?tournamentId=" + str(tournamentId)

    def getArticlesURL(language=None, _from=None):
    if(language == None and _from == None):
    return "http://api.lolesports.com/api/v1/articles"
    elif(language == None and _from != None):
    return "http://api.lolesports.com/api/v1/articles?from=" + str(_from)
    elif(language != None and _from == None):
    return "http://api.lolesports.com/api/v1/articles?language=" + str(language)
    elif(language != None and _from != None):
    return "http://api.lolesports.com/api/v1/articles?language=" + str(language) + "?from=" + str(_from)

    def getMarqueesURL(locale):
    return "http://api.lolesports.com/api/v1/marquees?locale=" + locale

    def getHTMLBlocksURL():
    return "http://api.lolesports.com/api/v1/htmlBlocks"

    def getVideosURL():
    return "http://api.lolesports.com/api/v2/videos"

    def getStreamGroupsURL():
    return "http://api.lolesports.com/api/v2/streamgroups"

    def getGameStatsURL(gameRealm, gameId, gameHash):
    return "https://acs.leagueoflegends.com/v1/stats/game/" + str(gameRealm) + "/" + str(gameId) + "?gameHash=" + str(gameHash)

    def getGameTimelineURL(gameRealm, gameId, gameHash):
    return "https://acs.leagueoflegends.com/v1/stats/game/" + str(gameRealm) + "/" + str(gameId) + "/timeline?gameHash=" + str(gameHash)

    # End of URL functions



    @@ -116,10 +163,11 @@ def doScheduleItems():

    if __name__ == '__main__':
    #parseLeagues(getLeagues())
    print len("6ccafe25-5e3c-4d9a-a67e-b4c3358df4de")
    #print len("6ccafe25-5e3c-4d9a-a67e-b4c3358df4de")
    #requestMatchDetails("91be3d78-874a-44e0-943f-073d4c9d7bf6", "22851f97-7555-494d-b234-1e4bbeaf8dd5")
    #print getGameStats("TRLH1", "1001440530", "8111bf29dfce9731")
    #doScheduleItems()
    print getScheduleItemsURL(2)



    12,204 changes: 1 addition & 12,203 deletions temp.json
    1 addition, 12,203 deletions not shown because the diff is too large. Please use a local Git client to view these changes.
  9. Spenser Solys revised this gist Jun 2, 2016. 3 changed files with 12224 additions and 8 deletions.
    11 changes: 7 additions & 4 deletions generate_schema.py
    Original file line number Diff line number Diff line change
    @@ -1,6 +1,6 @@
    import json, types

    def jschema(json_obj, max_depth=10):
    def jschema(json_obj, max_depth=100):
    '''Takes a json object and returns a schema with type information.'''

    def rgt(json_obj, level, field_name):
    @@ -21,8 +21,11 @@ def rgt(json_obj, level, field_name):
    lprint('{}: {{'.format(field_name), level)
    if len(json_obj.keys()) == 0:
    term_print(field_name + '.??', None, level)
    for k in json_obj.keys():
    rgt(json_obj[k], level + 1, field_name + '.' + k)
    elif len(json_obj.keys()[0]) == 36:
    rgt(json_obj[json_obj.keys()[0]], level + 1, field_name + '.child')
    else:
    for k in json_obj.keys():
    rgt(json_obj[k], level + 1, field_name + '.' + k)
    lprint('}', level)
    else:
    term_print(field_name, json_obj, level)
    @@ -48,5 +51,5 @@ def term_print(field_name, json_obj, level):


    if __name__ == '__main__':
    x = json.load(open('path/to/file.json', 'r'))
    x = json.load(open('temp.json', 'r'))
    jschema(x)
    18 changes: 14 additions & 4 deletions riotAPICaller.py
    Original file line number Diff line number Diff line change
    @@ -30,8 +30,9 @@ def getTournaments(leagueId):
    return r

    def getMatchDetails(tournamentId, matchId):
    r = requests.get("http://api.lolesports.com/api/v2/highlanderMatchDetails?tournamentId=" + str(tournamentId) + "&matchId=" + str(matchId)).json()
    return r
    #r = requests.get("http://api.lolesports.com/api/v2/highlanderMatchDetails?tournamentId=" + str(tournamentId) + "&matchId=" + str(matchId)).json()
    #return r
    return "http://api.lolesports.com/api/v2/highlanderMatchDetails?tournamentId=" + str(tournamentId) + "&matchId=" + str(matchId)

    def getPlayerStats(tournamentId):
    r = requests.get("http://api.lolesports.com/api/v2/tournamentPlayerStats?tournamentId=" + str(tournamentId)).json()
    @@ -92,7 +93,15 @@ def getGameTimeline(gameRealm, gameId, gameHash):

    def parseLeagues(json):
    for league in json["leagues"]:
    print league
    tournaments = getTournaments(league["id"])
    for tournament in tournaments["highlanderTournaments"]:
    if tournament["title"] == "lck_2016_summer":
    for gameId in tournament["gameIds"]:
    #print gameId, tournament["id"]
    print getMatchDetails(tournament["id"], gameId)
    print "ok"



    def doScheduleItems():
    count = 0
    @@ -106,7 +115,8 @@ def doScheduleItems():


    if __name__ == '__main__':
    #parseLeagues(getLeagues(2))
    #parseLeagues(getLeagues())
    print len("6ccafe25-5e3c-4d9a-a67e-b4c3358df4de")
    #requestMatchDetails("91be3d78-874a-44e0-943f-073d4c9d7bf6", "22851f97-7555-494d-b234-1e4bbeaf8dd5")
    #print getGameStats("TRLH1", "1001440530", "8111bf29dfce9731")
    #doScheduleItems()
    12,203 changes: 12,203 additions & 0 deletions temp.json
    12,203 additions, 0 deletions not shown because the diff is too large. Please use a local Git client to view these changes.
  10. Spenser Solys revised this gist May 30, 2016. 1 changed file with 4 additions and 8 deletions.
    12 changes: 4 additions & 8 deletions api-lolesports-com_docs.md
    Original file line number Diff line number Diff line change
    @@ -1,15 +1,11 @@
    # Unofficial documentation

    This is an unofficial documentation for the internal lolesports.com api.

    This documentation is uncomplete and currently only show all information I got so far.
    Please help me complete and correct this documentation.
    ### Docs

    # Top level domain
    # Top level domains

    The domain for the intern lolesports.com api is http://api.lolesports.com/api/.

    There is also an api at http://na.lolesports.com/api/swagger#!/api/ but I feel like this is a bit outdated.
    * http://api.lolesports.com/api/
    * https://acs.leagueoflegends.com/

    # Api calls

  11. Spenser Solys revised this gist May 30, 2016. 3 changed files with 496 additions and 10 deletions.
    374 changes: 370 additions & 4 deletions api-lolesports-com_docs.md
    Original file line number Diff line number Diff line change
    @@ -83,7 +83,7 @@ Example(s):
    players.0.createdAt: String/Date (ex. "2014-07-16T22:59:13.000Z")
    players.0.updatedAt: String/Date (ex. ^)
    players.0.bios: {
    "en_US": String (basically the langauge is the key, the text is the value)
    en_US: String (basically the langauge is the key, the text is the value)
    }
    players.0.foreignIds {
    drupalId: String/Int
    @@ -773,8 +773,8 @@ Example(s):
    ## Recent Champions

    Parameters:
    * platformId
    * accountId
    * platformId (Required)
    * accountId (Required)

    Example(s):
    * https://acs.leagueoflegends.com/v1/recent_champions/{platformId}/{accountId}
    @@ -797,4 +797,370 @@ Example(s):
    }
    ]
    }
    ```
    ```


    ## Game Stats

    Parameters:
    * gameRealm (Required)
    * gameId (Required)
    * gameHash (Required)

    Example(s):
    * https://acs.leagueoflegends.com/v1/stats/game/{gameRealm}/{gameId}?gameHash={gameHash}
    * https://acs.leagueoflegends.com/v1/stats/game/TRLH1/1001440530?gameHash=8111bf29dfce9731

    ### Top-level schema

    ```
    {
    .seasonId: Int
    .queueId: Int
    .gameId: Int
    .participantIdentities: [
    .participantIdentities.0: {
    .participantIdentities.0.player: {
    .participantIdentities.0.player.profileIcon: Int
    .participantIdentities.0.player.summonerName: String
    }
    .participantIdentities.0.participantId: Int
    }
    ]
    .gameVersion: String
    .platformId: String
    .gameMode: String
    .mapId: Int
    .gameType: String
    .teams: [
    .teams.0: {
    .teams.0.firstDragon: Boolean
    .teams.0.bans: [
    .teams.0.bans.0: {
    .teams.0.bans.0.pickTurn: Int
    .teams.0.bans.0.championId: Int
    }
    ]
    .teams.0.firstInhibitor: Boolean
    .teams.0.win: String
    .teams.0.firstRiftHerald: Boolean
    .teams.0.firstBaron: Boolean
    .teams.0.baronKills: Int
    .teams.0.riftHeraldKills: Int
    .teams.0.firstBlood: Boolean
    .teams.0.teamId: Int
    .teams.0.firstTower: Boolean
    .teams.0.vilemawKills: Int
    .teams.0.inhibitorKills: Int
    .teams.0.towerKills: Int
    .teams.0.dominionVictoryScore: Int
    .teams.0.dragonKills: Int
    }
    ]
    .participants: [
    .participants.0: {
    .participants.0.stats: {
    .participants.0.stats.item1: Int
    .participants.0.stats.totalPlayerScore: Int
    .participants.0.stats.wardsKilled: Int
    .participants.0.stats.unrealKills: Int
    .participants.0.stats.win: Boolean
    .participants.0.stats.objectivePlayerScore: Int
    .participants.0.stats.largestCriticalStrike: Int
    .participants.0.stats.totalDamageDealt: Int
    .participants.0.stats.magicDamageDealtToChampions: Int
    .participants.0.stats.largestMultiKill: Int
    .participants.0.stats.largestKillingSpree: Int
    .participants.0.stats.quadraKills: Int
    .participants.0.stats.totalTimeCrowdControlDealt: Int
    .participants.0.stats.magicalDamageTaken: Int
    .participants.0.stats.longestTimeSpentLiving: Int
    .participants.0.stats.neutralMinionsKilledEnemyJungle: Int
    .participants.0.stats.firstTowerAssist: Boolean
    .participants.0.stats.neutralMinionsKilledTeamJungle: Int
    .participants.0.stats.goldEarned: Int
    .participants.0.stats.item2: Int
    .participants.0.stats.item3: Int
    .participants.0.stats.item0: Int
    .participants.0.stats.deaths: Int
    .participants.0.stats.item6: Int
    .participants.0.stats.wardsPlaced: Int
    .participants.0.stats.item4: Int
    .participants.0.stats.item5: Int
    .participants.0.stats.turretKills: Int
    .participants.0.stats.tripleKills: Int
    .participants.0.stats.goldSpent: Int
    .participants.0.stats.magicDamageDealt: Int
    .participants.0.stats.kills: Int
    .participants.0.stats.doubleKills: Int
    .participants.0.stats.firstInhibitorKill: Boolean
    .participants.0.stats.trueDamageTaken: Int
    .participants.0.stats.firstBloodAssist: Boolean
    .participants.0.stats.firstBloodKill: Boolean
    .participants.0.stats.assists: Int
    .participants.0.stats.totalScoreRank: Int
    .participants.0.stats.neutralMinionsKilled: Int
    .participants.0.stats.combatPlayerScore: Int
    .participants.0.stats.visionWardsBoughtInGame: Int
    .participants.0.stats.physicalDamageDealtToChampions: Int
    .participants.0.stats.pentaKills: Int
    .participants.0.stats.trueDamageDealt: Int
    .participants.0.stats.trueDamageDealtToChampions: Int
    .participants.0.stats.champLevel: Int
    .participants.0.stats.participantId: Int
    .participants.0.stats.firstInhibitorAssist: Boolean
    .participants.0.stats.firstTowerKill: Boolean
    .participants.0.stats.totalHeal: Int
    .participants.0.stats.totalMinionsKilled: Int
    .participants.0.stats.physicalDamageDealt: Int
    .participants.0.stats.sightWardsBoughtInGame: Int
    .participants.0.stats.totalDamageDealtToChampions: Int
    .participants.0.stats.totalUnitsHealed: Int
    .participants.0.stats.inhibitorKills: Int
    .participants.0.stats.totalDamageTaken: Int
    .participants.0.stats.killingSprees: Int
    .participants.0.stats.physicalDamageTaken: Int
    }
    .participants.0.spell1Id: Int
    .participants.0.participantId: Int
    .participants.0.runes: [
    .participants.0.runes.0: {
    .participants.0.runes.0.runeId: Int
    .participants.0.runes.0.rank: Int
    }
    ]
    .participants.0.highestAchievedSeasonTier: String
    .participants.0.masteries: [
    .participants.0.masteries.0: {
    .participants.0.masteries.0.masteryId: Int
    .participants.0.masteries.0.rank: Int
    }
    ]
    .participants.0.spell2Id: Int
    .participants.0.teamId: Int
    .participants.0.timeline: {
    .participants.0.timeline.lane: String
    .participants.0.timeline.participantId: Int
    .participants.0.timeline.csDiffPerMinDeltas: {
    .participants.0.timeline.csDiffPerMinDeltas.0-10: Float
    .participants.0.timeline.csDiffPerMinDeltas.10-20: Float
    }
    .participants.0.timeline.goldPerMinDeltas: {
    .participants.0.timeline.goldPerMinDeltas.0-10: Float
    .participants.0.timeline.goldPerMinDeltas.10-20: Float
    }
    .participants.0.timeline.xpDiffPerMinDeltas: {
    .participants.0.timeline.xpDiffPerMinDeltas.0-10: Float
    .participants.0.timeline.xpDiffPerMinDeltas.10-20: Float
    }
    .participants.0.timeline.creepsPerMinDeltas: {
    .participants.0.timeline.creepsPerMinDeltas.0-10: Int
    .participants.0.timeline.creepsPerMinDeltas.10-20: Float
    }
    .participants.0.timeline.xpPerMinDeltas: {
    .participants.0.timeline.xpPerMinDeltas.0-10: Float
    .participants.0.timeline.xpPerMinDeltas.10-20: Float
    }
    .participants.0.timeline.role: String
    .participants.0.timeline.damageTakenDiffPerMinDeltas: {
    .participants.0.timeline.damageTakenDiffPerMinDeltas.0-10: Float
    .participants.0.timeline.damageTakenDiffPerMinDeltas.10-20: Float
    }
    .participants.0.timeline.damageTakenPerMinDeltas: {
    .participants.0.timeline.damageTakenPerMinDeltas.0-10: Float
    .participants.0.timeline.damageTakenPerMinDeltas.10-20: Float
    }
    }
    .participants.0.championId: Int
    }
    ]
    .gameDuration: Int
    .gameCreation: Long
    }
    ```


    ## Game Timeline

    Parameters:
    * gameRealm (Required)
    * gameId (Required)
    * gameHash (Required)

    Example(s):
    * https://acs.leagueoflegends.com/v1/stats/game/{gameRealm}/{gameID}/timeline?gameHash={gameHash}
    * https://acs.leagueoflegends.com/v1/stats/game/TRLH1/1001440530/timeline?gameHash=8111bf29dfce9731

    ### Top-level schema

    ```
    {
    .frames: [
    .frames.0: {
    .frames.0.timestamp: Int
    .frames.0.participantFrames: {
    .frames.0.participantFrames.10: {
    .frames.0.participantFrames.10.totalGold: Int
    .frames.0.participantFrames.10.teamScore: Int
    .frames.0.participantFrames.10.participantId: Int
    .frames.0.participantFrames.10.level: Int
    .frames.0.participantFrames.10.currentGold: Int
    .frames.0.participantFrames.10.minionsKilled: Int
    .frames.0.participantFrames.10.dominionScore: Int
    .frames.0.participantFrames.10.position: {
    .frames.0.participantFrames.10.position.y: Int
    .frames.0.participantFrames.10.position.x: Int
    }
    .frames.0.participantFrames.10.xp: Int
    .frames.0.participantFrames.10.jungleMinionsKilled: Int
    }
    .frames.0.participantFrames.1: {
    .frames.0.participantFrames.1.totalGold: Int
    .frames.0.participantFrames.1.teamScore: Int
    .frames.0.participantFrames.1.participantId: Int
    .frames.0.participantFrames.1.level: Int
    .frames.0.participantFrames.1.currentGold: Int
    .frames.0.participantFrames.1.minionsKilled: Int
    .frames.0.participantFrames.1.dominionScore: Int
    .frames.0.participantFrames.1.position: {
    .frames.0.participantFrames.1.position.y: Int
    .frames.0.participantFrames.1.position.x: Int
    }
    .frames.0.participantFrames.1.xp: Int
    .frames.0.participantFrames.1.jungleMinionsKilled: Int
    }
    .frames.0.participantFrames.3: {
    .frames.0.participantFrames.3.totalGold: Int
    .frames.0.participantFrames.3.teamScore: Int
    .frames.0.participantFrames.3.participantId: Int
    .frames.0.participantFrames.3.level: Int
    .frames.0.participantFrames.3.currentGold: Int
    .frames.0.participantFrames.3.minionsKilled: Int
    .frames.0.participantFrames.3.dominionScore: Int
    .frames.0.participantFrames.3.position: {
    .frames.0.participantFrames.3.position.y: Int
    .frames.0.participantFrames.3.position.x: Int
    }
    .frames.0.participantFrames.3.xp: Int
    .frames.0.participantFrames.3.jungleMinionsKilled: Int
    }
    .frames.0.participantFrames.2: {
    .frames.0.participantFrames.2.totalGold: Int
    .frames.0.participantFrames.2.teamScore: Int
    .frames.0.participantFrames.2.participantId: Int
    .frames.0.participantFrames.2.level: Int
    .frames.0.participantFrames.2.currentGold: Int
    .frames.0.participantFrames.2.minionsKilled: Int
    .frames.0.participantFrames.2.dominionScore: Int
    .frames.0.participantFrames.2.position: {
    .frames.0.participantFrames.2.position.y: Int
    .frames.0.participantFrames.2.position.x: Int
    }
    .frames.0.participantFrames.2.xp: Int
    .frames.0.participantFrames.2.jungleMinionsKilled: Int
    }
    .frames.0.participantFrames.5: {
    .frames.0.participantFrames.5.totalGold: Int
    .frames.0.participantFrames.5.teamScore: Int
    .frames.0.participantFrames.5.participantId: Int
    .frames.0.participantFrames.5.level: Int
    .frames.0.participantFrames.5.currentGold: Int
    .frames.0.participantFrames.5.minionsKilled: Int
    .frames.0.participantFrames.5.dominionScore: Int
    .frames.0.participantFrames.5.position: {
    .frames.0.participantFrames.5.position.y: Int
    .frames.0.participantFrames.5.position.x: Int
    }
    .frames.0.participantFrames.5.xp: Int
    .frames.0.participantFrames.5.jungleMinionsKilled: Int
    }
    .frames.0.participantFrames.4: {
    .frames.0.participantFrames.4.totalGold: Int
    .frames.0.participantFrames.4.teamScore: Int
    .frames.0.participantFrames.4.participantId: Int
    .frames.0.participantFrames.4.level: Int
    .frames.0.participantFrames.4.currentGold: Int
    .frames.0.participantFrames.4.minionsKilled: Int
    .frames.0.participantFrames.4.dominionScore: Int
    .frames.0.participantFrames.4.position: {
    .frames.0.participantFrames.4.position.y: Int
    .frames.0.participantFrames.4.position.x: Int
    }
    .frames.0.participantFrames.4.xp: Int
    .frames.0.participantFrames.4.jungleMinionsKilled: Int
    }
    .frames.0.participantFrames.7: {
    .frames.0.participantFrames.7.totalGold: Int
    .frames.0.participantFrames.7.teamScore: Int
    .frames.0.participantFrames.7.participantId: Int
    .frames.0.participantFrames.7.level: Int
    .frames.0.participantFrames.7.currentGold: Int
    .frames.0.participantFrames.7.minionsKilled: Int
    .frames.0.participantFrames.7.dominionScore: Int
    .frames.0.participantFrames.7.position: {
    .frames.0.participantFrames.7.position.y: Int
    .frames.0.participantFrames.7.position.x: Int
    }
    .frames.0.participantFrames.7.xp: Int
    .frames.0.participantFrames.7.jungleMinionsKilled: Int
    }
    .frames.0.participantFrames.6: {
    .frames.0.participantFrames.6.totalGold: Int
    .frames.0.participantFrames.6.teamScore: Int
    .frames.0.participantFrames.6.participantId: Int
    .frames.0.participantFrames.6.level: Int
    .frames.0.participantFrames.6.currentGold: Int
    .frames.0.participantFrames.6.minionsKilled: Int
    .frames.0.participantFrames.6.dominionScore: Int
    .frames.0.participantFrames.6.position: {
    .frames.0.participantFrames.6.position.y: Int
    .frames.0.participantFrames.6.position.x: Int
    }
    .frames.0.participantFrames.6.xp: Int
    .frames.0.participantFrames.6.jungleMinionsKilled: Int
    }
    .frames.0.participantFrames.9: {
    .frames.0.participantFrames.9.totalGold: Int
    .frames.0.participantFrames.9.teamScore: Int
    .frames.0.participantFrames.9.participantId: Int
    .frames.0.participantFrames.9.level: Int
    .frames.0.participantFrames.9.currentGold: Int
    .frames.0.participantFrames.9.minionsKilled: Int
    .frames.0.participantFrames.9.dominionScore: Int
    .frames.0.participantFrames.9.position: {
    .frames.0.participantFrames.9.position.y: Int
    .frames.0.participantFrames.9.position.x: Int
    }
    .frames.0.participantFrames.9.xp: Int
    .frames.0.participantFrames.9.jungleMinionsKilled: Int
    }
    .frames.0.participantFrames.8: {
    .frames.0.participantFrames.8.totalGold: Int
    .frames.0.participantFrames.8.teamScore: Int
    .frames.0.participantFrames.8.participantId: Int
    .frames.0.participantFrames.8.level: Int
    .frames.0.participantFrames.8.currentGold: Int
    .frames.0.participantFrames.8.minionsKilled: Int
    .frames.0.participantFrames.8.dominionScore: Int
    .frames.0.participantFrames.8.position: {
    .frames.0.participantFrames.8.position.y: Int
    .frames.0.participantFrames.8.position.x: Int
    }
    .frames.0.participantFrames.8.xp: Int
    .frames.0.participantFrames.8.jungleMinionsKilled: Int
    }
    }
    .frames.0.events: [
    .frames.0.events.0: {
    .frames.0.events.0.itemId: Int
    .frames.0.events.0.timestamp: Int
    .frames.0.events.0.type: String
    .frames.0.events.0.participantId: Int
    }
    ]
    }
    ]
    .frameInterval: Int
    }
    ```

    16 changes: 10 additions & 6 deletions generate_schema.py
    Original file line number Diff line number Diff line change
    @@ -1,9 +1,6 @@
    # Helper functions to generate a schema from an input json file.
    # Sample usage:
    # >>> x = json.load(open('path/to/json_file.json', 'r')
    # >>> jschema(x)
    import json, types

    def jschema(json_obj, max_depth=3):
    def jschema(json_obj, max_depth=10):
    '''Takes a json object and returns a schema with type information.'''

    def rgt(json_obj, level, field_name):
    @@ -44,5 +41,12 @@ def term_print(field_name, json_obj, level):
    types.DictType: 'Object',
    types.ListType: 'List',
    types.NoneType: 'Unknown',
    types.LongType: 'Long',
    types.FloatType: 'Float',
    }
    lprint('{}: {}'.format(field_name, pretty_types[type(json_obj)]), level)
    lprint('{}: {}'.format(field_name, pretty_types[type(json_obj)]), level)


    if __name__ == '__main__':
    x = json.load(open('path/to/file.json', 'r'))
    jschema(x)
    116 changes: 116 additions & 0 deletions riotAPICaller.py
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,116 @@
    import json, requests, pymongo

    # Start of request functions

    def getLeagues(_id=None, slug=None):
    if(_id == None and slug == None):
    r = requests.get("http://api.lolesports.com/api/v1/leagues").json()
    elif(_id == None and slug != None):
    r = requests.get("http://api.lolesports.com/api/v1/leagues?slug=" + str(slug)).json()
    elif(_id != None and slug == None):
    r = requests.get("http://api.lolesports.com/api/v1/leagues?id=" + str(_id)).json()
    elif(_id != None and slug != None):
    r = requests.get("http://api.lolesports.com/api/v1/leagues?id=" + str(_id) + "?slug=" + str(slug)).json()
    return r

    def getScheduleItems(leagueId):
    r = requests.get("http://api.lolesports.com/api/v1/scheduleItems?leagueId=" + str(leagueId)).json()
    return r

    def getTeam(slug, tournamentId):
    r = requests.get("http://api.lolesports.com/api/v1/teams?slug=" + str(slug) + "&tournament=" + str(tournamentId)).json()
    return r

    def getPlayer(slug, tournamentId):
    r = requests.get("http://api.lolesports.com/api/v1/players?slug=" + str(slug) + "&tournament=" + str(tournamentId)).json()
    return r

    def getTournaments(leagueId):
    r = requests.get("http://api.lolesports.com/api/v2/highlanderTournaments?league=" + str(leagueId)).json()
    return r

    def getMatchDetails(tournamentId, matchId):
    r = requests.get("http://api.lolesports.com/api/v2/highlanderMatchDetails?tournamentId=" + str(tournamentId) + "&matchId=" + str(matchId)).json()
    return r

    def getPlayerStats(tournamentId):
    r = requests.get("http://api.lolesports.com/api/v2/tournamentPlayerStats?tournamentId=" + str(tournamentId)).json()
    return r

    def getArticles(language=None, _from=None):
    if(language == None and _from == None):
    r = requests.get("http://api.lolesports.com/api/v1/articles").json()
    elif(language == None and _from != None):
    r = requests.get("http://api.lolesports.com/api/v1/articles?from=" + str(_from)).json()
    elif(language != None and _from == None):
    r = requests.get("http://api.lolesports.com/api/v1/articles?language=" + str(language)).json()
    elif(language != None and _from != None):
    r = requests.get("http://api.lolesports.com/api/v1/articles?language=" + str(language) + "?from=" + str(_from)).json()
    return r

    def getMarquees(locale):
    r = requests.get("http://api.lolesports.com/api/v1/marquees?locale=" + locale).json()
    return r

    def getHTMLBlocks():
    r = requests.get("http://api.lolesports.com/api/v1/htmlBlocks").json()
    return r

    def getVideos():
    r = requests.get("http://api.lolesports.com/api/v2/videos").json()
    return r

    def getStreamGroups():
    r = requests.get("http://api.lolesports.com/api/v2/streamgroups").json()
    return r

    def getGameStats(gameRealm, gameId, gameHash):
    r = requests.get("https://acs.leagueoflegends.com/v1/stats/game/" + str(gameRealm) + "/" + str(gameId) + "?gameHash=" + str(gameHash), verify=False).json()
    return r

    def getGameTimeline(gameRealm, gameId, gameHash):
    r = requests.get("https://acs.leagueoflegends.com/v1/stats/game/" + str(gameRealm) + "/" + str(gameId) + "/timeline?gameHash=" + str(gameHash), verify=False).json()
    return r

    # End of request functions















    # Random Stuff

    def parseLeagues(json):
    for league in json["leagues"]:
    print league

    def doScheduleItems():
    count = 0
    json = getLeagues(2)
    for league in json["leagues"]:
    sjson = getScheduleItems(league["id"])
    for sc in sjson["scheduleItems"]:
    print sc["tournament"]
    #print sjson["tournament"]



    if __name__ == '__main__':
    #parseLeagues(getLeagues(2))
    #requestMatchDetails("91be3d78-874a-44e0-943f-073d4c9d7bf6", "22851f97-7555-494d-b234-1e4bbeaf8dd5")
    #print getGameStats("TRLH1", "1001440530", "8111bf29dfce9731")
    #doScheduleItems()




  12. Spenser Solys revised this gist May 30, 2016. 1 changed file with 2 additions and 2 deletions.
    4 changes: 2 additions & 2 deletions api-lolesports-com_docs.md
    Original file line number Diff line number Diff line change
    @@ -773,8 +773,8 @@ Example(s):
    ## Recent Champions

    Parameters:
    * Region ???
    * Id
    * platformId
    * accountId

    Example(s):
    * https://acs.leagueoflegends.com/v1/recent_champions/{platformId}/{accountId}
  13. Spenser Solys revised this gist May 30, 2016. 1 changed file with 30 additions and 0 deletions.
    30 changes: 30 additions & 0 deletions api-lolesports-com_docs.md
    Original file line number Diff line number Diff line change
    @@ -767,4 +767,34 @@ Example(s):
    teams.??: Unknown
    ]
    }
    ```


    ## Recent Champions

    Parameters:
    * Region ???
    * Id

    Example(s):
    * https://acs.leagueoflegends.com/v1/recent_champions/{platformId}/{accountId}
    * https://acs.leagueoflegends.com/v1/recent_champions/NA1/44413818

    ### Top-level schema

    ```
    {
    platformId: String (ex. NA1)
    accountId: Int
    gameCount: Int
    champions: [
    champions.0: {
    chapions.0.championId: Int
    chapions.0.timestamp: Int
    chapions.0.queue: Int
    chapions.0.lane: String
    chapions.0.role: String
    }
    ]
    }
    ```
  14. Spenser Solys revised this gist May 30, 2016. 1 changed file with 8 additions and 8 deletions.
    16 changes: 8 additions & 8 deletions api-lolesports-com_docs.md
    Original file line number Diff line number Diff line change
    @@ -32,7 +32,7 @@ Example(s):
    leagues.0: {
    leagues.0.abouts: Object
    leagues.0.drupalId: Int
    leagues.0.region: Unknown
    leagues.0.region: String
    leagues.0.updatedAt: String
    leagues.0.slug: String
    leagues.0.names: Object
    @@ -706,10 +706,10 @@ Example(s):
    {
    videos: [
    videos.0: {
    videos.0.slug: Unknown
    videos.0.slug: String (its left null in like all but one...)
    videos.0.reference: String
    videos.0.locale: String
    videos.0.label: Unknown
    videos.0.label: String (its left null in like all but one...)
    videos.0.source: String
    videos.0.game: String
    videos.0.updatedAt: String
    @@ -745,19 +745,19 @@ Example(s):
    streamgroups.0.showSchedule: Boolean
    streamgroups.0.title: String
    streamgroups.0.nowPlaying: String
    streamgroups.0.adLargeImage: Unknown
    streamgroups.0.adLargeImage: String
    streamgroups.0.slug: String
    streamgroups.0.showStat: Boolean
    streamgroups.0.live: Boolean
    streamgroups.0.streams: List
    streamgroups.0.updatedAt: String
    streamgroups.0.showSocial: Boolean
    streamgroups.0.bannerId: Unknown
    streamgroups.0.regionPriority: Unknown
    streamgroups.0.adSmallImage: Unknown
    streamgroups.0.bannerId: Int
    streamgroups.0.regionPriority: String
    streamgroups.0.adSmallImage: String
    streamgroups.0.id: Int
    streamgroups.0.createdAt: String
    streamgroups.0.adUrl: Unknown
    streamgroups.0.adUrl: String/URL Addon (ex. //{region}.merch.riotgames.com/{lang}/ ... jk, its just a link to the riot store
    }
    ]
    players: [
  15. Spenser Solys revised this gist May 30, 2016. 1 changed file with 36 additions and 4 deletions.
    40 changes: 36 additions & 4 deletions api-lolesports-com_docs.md
    Original file line number Diff line number Diff line change
    @@ -70,7 +70,39 @@ Example(s):
    }
    ]
    players: [
    players.??: Unknown
    players.0.id: Int
    players.0.slug: String
    players.0.name: String
    players.0.firstName: String
    players.0.lastName: String
    players.0.roleSlug: String
    players.0.photoUrl: String
    players.0.hometown: String
    players.0.region: String
    players.0.birthdate: String/Date (ex. yyyy-mm-dd)
    players.0.createdAt: String/Date (ex. "2014-07-16T22:59:13.000Z")
    players.0.updatedAt: String/Date (ex. ^)
    players.0.bios: {
    "en_US": String (basically the langauge is the key, the text is the value)
    }
    players.0.foreignIds {
    drupalId: String/Int
    Also, it looks like gameRealm is a key here (ex. "TRLH3": "1001160057")
    }
    players.0.socialNetworks: {
    Social Network name as the key and the url as the value (ex. "facebook": "http://facebook.com")
    }
    players.0.champions: [
    players.0.champions.0.id: Int
    players.0.champions.0.playerId: Int
    players.0.champions.0.championId: Int
    players.0.champions.0.championKey: String
    players.0.champions.0.championName: String
    players.0.champions.0.createdAt: String/Date (ex. "2015-11-26T18:17:10.000Z")
    players.0.champions.0.updatedAt: String/Date (ex. ^ )
    (This can sometimes be empty)
    ]
    ]
    highlanderTournaments: [
    highlanderTournaments.0: {
    @@ -101,18 +133,18 @@ Example(s):
    teams.0.homeLeague: String
    teams.0.altLogoUrl: Unknown
    teams.0.name: String
    teams.0.players: List
    teams.0.players: List of Ints
    teams.0.acronym: String
    teams.0.updatedAt: String
    teams.0.teamPhotoUrl: String
    teams.0.slug: String
    teams.0.starters: List
    teams.0.starters: List of Ints
    teams.0.bios: Object
    teams.0.logoUrl: String
    teams.0.foreignIds: Object
    teams.0.id: Int
    teams.0.createdAt: String
    teams.0.subs: List
    teams.0.subs: List of Ints
    }
    ]
    }
  16. @brcooley brcooley revised this gist Dec 25, 2015. 1 changed file with 49 additions and 0 deletions.
    49 changes: 49 additions & 0 deletions api-lolesports-com_docs.md
    Original file line number Diff line number Diff line change
    @@ -686,4 +686,53 @@ Example(s):
    }
    ]
    }
    ```

    ## streamgroups

    Parameters:
    * None

    Example(s):
    * http://api.lolesports.com/api/v2/streamgroups

    ### Top-level schema

    ```
    {
    streams: [
    streams.??: Unknown
    ]
    highlanderTournaments: [
    highlanderTournaments.??: Unknown
    ]
    streamgroups: [
    streamgroups.0: {
    streamgroups.0.showAd: Boolean
    streamgroups.0.showBanner: Boolean
    streamgroups.0.showSchedule: Boolean
    streamgroups.0.title: String
    streamgroups.0.nowPlaying: String
    streamgroups.0.adLargeImage: Unknown
    streamgroups.0.slug: String
    streamgroups.0.showStat: Boolean
    streamgroups.0.live: Boolean
    streamgroups.0.streams: List
    streamgroups.0.updatedAt: String
    streamgroups.0.showSocial: Boolean
    streamgroups.0.bannerId: Unknown
    streamgroups.0.regionPriority: Unknown
    streamgroups.0.adSmallImage: Unknown
    streamgroups.0.id: Int
    streamgroups.0.createdAt: String
    streamgroups.0.adUrl: Unknown
    }
    ]
    players: [
    players.??: Unknown
    ]
    teams: [
    teams.??: Unknown
    ]
    }
    ```
  17. @brcooley brcooley revised this gist Dec 24, 2015. 1 changed file with 15 additions and 0 deletions.
    15 changes: 15 additions & 0 deletions api-lolesports-com_docs.md
    Original file line number Diff line number Diff line change
    @@ -1,3 +1,18 @@
    # Unofficial documentation

    This is an unofficial documentation for the internal lolesports.com api.

    This documentation is uncomplete and currently only show all information I got so far.
    Please help me complete and correct this documentation.

    # Top level domain

    The domain for the intern lolesports.com api is http://api.lolesports.com/api/.

    There is also an api at http://na.lolesports.com/api/swagger#!/api/ but I feel like this is a bit outdated.

    # Api calls

    ## leagues

    Parameters:
  18. @brcooley brcooley revised this gist Dec 24, 2015. 1 changed file with 398 additions and 122 deletions.
    520 changes: 398 additions & 122 deletions api-lolesports-com_docs.md
    Original file line number Diff line number Diff line change
    @@ -1,26 +1,116 @@
    # Unofficial documentation
    ## leagues

    Parameters:
    * id
    * slug

    Example(s):
    * http://api.lolesports.com/api/v1/leagues
    * http://api.lolesports.com/api/v1/leagues?id=9
    * http://api.lolesports.com/api/v1/leagues?slug=worlds

    This is an unofficial documentation for the internal lolesports.com api.
    ### Top-level schema

    ```
    {
    leagues: [
    leagues.0: {
    leagues.0.abouts: Object
    leagues.0.drupalId: Int
    leagues.0.region: Unknown
    leagues.0.updatedAt: String
    leagues.0.slug: String
    leagues.0.names: Object
    leagues.0.logoUrl: String
    leagues.0.id: Int
    leagues.0.createdAt: String
    leagues.0.name: String
    }
    ]
    }
    ```

    This documentation is uncomplete and currently only show all information I got so far.
    Please help me complete and correct this documentation.
    ## scheduleItems

    # Top level domain
    Parameters:
    * leagueId (Required)

    The domain for the intern lolesports.com api is http://api.lolesports.com/api/.
    Example(s):
    * http://api.lolesports.com/api/v1/scheduleItems?leagueId=9

    There is also an api at http://na.lolesports.com/api/swagger#!/api/ but I feel like this is a bit outdated.
    ### Top-level schema

    # Api calls
    ```
    {
    scheduleItems: [
    scheduleItems.0: {
    scheduleItems.0.league: String
    scheduleItems.0.tournament: String
    scheduleItems.0.tags: Object
    scheduleItems.0.scheduledTime: String
    scheduleItems.0.content: String
    scheduleItems.0.bracket: String
    scheduleItems.0.id: String
    scheduleItems.0.match: String
    }
    ]
    players: [
    players.??: Unknown
    ]
    highlanderTournaments: [
    highlanderTournaments.0: {
    highlanderTournaments.0.leagueReference: String
    highlanderTournaments.0.standings: Object
    highlanderTournaments.0.endDate: String
    highlanderTournaments.0.description: String
    highlanderTournaments.0.roles: Object
    highlanderTournaments.0.title: String
    highlanderTournaments.0.queues: Object
    highlanderTournaments.0.gameMode: Object
    highlanderTournaments.0.rosteringStrategy: Object
    highlanderTournaments.0.breakpoints: Object
    highlanderTournaments.0.league: String
    highlanderTournaments.0.liveMatches: List
    highlanderTournaments.0.rosters: Object
    highlanderTournaments.0.brackets: Object
    highlanderTournaments.0.matchType: Object
    highlanderTournaments.0.gameIds: List
    highlanderTournaments.0.startDate: String
    highlanderTournaments.0.id: String
    highlanderTournaments.0.platformIds: List
    highlanderTournaments.0.published: Boolean
    }
    ]
    teams: [
    teams.0: {
    teams.0.homeLeague: String
    teams.0.altLogoUrl: Unknown
    teams.0.name: String
    teams.0.players: List
    teams.0.acronym: String
    teams.0.updatedAt: String
    teams.0.teamPhotoUrl: String
    teams.0.slug: String
    teams.0.starters: List
    teams.0.bios: Object
    teams.0.logoUrl: String
    teams.0.foreignIds: Object
    teams.0.id: Int
    teams.0.createdAt: String
    teams.0.subs: List
    }
    ]
    }
    ```

    ## teams

    Parameters:
    * slug (Required)
    * tournament (Required)

    Example:
    http://api.lolesports.com/api/v1/teams?slug=fnatic&tournament=91be3d78-874a-44e0-943f-073d4c9d7bf6
    Example(s):
    * http://api.lolesports.com/api/v1/teams?slug=fnatic&tournament=91be3d78-874a-44e0-943f-073d4c9d7bf6

    ### Top-level schema

    @@ -135,126 +225,213 @@ http://api.lolesports.com/api/v1/teams?slug=fnatic&tournament=91be3d78-874a-44e0
    }
    ```

    ## leagues
    ## players

    Parameters:
    * id
    * slug

    Example:
    http://api.lolesports.com/api/v1/leagues

    http://api.lolesports.com/api/v1/leagues?id=9

    http://api.lolesports.com/api/v1/leagues?slug=worlds
    * slug (Required)
    * tournament (Required)

    Example(s):
    * http://api.lolesports.com/api/v1/players?slug=faker&tournament=91be3d78-874a-44e0-943f-073d4c9d7bf6

    ### Top-level schema

    ```
    {
    leagues: [
    leagues.0: {
    leagues.0.abouts: Object
    leagues.0.drupalId: Int
    leagues.0.region: Unknown
    leagues.0.updatedAt: String
    leagues.0.slug: String
    leagues.0.names: Object
    leagues.0.logoUrl: String
    leagues.0.id: Int
    leagues.0.createdAt: String
    leagues.0.name: String
    scheduleItems: [
    scheduleItems.??: Unknown
    ]
    playerStatsSummaries: [
    playerStatsSummaries.0: {
    playerStatsSummaries.0.csPerTenMinutes: Float
    playerStatsSummaries.0.killParticipationRank: Int
    playerStatsSummaries.0.playerId: String
    playerStatsSummaries.0.kdaRatio: Float
    playerStatsSummaries.0.killParticipation: Float
    playerStatsSummaries.0.mostPlayedChampions: List
    playerStatsSummaries.0.csPerTenMinutesRank: Int
    playerStatsSummaries.0.kdaRatioRank: Int
    }
    ]
    }
    ```

    ## articles

    http://api.lolesports.com/api/v1/articles?from=12&language=en&size=12

    #### Top-level schema

    ```
    {
    articles: [
    articles.0: {
    articles.0.author: String
    articles.0.locale: String
    articles.0.externalScripts: List
    articles.0.bodySmall: Unknown
    articles.0.customTemplate: String
    articles.0.category: Object
    articles.0.uuid: String
    articles.0.title: String
    articles.0.tuuid: String
    articles.0.media: Object
    articles.0.comments: List
    articles.0.type: String
    articles.0.status: Int
    articles.0.redirect: Unknown
    articles.0.tags: Unknown
    articles.0.nid: String
    articles.0.path: Object
    articles.0.bodyFull: String
    articles.0.shortTitle: String
    articles.0.language: String
    articles.0.created: String
    articles.0.showIn: Unknown
    articles.0.region: String
    articles.0.changed: String
    articles.0.published: String
    articles.0.bodyMedium: Unknown
    articles.0.backdrop: List
    playerStatsHistories: [
    playerStatsHistories.0: {
    playerStatsHistories.0.championId: Int
    playerStatsHistories.0.kills: Int
    playerStatsHistories.0.deaths: Int
    playerStatsHistories.0.playerId: String
    playerStatsHistories.0.timestamp: Int
    playerStatsHistories.0.team: Int
    playerStatsHistories.0.kdaRatio: Int
    playerStatsHistories.0.game: String
    playerStatsHistories.0.killParticipation: Int
    playerStatsHistories.0.assists: Int
    playerStatsHistories.0.win: Boolean
    playerStatsHistories.0.csPerTenMin: Float
    playerStatsHistories.0.id: String
    playerStatsHistories.0.match: String
    playerStatsHistories.0.opponent: Int
    }
    ]
    teams: [
    teams.0: {
    teams.0.homeLeague: String
    teams.0.altLogoUrl: Unknown
    teams.0.name: String
    teams.0.players: List
    teams.0.acronym: String
    teams.0.updatedAt: String
    teams.0.teamPhotoUrl: String
    teams.0.slug: String
    teams.0.starters: List
    teams.0.bios: Object
    teams.0.logoUrl: String
    teams.0.foreignIds: Object
    teams.0.id: Int
    teams.0.createdAt: String
    teams.0.subs: List
    }
    ]
    players: [
    players.0: {
    players.0.photoUrl: String
    players.0.hometown: String
    players.0.playerStatsSummary: String
    players.0.updatedAt: String
    players.0.subOnTeams: List
    players.0.id: Int
    players.0.createdAt: String
    players.0.roleSlug: String
    players.0.champions: List
    players.0.bios: Object
    players.0.socialNetworks: Object
    players.0.scheduleItems: List
    players.0.playerStatsHistory: List
    players.0.photoInformation: Object
    players.0.foreignIds: Object
    players.0.slug: String
    players.0.name: String
    players.0.firstName: String
    players.0.lastName: String
    players.0.region: String
    players.0.birthdate: Unknown
    players.0.teams: List
    players.0.starterOnTeams: List
    }
    ]
    highlanderTournaments: [
    highlanderTournaments.0: {
    highlanderTournaments.0.leagueReference: String
    highlanderTournaments.0.description: String
    highlanderTournaments.0.roles: Object
    highlanderTournaments.0.title: String
    highlanderTournaments.0.rosters: Object
    highlanderTournaments.0.queues: Object
    highlanderTournaments.0.gameMode: Object
    highlanderTournaments.0.rosteringStrategy: Object
    highlanderTournaments.0.seedingStrategy: Object
    highlanderTournaments.0.liveMatches: List
    highlanderTournaments.0.bracketType: Object
    highlanderTournaments.0.brackets: Object
    highlanderTournaments.0.matchType: Object
    highlanderTournaments.0.gameIds: List
    highlanderTournaments.0.id: String
    highlanderTournaments.0.platformIds: List
    highlanderTournaments.0.published: Boolean
    }
    ]
    }
    ```

    ## scheduleItems

    http://api.lolesports.com/api/v1/scheduleItems?leagueId=9
    ## highlanderTournaments

    or
    Parameters:
    * league (Required)

    http://api.lolesports.com/api/v1/scheduleItems?id=???
    Example(s):
    * http://api.lolesports.com/api/v2/highlanderTournaments?league=9

    #### Top-level schema
    ### Top-level schema

    ```
    {
    scheduleItems: [
    scheduleItems.0: {
    scheduleItems.0.content: String
    scheduleItems.0.scheduledTime: String
    scheduleItems.0.id: String
    scheduleItems.0.tags: Object
    }
    ]
    highlanderTournaments: [
    highlanderTournaments.0: {
    highlanderTournaments.0.leagueReference: String
    highlanderTournaments.0.standings: Object
    highlanderTournaments.0.endDate: String
    highlanderTournaments.0.description: String
    highlanderTournaments.0.roles: Object
    highlanderTournaments.0.title: String
    highlanderTournaments.0.queues: Object
    highlanderTournaments.0.gameMode: Object
    highlanderTournaments.0.rosteringStrategy: Object
    highlanderTournaments.0.breakpoints: Object
    highlanderTournaments.0.league: String
    highlanderTournaments.0.liveMatches: List
    highlanderTournaments.0.rosters: Object
    highlanderTournaments.0.brackets: Object
    highlanderTournaments.0.matchType: Object
    highlanderTournaments.0.gameIds: List
    highlanderTournaments.0.startDate: String
    highlanderTournaments.0.id: String
    highlanderTournaments.0.platformIds: List
    highlanderTournaments.0.published: Boolean
    }
    ]
    }
    ```

    ## highlanderMatchDetails

    Parameters:
    * tournamentId (Required)
    * matchId (Required)

    Example(s):
    * http://api.lolesports.com/api/v2/highlanderMatchDetails?tournamentId=91be3d78-874a-44e0-943f-073d4c9d7bf6&matchId=22851f97-7555-494d-b234-1e4bbeaf8dd5

    ### Top-level schema

    ```
    {
    scheduleItems: [
    scheduleItems.0: {
    scheduleItems.0.league: String
    scheduleItems.0.tournament: String
    scheduleItems.0.tags: Object
    scheduleItems.0.scheduledTime: String
    scheduleItems.0.content: String
    scheduleItems.0.bracket: String
    scheduleItems.0.id: String
    scheduleItems.0.match: String
    }
    ]
    videos: [
    videos.0: {
    videos.0.slug: Unknown
    videos.0.reference: String
    videos.0.locale: String
    videos.0.label: Unknown
    videos.0.source: String
    videos.0.game: String
    videos.0.updatedAt: String
    videos.0.id: Int
    videos.0.createdAt: String
    }
    ]
    htmlBlocks: [
    htmlBlocks.??: Unknown
    ]
    gameIdMappings: [
    gameIdMappings.0: {
    gameIdMappings.0.gameHash: String
    gameIdMappings.0.id: String
    }
    ]
    teams: [
    teams.0: {
    teams.0.homeLeague: String
    teams.0.altLogoUrl: Unknown
    teams.0.name: String
    teams.0.players: List
    teams.0.acronym: String
    @@ -270,14 +447,122 @@ http://api.lolesports.com/api/v1/scheduleItems?id=???
    teams.0.subs: List
    }
    ]
    players: [
    players.0: {
    players.0.roleSlug: String
    players.0.name: String
    players.0.firstName: String
    players.0.photoUrl: String
    players.0.lastName: String
    players.0.region: String
    players.0.updatedAt: String
    players.0.birthdate: Unknown
    players.0.slug: String
    players.0.bios: Object
    players.0.socialNetworks: Object
    players.0.hometown: String
    players.0.champions: List
    players.0.liveGameTeam: Int
    players.0.foreignIds: Object
    players.0.id: Int
    players.0.createdAt: String
    }
    ]
    }
    ```

    ## tournamentPlayerStats

    Parameters:
    * tournamentId (Required)

    Example(s):
    * http://api.lolesports.com/api/v2/tournamentPlayerStats?tournamentId=91be3d78-874a-44e0-943f-073d4c9d7bf6

    ### Top-level schema

    ```
    {
    stats: [
    stats.0: {
    stats.0.teamSlug: String
    stats.0.name: String
    stats.0.kills: Int
    stats.0.deaths: Int
    stats.0.kda: Float
    stats.0.csPerMin: Float
    stats.0.playerSlug: String
    stats.0.killParticipation: Float
    stats.0.assists: Int
    stats.0.team: String
    stats.0.cs: Int
    stats.0.position: String
    stats.0.gamesPlayed: Int
    stats.0.id: Int
    stats.0.minutesPlayed: Int
    }
    ]
    }
    ```

    ## articles

    Parameters:
    * language
    * from

    Example(s):
    * http://api.lolesports.com/api/v1/articles
    * http://api.lolesports.com/api/v1/articles?language=en
    * http://api.lolesports.com/api/v1/articles?from=100

    ### Top-level schema

    ```
    {
    articles: [
    articles.0: {
    articles.0.author: String
    articles.0.locale: String
    articles.0.externalScripts: List
    articles.0.bodySmall: Unknown
    articles.0.customTemplate: String
    articles.0.category: Object
    articles.0.uuid: String
    articles.0.title: String
    articles.0.tuuid: String
    articles.0.media: Object
    articles.0.comments: Object
    articles.0.type: String
    articles.0.status: Int
    articles.0.redirect: Unknown
    articles.0.tags: Unknown
    articles.0.nid: String
    articles.0.path: Object
    articles.0.bodyFull: String
    articles.0.shortTitle: String
    articles.0.language: String
    articles.0.created: String
    articles.0.showIn: Unknown
    articles.0.region: String
    articles.0.changed: String
    articles.0.published: String
    articles.0.bodyMedium: Unknown
    articles.0.backdrop: List
    }
    ]
    }
    ```

    ## marquees

    http://api.lolesports.com/api/v1/marquees?locale=en_US
    Parameters:
    * locale (Required)

    Example(s):
    * http://api.lolesports.com/api/v1/marquees?locale=en_US

    #### Top-level schema
    ### Top-level schema

    ```
    {
    @@ -339,9 +624,13 @@ http://api.lolesports.com/api/v1/marquees?locale=en_US

    ## htmlBlocks

    http://api.lolesports.com/api/v1/htmlBlocks
    Parameters:
    * None

    #### Top-level schema
    Example(s):
    * http://api.lolesports.com/api/v1/htmlBlocks

    ### Top-level schema

    ```
    {
    @@ -356,43 +645,30 @@ http://api.lolesports.com/api/v1/htmlBlocks
    }
    ```

    ## streamgroups
    ## videos

    http://api.lolesports.com/api/v2/streamgroups
    Paramters:
    * None

    #### Top-level schema
    Example(s):
    * http://api.lolesports.com/api/v2/videos

    ### Top-level schema

    ```
    {
    streams: [
    streams.??: Unknown
    ]
    highlanderTournaments: [
    highlanderTournaments.??: Unknown
    ]
    streamgroups: [
    streamgroups.0: {
    streamgroups.0.showBanner: Boolean
    streamgroups.0.title: String
    streamgroups.0.nowPlaying: String
    streamgroups.0.slug: String
    streamgroups.0.showStat: Boolean
    streamgroups.0.live: Boolean
    streamgroups.0.streams: List
    streamgroups.0.updatedAt: String
    streamgroups.0.showSocial: Boolean
    streamgroups.0.bannerId: Unknown
    streamgroups.0.regionPriority: Unknown
    streamgroups.0.id: Int
    streamgroups.0.createdAt: String
    videos: [
    videos.0: {
    videos.0.slug: Unknown
    videos.0.reference: String
    videos.0.locale: String
    videos.0.label: Unknown
    videos.0.source: String
    videos.0.game: String
    videos.0.updatedAt: String
    videos.0.id: Int
    videos.0.createdAt: String
    }
    ]
    players: [
    players.??: Unknown
    ]
    teams: [
    teams.??: Unknown
    ]
    }
    ```
    **Feel free to dicuss the api and search for other api calls.**
    ```
  19. @brcooley brcooley revised this gist Dec 24, 2015. 1 changed file with 6 additions and 3 deletions.
    9 changes: 6 additions & 3 deletions api-lolesports-com_docs.md
    Original file line number Diff line number Diff line change
    @@ -142,9 +142,12 @@ Parameters:
    * slug

    Example:
    http://api.lolesports.com/api/v1/leagues
    http://api.lolesports.com/api/v1/leagues?id=9
    http://api.lolesports.com/api/v1/leagues?slug=worlds
    http://api.lolesports.com/api/v1/leagues

    http://api.lolesports.com/api/v1/leagues?id=9

    http://api.lolesports.com/api/v1/leagues?slug=worlds


    ### Top-level schema

  20. @brcooley brcooley revised this gist Dec 24, 2015. 1 changed file with 3 additions and 3 deletions.
    6 changes: 3 additions & 3 deletions api-lolesports-com_docs.md
    Original file line number Diff line number Diff line change
    @@ -142,9 +142,9 @@ Parameters:
    * slug

    Example:
    http://api.lolesports.com/api/v1/leagues
    http://api.lolesports.com/api/v1/leagues?id=9
    http://api.lolesports.com/api/v1/leagues?slug=worlds
    http://api.lolesports.com/api/v1/leagues
    http://api.lolesports.com/api/v1/leagues?id=9
    http://api.lolesports.com/api/v1/leagues?slug=worlds

    ### Top-level schema

  21. @brcooley brcooley revised this gist Dec 24, 2015. 1 changed file with 14 additions and 52 deletions.
    66 changes: 14 additions & 52 deletions api-lolesports-com_docs.md
    Original file line number Diff line number Diff line change
    @@ -15,9 +15,9 @@ There is also an api at http://na.lolesports.com/api/swagger#!/api/ but I feel l

    ## teams

    Required params:
    * slug
    * tournament
    Parameters:
    * slug (Required)
    * tournament (Required)

    Example:
    http://api.lolesports.com/api/v1/teams?slug=fnatic&tournament=91be3d78-874a-44e0-943f-073d4c9d7bf6
    @@ -137,12 +137,16 @@ http://api.lolesports.com/api/v1/teams?slug=fnatic&tournament=91be3d78-874a-44e0

    ## leagues

    http://api.lolesports.com/api/v1/leagues
    http://api.lolesports.com/api/v1/leagues?slug=$league-slug
    Parameters:
    * id
    * slug

    Examples for $league-slug: eu-lcs, worlds, na-lcs
    Example:
    http://api.lolesports.com/api/v1/leagues
    http://api.lolesports.com/api/v1/leagues?id=9
    http://api.lolesports.com/api/v1/leagues?slug=worlds

    #### Top-level schema
    ### Top-level schema

    ```
    {
    @@ -151,57 +155,15 @@ Examples for $league-slug: eu-lcs, worlds, na-lcs
    leagues.0.abouts: Object
    leagues.0.drupalId: Int
    leagues.0.region: Unknown
    leagues.0.logoUrl: String
    leagues.0.id: Int
    leagues.0.names: Object
    leagues.0.updatedAt: String
    leagues.0.tournaments: List
    leagues.0.slug: String
    leagues.0.names: Object
    leagues.0.logoUrl: String
    leagues.0.id: Int
    leagues.0.createdAt: String
    leagues.0.name: String
    }
    ]
    highlanderTournaments: [
    highlanderTournaments.0: {
    highlanderTournaments.0.leagueReference: String
    highlanderTournaments.0.description: String
    highlanderTournaments.0.roles: Object
    highlanderTournaments.0.title: String
    highlanderTournaments.0.queues: Object
    highlanderTournaments.0.gameMode: Object
    highlanderTournaments.0.rosteringStrategy: Object
    highlanderTournaments.0.breakpoints: Object
    highlanderTournaments.0.published: Boolean
    highlanderTournaments.0.rosters: Object
    highlanderTournaments.0.id: String
    highlanderTournaments.0.liveMatches: List
    highlanderTournaments.0.gameIds: List
    highlanderTournaments.0.brackets: Object
    highlanderTournaments.0.platformIds: List
    highlanderTournaments.0.matchType: Object
    }
    ]
    highlanderRecords: [
    highlanderRecords.??: Unknown
    ]
    teams: [
    teams.0: {
    teams.0.homeLeague: String
    teams.0.name: String
    teams.0.bios: Object
    teams.0.acronym: String
    teams.0.logoUrl: String
    teams.0.teamPhotoUrl: String
    teams.0.id: Int
    teams.0.starters: List
    teams.0.players: List
    teams.0.updatedAt: String
    teams.0.foreignIds: Object
    teams.0.slug: String
    teams.0.createdAt: String
    teams.0.subs: List
    }
    ]
    }
    ```

  22. @brcooley brcooley revised this gist Dec 24, 2015. 1 changed file with 67 additions and 26 deletions.
    93 changes: 67 additions & 26 deletions api-lolesports-com_docs.md
    Original file line number Diff line number Diff line change
    @@ -15,25 +15,58 @@ There is also an api at http://na.lolesports.com/api/swagger#!/api/ but I feel l

    ## teams

    http://api.lolesports.com/api/v1/teams?slug=$team-slug
    Required params:
    * slug
    * tournament

    Examples for $team-slug: fnatic, origin, h2k
    Example:
    http://api.lolesports.com/api/v1/teams?slug=fnatic&tournament=91be3d78-874a-44e0-943f-073d4c9d7bf6

    #### Top-level schema
    ### Top-level schema

    ```
    {
    scheduleItems: [
    scheduleItems.0: {
    scheduleItems.0.content: String
    scheduleItems.0.scheduledTime: String
    scheduleItems.0.id: String
    scheduleItems.0.tags: Object
    scheduleItems.??: Unknown
    ]
    teamStatsHistories: [
    teamStatsHistories.0: {
    teamStatsHistories.0.kills: Int
    teamStatsHistories.0.deaths: Int
    teamStatsHistories.0.timestamp: Int
    teamStatsHistories.0.team: Int
    teamStatsHistories.0.game: String
    teamStatsHistories.0.championIds: List
    teamStatsHistories.0.assists: Int
    teamStatsHistories.0.win: Boolean
    teamStatsHistories.0.id: String
    teamStatsHistories.0.match: String
    teamStatsHistories.0.opponent: Int
    }
    ]
    teams: [
    teams.0: {
    teams.0.homeLeague: String
    teams.0.altLogoUrl: Unknown
    teams.0.name: String
    teams.0.players: List
    teams.0.acronym: String
    teams.0.updatedAt: String
    teams.0.teamPhotoUrl: String
    teams.0.slug: String
    teams.0.starters: List
    teams.0.bios: Object
    teams.0.logoUrl: String
    teams.0.foreignIds: Object
    teams.0.id: Int
    teams.0.createdAt: String
    teams.0.subs: List
    }
    ]
    players: [
    players.0: {
    players.0.roleSlug: String
    players.0.teamRosterStat: String
    players.0.name: String
    players.0.firstName: String
    players.0.photoUrl: String
    @@ -51,6 +84,32 @@ Examples for $team-slug: fnatic, origin, h2k
    players.0.createdAt: String
    }
    ]
    teamStatsSummaries: [
    teamStatsSummaries.0: {
    teamStatsSummaries.0.kdaRatio: Float
    teamStatsSummaries.0.averageWinLength: Int
    teamStatsSummaries.0.firstDragonKillRatioRank: Int
    teamStatsSummaries.0.averageWinLengthRank: Int
    teamStatsSummaries.0.teamId: String
    teamStatsSummaries.0.averageDamageByPosition: Object
    teamStatsSummaries.0.firstDragonKillRatio: Float
    teamStatsSummaries.0.firstTowerRatioRank: Int
    teamStatsSummaries.0.kdaRatioRank: Int
    teamStatsSummaries.0.firstTowerRatio: Float
    }
    ]
    teamRosterStats: [
    teamRosterStats.0: {
    teamRosterStats.0.averageKillParticipation: Float
    teamRosterStats.0.summonerName: String
    teamRosterStats.0.playerId: String
    teamRosterStats.0.averageAssists: Float
    teamRosterStats.0.championIds: List
    teamRosterStats.0.averageDeaths: Float
    teamRosterStats.0.averageKills: Float
    teamRosterStats.0.gamesPlayed: Int
    }
    ]
    highlanderTournaments: [
    highlanderTournaments.0: {
    highlanderTournaments.0.leagueReference: String
    @@ -73,24 +132,6 @@ Examples for $team-slug: fnatic, origin, h2k
    highlanderTournaments.0.published: Boolean
    }
    ]
    teams: [
    teams.0: {
    teams.0.homeLeague: String
    teams.0.name: String
    teams.0.players: List
    teams.0.acronym: String
    teams.0.updatedAt: String
    teams.0.teamPhotoUrl: String
    teams.0.slug: String
    teams.0.starters: List
    teams.0.bios: Object
    teams.0.logoUrl: String
    teams.0.foreignIds: Object
    teams.0.id: Int
    teams.0.createdAt: String
    teams.0.subs: List
    }
    ]
    }
    ```

  23. @brcooley brcooley revised this gist Sep 28, 2015. 1 changed file with 2 additions and 2 deletions.
    4 changes: 2 additions & 2 deletions api-lolesports-com_docs.md
    Original file line number Diff line number Diff line change
    @@ -128,8 +128,8 @@ Examples for $league-slug: eu-lcs, worlds, na-lcs
    highlanderTournaments.0.title: String
    highlanderTournaments.0.queues: Object
    highlanderTournaments.0.gameMode: Object
    highlanderTournaments.0.rosteringStringategy: Object
    highlanderTournaments.0.breakpoInts: Object
    highlanderTournaments.0.rosteringStrategy: Object
    highlanderTournaments.0.breakpoints: Object
    highlanderTournaments.0.published: Boolean
    highlanderTournaments.0.rosters: Object
    highlanderTournaments.0.id: String
  24. @brcooley brcooley revised this gist Sep 28, 2015. 2 changed files with 49 additions and 1 deletion.
    2 changes: 1 addition & 1 deletion api-lolesports-com_docs.md
    Original file line number Diff line number Diff line change
    @@ -1,6 +1,6 @@
    # Unofficial documentation

    This is an unofficial documentation for the intern lolesports.com api.
    This is an unofficial documentation for the internal lolesports.com api.

    This documentation is uncomplete and currently only show all information I got so far.
    Please help me complete and correct this documentation.
    48 changes: 48 additions & 0 deletions generate_schema.py
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,48 @@
    # Helper functions to generate a schema from an input json file.
    # Sample usage:
    # >>> x = json.load(open('path/to/json_file.json', 'r')
    # >>> jschema(x)

    def jschema(json_obj, max_depth=3):
    '''Takes a json object and returns a schema with type information.'''

    def rgt(json_obj, level, field_name):
    if level > max_depth:
    return
    elif level == max_depth:
    term_print(field_name, json_obj, level)
    return

    if isinstance(json_obj, types.ListType):
    lprint('{}: ['.format(field_name), level)
    if len(json_obj) == 0:
    term_print(field_name + '.??', None, level + 1)
    else:
    rgt(json_obj[0], level + 1, field_name + '.0')
    lprint(']', level)
    elif isinstance(json_obj, types.DictType):
    lprint('{}: {{'.format(field_name), level)
    if len(json_obj.keys()) == 0:
    term_print(field_name + '.??', None, level)
    for k in json_obj.keys():
    rgt(json_obj[k], level + 1, field_name + '.' + k)
    lprint('}', level)
    else:
    term_print(field_name, json_obj, level)

    rgt(json_obj, 0, '')

    def lprint(string_to_print, level):
    print('{}{}'.format(' ' * level, string_to_print))

    def term_print(field_name, json_obj, level):
    pretty_types = {
    types.BooleanType: 'Boolean',
    types.IntType: 'Int',
    types.UnicodeType: 'String',
    types.StringType: 'String',
    types.DictType: 'Object',
    types.ListType: 'List',
    types.NoneType: 'Unknown',
    }
    lprint('{}: {}'.format(field_name, pretty_types[type(json_obj)]), level)
  25. @brcooley brcooley revised this gist Sep 28, 2015. 1 changed file with 38 additions and 0 deletions.
    38 changes: 38 additions & 0 deletions api-lolesports-com_docs.md
    Original file line number Diff line number Diff line change
    @@ -168,6 +168,44 @@ Examples for $league-slug: eu-lcs, worlds, na-lcs

    http://api.lolesports.com/api/v1/articles?from=12&language=en&size=12

    #### Top-level schema

    ```
    {
    articles: [
    articles.0: {
    articles.0.author: String
    articles.0.locale: String
    articles.0.externalScripts: List
    articles.0.bodySmall: Unknown
    articles.0.customTemplate: String
    articles.0.category: Object
    articles.0.uuid: String
    articles.0.title: String
    articles.0.tuuid: String
    articles.0.media: Object
    articles.0.comments: List
    articles.0.type: String
    articles.0.status: Int
    articles.0.redirect: Unknown
    articles.0.tags: Unknown
    articles.0.nid: String
    articles.0.path: Object
    articles.0.bodyFull: String
    articles.0.shortTitle: String
    articles.0.language: String
    articles.0.created: String
    articles.0.showIn: Unknown
    articles.0.region: String
    articles.0.changed: String
    articles.0.published: String
    articles.0.bodyMedium: Unknown
    articles.0.backdrop: List
    }
    ]
    }
    ```

    ## scheduleItems

    http://api.lolesports.com/api/v1/scheduleItems?leagueId=9
  26. @brcooley brcooley revised this gist Sep 28, 2015. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion api-lolesports-com_docs.md
    Original file line number Diff line number Diff line change
    @@ -351,4 +351,4 @@ http://api.lolesports.com/api/v2/streamgroups
    ]
    }
    ```
    *Feel free to dicuss the api and search for other api calls.*
    **Feel free to dicuss the api and search for other api calls.**
  27. @brcooley brcooley revised this gist Sep 28, 2015. 1 changed file with 36 additions and 1 deletion.
    37 changes: 36 additions & 1 deletion api-lolesports-com_docs.md
    Original file line number Diff line number Diff line change
    @@ -316,4 +316,39 @@ http://api.lolesports.com/api/v1/htmlBlocks

    http://api.lolesports.com/api/v2/streamgroups

    ###### Feel free to dicuss the api and search for other api calls.
    #### Top-level schema

    ```
    {
    streams: [
    streams.??: Unknown
    ]
    highlanderTournaments: [
    highlanderTournaments.??: Unknown
    ]
    streamgroups: [
    streamgroups.0: {
    streamgroups.0.showBanner: Boolean
    streamgroups.0.title: String
    streamgroups.0.nowPlaying: String
    streamgroups.0.slug: String
    streamgroups.0.showStat: Boolean
    streamgroups.0.live: Boolean
    streamgroups.0.streams: List
    streamgroups.0.updatedAt: String
    streamgroups.0.showSocial: Boolean
    streamgroups.0.bannerId: Unknown
    streamgroups.0.regionPriority: Unknown
    streamgroups.0.id: Int
    streamgroups.0.createdAt: String
    }
    ]
    players: [
    players.??: Unknown
    ]
    teams: [
    teams.??: Unknown
    ]
    }
    ```
    *Feel free to dicuss the api and search for other api calls.*
  28. @brcooley brcooley revised this gist Sep 28, 2015. 1 changed file with 75 additions and 0 deletions.
    75 changes: 75 additions & 0 deletions api-lolesports-com_docs.md
    Original file line number Diff line number Diff line change
    @@ -19,6 +19,81 @@ http://api.lolesports.com/api/v1/teams?slug=$team-slug

    Examples for $team-slug: fnatic, origin, h2k

    #### Top-level schema

    ```
    {
    scheduleItems: [
    scheduleItems.0: {
    scheduleItems.0.content: String
    scheduleItems.0.scheduledTime: String
    scheduleItems.0.id: String
    scheduleItems.0.tags: Object
    }
    ]
    players: [
    players.0: {
    players.0.roleSlug: String
    players.0.name: String
    players.0.firstName: String
    players.0.photoUrl: String
    players.0.lastName: String
    players.0.region: String
    players.0.updatedAt: String
    players.0.birthdate: Unknown
    players.0.slug: String
    players.0.bios: Object
    players.0.socialNetworks: Object
    players.0.hometown: String
    players.0.champions: List
    players.0.foreignIds: Object
    players.0.id: Int
    players.0.createdAt: String
    }
    ]
    highlanderTournaments: [
    highlanderTournaments.0: {
    highlanderTournaments.0.leagueReference: String
    highlanderTournaments.0.standings: Object
    highlanderTournaments.0.description: String
    highlanderTournaments.0.roles: Object
    highlanderTournaments.0.title: String
    highlanderTournaments.0.rosters: Object
    highlanderTournaments.0.queues: Object
    highlanderTournaments.0.gameMode: Object
    highlanderTournaments.0.rosteringStrategy: Object
    highlanderTournaments.0.seedingStrategy: Object
    highlanderTournaments.0.liveMatches: List
    highlanderTournaments.0.bracketType: Object
    highlanderTournaments.0.brackets: Object
    highlanderTournaments.0.matchType: Object
    highlanderTournaments.0.gameIds: List
    highlanderTournaments.0.id: String
    highlanderTournaments.0.platformIds: List
    highlanderTournaments.0.published: Boolean
    }
    ]
    teams: [
    teams.0: {
    teams.0.homeLeague: String
    teams.0.name: String
    teams.0.players: List
    teams.0.acronym: String
    teams.0.updatedAt: String
    teams.0.teamPhotoUrl: String
    teams.0.slug: String
    teams.0.starters: List
    teams.0.bios: Object
    teams.0.logoUrl: String
    teams.0.foreignIds: Object
    teams.0.id: Int
    teams.0.createdAt: String
    teams.0.subs: List
    }
    ]
    }
    ```

    ## leagues

    http://api.lolesports.com/api/v1/leagues
  29. @brcooley brcooley revised this gist Sep 28, 2015. 1 changed file with 60 additions and 0 deletions.
    60 changes: 60 additions & 0 deletions api-lolesports-com_docs.md
    Original file line number Diff line number Diff line change
    @@ -158,6 +158,66 @@ http://api.lolesports.com/api/v1/scheduleItems?id=???

    http://api.lolesports.com/api/v1/marquees?locale=en_US

    #### Top-level schema

    ```
    {
    marqueeItems: [
    marqueeItems.0: {
    marqueeItems.0.priority: Int
    marqueeItems.0.marqueeId: Int
    marqueeItems.0.updatedAt: String
    marqueeItems.0.tier: Int
    marqueeItems.0.article: String
    marqueeItems.0.id: Int
    marqueeItems.0.createdAt: String
    }
    ]
    articles: [
    articles.0: {
    articles.0.author: String
    articles.0.locale: String
    articles.0.externalScripts: List
    articles.0.bodySmall: Unknown
    articles.0.customTemplate: String
    articles.0.category: Object
    articles.0.uuid: String
    articles.0.title: String
    articles.0.tuuid: String
    articles.0.media: Object
    articles.0.comments: Object
    articles.0.type: String
    articles.0.status: Int
    articles.0.redirect: Unknown
    articles.0.tags: Unknown
    articles.0.nid: String
    articles.0.path: Object
    articles.0.bodyFull: String
    articles.0.shortTitle: String
    articles.0.language: String
    articles.0.created: String
    articles.0.showIn: Unknown
    articles.0.region: String
    articles.0.changed: String
    articles.0.published: String
    articles.0.bodyMedium: Unknown
    articles.0.backdrop: List
    }
    ]
    marquees: [
    marquees.0: {
    marquees.0.marqueeItems: List
    marquees.0.locale: String
    marquees.0.publishDate: String
    marquees.0.id: Int
    marquees.0.updatedAt: String
    marquees.0.slug: String
    marquees.0.createdAt: String
    }
    ]
    }
    ```

    ## htmlBlocks

    http://api.lolesports.com/api/v1/htmlBlocks
  30. @brcooley brcooley revised this gist Sep 28, 2015. 1 changed file with 15 additions and 0 deletions.
    15 changes: 15 additions & 0 deletions api-lolesports-com_docs.md
    Original file line number Diff line number Diff line change
    @@ -162,6 +162,21 @@ http://api.lolesports.com/api/v1/marquees?locale=en_US

    http://api.lolesports.com/api/v1/htmlBlocks

    #### Top-level schema

    ```
    {
    htmlBlocks: [
    htmlBlocks.0: {
    htmlBlocks.0.locale: String
    htmlBlocks.0.content: String
    htmlBlocks.0.contentType: String
    htmlBlocks.0.compositeId: String
    }
    ]
    }
    ```

    ## streamgroups

    http://api.lolesports.com/api/v2/streamgroups