Remove requirement for token for testing the bot, also account for people not in grand companies or free companies

This commit is contained in:
Luke Robles 2020-08-20 10:08:00 -07:00
parent 26d0903be0
commit 756dc35a7a

View File

@ -2,7 +2,10 @@ import requests
import os import os
import discord 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): def parse_message(message):
name = message.split()[1] + '+' + message.split()[2] name = message.split()[1] + '+' + message.split()[2]
@ -12,10 +15,10 @@ def parse_message(message):
def make_request(name, server): 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) print(player_search)
player_id = list(filter( 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'] requests.get(player_search).json()['Results']
))[0]['ID'] ))[0]['ID']
import pprint 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 # 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 # prepend these with https://xivapi.com/ to get a useable url
# https://xivapi.com//cj/1/blackmage.png # 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) print(request_url)
player_blob = requests.get(request_url).json() player_blob = requests.get(request_url).json()
character = player_blob['Character'] character = player_blob['Character']
@ -37,32 +40,40 @@ def make_request(name, server):
xp_to_level_up = current_class['ExpLevelTogo'] xp_to_level_up = current_class['ExpLevelTogo']
class_icon = "https://xivapi.com/%s" % current_class['Job']['Icon'] 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 = 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_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.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="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="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="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) if character['GrandCompany']['Company']:
embed.add_field( embed.add_field(name="Grand Company", value="%s of the %s" % (grand_company['Rank']['Name'], grand_company['Company']['Name']), inline=False)
name="Free Company: %s (%s)" % (fc_name, fc_tag), else:
value="\nActive Members: %s\nFC Rank: %s\nFC Estate: %s" % ( embed.add_field(name="Grand Company", value="Not in a Grand Company", inline=False)
fc_member_count, fc_rank, fc_plot if player_blob['FreeCompany']:
), embed.add_field(
inline=False 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_image(url=character['Portrait'])
embed.set_footer(text='Feel free to use my refer a friend code: MA9Q49CJ') 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) # embed.add_field(name=':hospital: Recovered Cases :hospital:', value=recovered, inline=False)