2 from gql
import Client
, gql
3 from gql
.transport
.aiohttp
import AIOHTTPTransport
16 "https://www.fflogs.com/oauth/token",
17 data
={"grant_type": "client_credentials"},
18 auth
=(client_id
, client_secret
)
20 token
= res
.json()['access_token']
21 headers
= {'Authorization': f
"Bearer {token}"}
23 transport
= AIOHTTPTransport(url
="https://www.fflogs.com/api/v2/client", headers
=headers
)
25 client
= Client(transport
=transport
, fetch_schema_from_transport
=True)
29 query ($name: String!, $serverSlug: String!, $serverRegion: String!) {
33 serverSlug: $serverSlug
34 serverRegion: $serverRegion
39 cloudRanks: encounterRankings (encounterID: 73)
40 dogRanks: encounterRankings (encounterID: 74)
41 thanRanks: encounterRankings (encounterID: 75)
42 boobaRanks: encounterRankings (encounterID: 76)
43 gaiaRanks: encounterRankings (encounterID: 77)
51 "serverSlug": f
"{serverSlug}",
54 result
= client
.execute(query
, variable_values
=params
)
55 encounter_ranks
= [result
['characterData']['character'][encounter_alias
] for encounter_alias
in encounter_aliases
]
56 ranks
= [rank
for encounter
in encounter_ranks
for rank
in encounter
['ranks']]
57 pulls
= [(rank
['report']['code'], rank
['report']['fightID']) for rank
in ranks
]
60 query ($code: String!, $fightIds: [Int]!) {
79 result
= client
.execute(query
, variable_values
={"code": pulls
[0][0], "fightIds": pulls
[0][1]})