Commit | Line | Data |
---|---|---|
95f675c7 JC |
1 | #!./fflogs/bin/python |
2 | from gql import Client, gql | |
3 | from gql.transport.aiohttp import AIOHTTPTransport | |
4 | import requests | |
5 | from secrets import * | |
6 | ||
d918c26a JC |
7 | encounter_aliases = [ |
8 | 'cloudRanks', | |
9 | 'dogRanks', | |
10 | 'thanRanks', | |
11 | 'boobaRanks', | |
12 | 'gaiaRanks', | |
13 | ] | |
14 | ||
95f675c7 JC |
15 | res = requests.post( |
16 | "https://www.fflogs.com/oauth/token", | |
17 | data={"grant_type": "client_credentials"}, | |
18 | auth=(client_id, client_secret) | |
19 | ) | |
20 | token = res.json()['access_token'] | |
21 | headers = {'Authorization': f"Bearer {token}"} | |
22 | ||
23 | transport = AIOHTTPTransport(url="https://www.fflogs.com/api/v2/client", headers=headers) | |
24 | ||
25 | client = Client(transport=transport, fetch_schema_from_transport=True) | |
26 | ||
27 | query = gql( | |
28 | ''' | |
29 | query ($name: String!, $serverSlug: String!, $serverRegion: String!) { | |
30 | characterData { | |
31 | character ( | |
32 | name: $name | |
33 | serverSlug: $serverSlug | |
34 | serverRegion: $serverRegion | |
35 | ) | |
36 | { | |
37 | canonicalID | |
38 | name | |
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) | |
44 | } | |
45 | } | |
46 | } | |
47 | ''' | |
48 | ) | |
49 | params = { | |
50 | "name": f"{name}", | |
d89e6fa6 | 51 | "serverSlug": f"{serverSlug}", |
95f675c7 JC |
52 | "serverRegion": "na", |
53 | } | |
54 | result = client.execute(query, variable_values=params) | |
d918c26a JC |
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] | |
58 | query = gql( | |
59 | ''' | |
60 | query ($code: String!, $fightIds: [Int]!) { | |
61 | reportData { | |
62 | report ( | |
63 | code: $code | |
64 | ) | |
65 | { | |
66 | code | |
67 | fights ( | |
68 | fightIDs: $fightIds | |
69 | ) | |
70 | { | |
71 | hasEcho | |
72 | kill | |
73 | } | |
74 | } | |
75 | } | |
76 | } | |
77 | ''' | |
78 | ) | |
79 | result = client.execute(query, variable_values={"code": pulls[0][0], "fightIds": pulls[0][1]}) |