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 reports
= {rank
['report']['code'] for encounter
in encounter_ranks
for rank
in encounter
['ranks']}
59 query ($code: String!) {
73 result
= client
.execute(query
, variable_values
={"code": code
})
74 for kill_rank
in result
['reportData']['report']['rankings']['data']:
75 tanks
= kill_rank
['roles']['tanks']['characters']
76 healers
= kill_rank
['roles']['healers']['characters']
77 dps
= kill_rank
['roles']['dps']['characters']
78 pull
= kill_rank
['fightID']
79 print(code
,pull
,','.join([str(char
['id']) for char
in tanks
] + [str(char
['id']) for char
in healers
] + [str(char
['id']) for char
in dps
]), sep
="|")