Refactor, extract pulls and get example pull
[fflogs.git] / main.py
CommitLineData
95f675c7
JC
1#!./fflogs/bin/python
2from gql import Client, gql
3from gql.transport.aiohttp import AIOHTTPTransport
4import requests
5from secrets import *
6
d918c26a
JC
7encounter_aliases = [
8 'cloudRanks',
9 'dogRanks',
10 'thanRanks',
11 'boobaRanks',
12 'gaiaRanks',
13]
14
95f675c7
JC
15res = requests.post(
16 "https://www.fflogs.com/oauth/token",
17 data={"grant_type": "client_credentials"},
18 auth=(client_id, client_secret)
19 )
20token = res.json()['access_token']
21headers = {'Authorization': f"Bearer {token}"}
22
23transport = AIOHTTPTransport(url="https://www.fflogs.com/api/v2/client", headers=headers)
24
25client = Client(transport=transport, fetch_schema_from_transport=True)
26
27query = 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 )
49params = {
50 "name": f"{name}",
d89e6fa6 51 "serverSlug": f"{serverSlug}",
95f675c7
JC
52 "serverRegion": "na",
53 }
54result = client.execute(query, variable_values=params)
d918c26a
JC
55encounter_ranks = [result['characterData']['character'][encounter_alias] for encounter_alias in encounter_aliases]
56ranks = [rank for encounter in encounter_ranks for rank in encounter['ranks']]
57pulls = [(rank['report']['code'], rank['report']['fightID']) for rank in ranks]
58query = 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 )
79result = client.execute(query, variable_values={"code": pulls[0][0], "fightIds": pulls[0][1]})