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 | 55 | encounter_ranks = [result['characterData']['character'][encounter_alias] for encounter_alias in encounter_aliases] |
b4f226ff | 56 | reports = {rank['report']['code'] for encounter in encounter_ranks for rank in encounter['ranks']} |
d918c26a JC |
57 | query = gql( |
58 | ''' | |
94715042 | 59 | query ($code: String!) { |
d918c26a JC |
60 | reportData { |
61 | report ( | |
62 | code: $code | |
63 | ) | |
64 | { | |
65 | code | |
94715042 | 66 | rankings |
d918c26a JC |
67 | } |
68 | } | |
69 | } | |
70 | ''' | |
71 | ) | |
94715042 | 72 | for code in reports: |
94715042 JC |
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'] | |
94715042 | 78 | pull = kill_rank['fightID'] |
b6bf2852 | 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="|") |