PSV on stdout
[fflogs.git] / main.py
diff --git a/main.py b/main.py
index cad29b5..e5a170b 100755 (executable)
--- a/main.py
+++ b/main.py
@@ -4,6 +4,14 @@ from gql.transport.aiohttp import AIOHTTPTransport
 import requests
 from secrets import *
 
+encounter_aliases = [
+        'cloudRanks',
+        'dogRanks',
+        'thanRanks',
+        'boobaRanks',
+        'gaiaRanks',
+]
+
 res = requests.post(
         "https://www.fflogs.com/oauth/token", 
         data={"grant_type": "client_credentials"},
@@ -40,12 +48,32 @@ query = gql(
         )
 params = {
         "name": f"{name}",
-        "serverSlug": "{serverSlug}",
+        "serverSlug": f"{serverSlug}",
         "serverRegion": "na",
         }
 result = client.execute(query, variable_values=params)
-print(result['characterData']['character']['cloudRanks']['ranks'][0]['report'])
-print(result['characterData']['character']['dogRanks']['ranks'][0]['report'])
-print(result['characterData']['character']['thanRanks']['ranks'][0]['report'])
-print(result['characterData']['character']['boobaRanks']['ranks'][0]['report'])
-print(result['characterData']['character']['gaiaRanks']['ranks'][0]['report'])
+encounter_ranks = [result['characterData']['character'][encounter_alias] for encounter_alias in encounter_aliases]
+reports = {rank['report']['code'] for encounter in encounter_ranks for rank in encounter['ranks']}
+query = gql(
+        '''
+        query ($code: String!) {
+          reportData {
+            report (
+              code: $code
+            )
+            {
+              code
+              rankings
+            }
+          }
+        }
+        '''
+        )
+for code in reports:
+    result = client.execute(query, variable_values={"code": code})
+    for kill_rank in result['reportData']['report']['rankings']['data']:
+        tanks = kill_rank['roles']['tanks']['characters']
+        healers = kill_rank['roles']['healers']['characters']
+        dps = kill_rank['roles']['dps']['characters']
+        pull = kill_rank['fightID']
+        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="|")