From 80cc2f1a667e34314791829cb342599d1ce02216 Mon Sep 17 00:00:00 2001 From: Luke Robles Date: Wed, 12 Aug 2020 09:32:44 -0700 Subject: [PATCH] whoops, didnt even commmit ffxiv --- .gitignore | 2 +- app/ffxiv.py | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 71 insertions(+), 1 deletion(-) create mode 100644 app/ffxiv.py diff --git a/.gitignore b/.gitignore index 820b00f3..fcf60a32 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,4 @@ dragon_bot_env *.pyc destiny.py -ffxiv.py +__pycache__ \ No newline at end of file diff --git a/app/ffxiv.py b/app/ffxiv.py new file mode 100644 index 00000000..b448c6aa --- /dev/null +++ b/app/ffxiv.py @@ -0,0 +1,70 @@ +import requests +import os +import discord + +token = os.getenv('ffxiv_token') + +def parse_message(message): + name = message.split()[1] + '+' + message.split()[2] + server = message.split()[3] + + return make_request(name=name, server=server) + + +def make_request(name, server): + player_id = list(filter( + lambda x: server.lower() in x['Server'].lower(), + requests.get( + "https://xivapi.com/character/search?name=%s&server=%s&private_key=%s" % (name, server, token) + ).json()['Results'] + ))[0]['ID'] + import pprint + pp = pprint.PrettyPrinter(indent=2, compact=True) + + # 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) + print(request_url) + player_blob = requests.get(request_url).json() + character = player_blob['Character'] + # pp.pprint(player_blob) + # pp.pprint(character) + + current_class = character['ActiveClassJob'] + current_class_name = current_class['Job']['Name'] + current_class_level = character['ActiveClassJob']['Level'] + xp_to_level_up = current_class['ExpLevelTogo'] + class_icon = "https://xivapi.com/%s" % current_class['Job']['Icon'] + + grand_company = character['GrandCompany'] + + 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, player ID: %s" % (character['Name'], character['ID']), icon_url=character['Avatar']) + 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 + ) + embed.set_image(url=character['Portrait']) + # embed.add_field(name=':hospital: Recovered Cases :hospital:', value=recovered, inline=False) + # embed.add_field(name=':skull_crossbones: Deaths :skull_crossbones:', value=deaths, inline=False) + # embed.add_field(name='Source', value='https://github.com/CSSEGISandData/COVID-19') + return embed