Madalin-Antonoiu
1/8/2017 - 1:01 PM

gistfile1.txt

import json
import requests

config = json.loads(open('config.json').read())  # Load Configs
API_KEY = config["wlogs_api_key"]
default_region = config["default_region"]

region_locale = {
    'us': ['us', 'en_US', 'en'],
#    'kr': ['kr', 'ko_KR', 'ko'],
#    'tw': ['tw', 'zh_TW', 'zh'],
    'eu': ['eu', 'en_GB', 'en'] }


def get_char(name, server, target_region):
    r = requests.get("https://www.warcraftlogs.com:443/v1/parses/character/%s/%s/%s?api_key=%s" %(
           name, server, region_locale[target_region][0], API_KEY))
    
    if r.status_code != 200:
        raise Exception("Could Not Find Character (No 200 from API)")

    player_dict = json.loads(r.text)

    dps_logs = player_dict["parses"]["character"]

    # start Markdown
    return_string += '```CSS\n'  
    # Display this
    return_string += "Dps. Logs: %s → " % dps_logs
    # end Markdown
    return_string += '```'  
    return return_string

async def wlogs(client, message):
    target_region = default_region
    try:
        i = str(message.content).split(' ')
        name = i[1]
        server = i[2]
        if len(i) == 4 and i[3].lower() in region_locale.keys():
            target_region = i[3].lower()
        character_info = get_char(name, server, target_region)
        await client.send_message(message.channel, character_info)
    except Exception as e:
        print(e)
        await client.send_message(message.channel, "Error With Name or Server\n"
                                                   "Use: !wlogs <name> <server> <region>\n"
                                                   "Hyphenate Two Word Servers (Ex: Twisting-Nether)")
import discord
import json

# Commands #
from commands.wlogs import wlogs

config = json.loads(open('config.json').read())  # Load Configs
DISCORD_TOKEN = config["discord_token"]
client = discord.Client()


@client.event
async def on_ready():
    print('Logged in as')
    print(client.user.name)
    print(client.user.id)
    print('------')


@client.event
async def on_message(message):

    if message.content.startswith('!info') or message.content.startswith('!help'):
        await client.send_message(message.channel, "I'm Wlogs, the warcraftlogs analyzer coded by Navi!\n"
                                                   "Use: !wlogs <name> <server> <region> \n"
                                                   "Example: !wlogs Navi Draenor eu")

    if message.content.startswith('!wlogs'):
        await wlogs(client, message)

client.run(DISCORD_TOKEN)