diff --git a/app/ffxiv.py b/app/ffxiv.py index 7b1719a7..0c66ddde 100644 --- a/app/ffxiv.py +++ b/app/ffxiv.py @@ -2,7 +2,10 @@ import requests import os import discord -token = os.getenv('ffxiv_token') +if os.getenv('ffxiv_token'): + token = "&private_key=%s" % os.getenv('ffxiv_token') +else: + token = '' def parse_message(message): name = message.split()[1] + '+' + message.split()[2] @@ -12,10 +15,10 @@ def parse_message(message): def make_request(name, server): - player_search = "https://xivapi.com/character/search?name=%s&server=%s&private_key=%s" % (name, server, token) + player_search = "https://xivapi.com/character/search?name=%s&server=%s%s" % (name, server, token) print(player_search) player_id = list(filter( - lambda x: server.lower() in x['Server'].lower(), + lambda x: server.lower() in x['Server'].lower(), requests.get(player_search).json()['Results'] ))[0]['ID'] import pprint @@ -24,7 +27,7 @@ def make_request(name, server): # if adding extended=1 to the query, you'll see some image files, eg. /cj/1/blackmage.png # prepend these with https://xivapi.com/ to get a useable url # https://xivapi.com//cj/1/blackmage.png - request_url = "https://xivapi.com/character/%s?extended=1&data=CJ,FC&private_key=%s" % (player_id, token) + request_url = "https://xivapi.com/character/%s?extended=1&data=CJ,FC%s" % (player_id, token) print(request_url) player_blob = requests.get(request_url).json() character = player_blob['Character'] @@ -37,32 +40,40 @@ def make_request(name, server): xp_to_level_up = current_class['ExpLevelTogo'] class_icon = "https://xivapi.com/%s" % current_class['Job']['Icon'] - grand_company = character['GrandCompany'] + if character['GrandCompany']['Company']: + grand_company = character['GrandCompany'] + + if player_blob['FreeCompany']: + free_company = player_blob['FreeCompany'] + fc_member_count = free_company['ActiveMemberCount'] + fc_name = free_company['Name'] + fc_slogan = free_company['Slogan'] + fc_tag = free_company['Tag'] + fc_rank = free_company['Rank'] + fc_estate = free_company['Estate'] + fc_plot = fc_estate['Plot'] + - free_company = player_blob['FreeCompany'] - fc_member_count = free_company['ActiveMemberCount'] - fc_name = free_company['Name'] - fc_slogan = free_company['Slogan'] - fc_tag = free_company['Tag'] - fc_rank = free_company['Rank'] - fc_estate = free_company['Estate'] - fc_plot = fc_estate['Plot'] - - embed = discord.Embed(description=character['Name'], color=0x428bca, type="rich") embed.set_author(name="FFXIV API bullshit for %s\nPlayer ID: %s" % (character['Name'], character['ID']), icon_url="http://na.lodestonenews.com/images/thumbnail.png") embed.set_thumbnail(url=class_icon) embed.add_field(name="Current Class", value="%s - Lvl: %s" % (current_class_name, current_class_level), inline=True) embed.add_field(name="XP to level up", value=xp_to_level_up, inline=True) embed.add_field(name="Race", value=character['Race']['Name'], inline=True) - embed.add_field(name="Grand Company", value="%s of the %s" % (grand_company['Rank']['Name'], grand_company['Company']['Name']), inline=False) - embed.add_field( - name="Free Company: %s (%s)" % (fc_name, fc_tag), - value="\nActive Members: %s\nFC Rank: %s\nFC Estate: %s" % ( - fc_member_count, fc_rank, fc_plot - ), - inline=False - ) + if character['GrandCompany']['Company']: + embed.add_field(name="Grand Company", value="%s of the %s" % (grand_company['Rank']['Name'], grand_company['Company']['Name']), inline=False) + else: + embed.add_field(name="Grand Company", value="Not in a Grand Company", inline=False) + if player_blob['FreeCompany']: + embed.add_field( + name="Free Company: %s (%s)" % (fc_name, fc_tag), + value="\nActive Members: %s\nFC Rank: %s\nFC Estate: %s" % ( + fc_member_count, fc_rank, fc_plot + ), + inline=False + ) + else: + embed.add_field(name="Free Company", value="Not in a Free Company", inline=False) embed.set_image(url=character['Portrait']) embed.set_footer(text='Feel free to use my refer a friend code: MA9Q49CJ') # embed.add_field(name=':hospital: Recovered Cases :hospital:', value=recovered, inline=False)