Esempio n. 1
0
    def get(self, token):
        """
        token is urlencode({'n':cName, 'cid':cID, 'rtok':cli.token['refresh_token']})
        """
        sdb = StaticDB()

        data = parse_qs(token)

        data = parse_qs(token)
        cName = data['n'][0]
        cid = data['cid'][0]
        rTok = data['rtok'][0]
        print(rTok)
        cli = None
        try:  # refresh page, just relogin instead of storing tokens between sessions (bad)
            cli = api.ESIClient(rTok, refresh=True)
        except APIException:
            return make_response(redirect('/api/v1/login'))
        skillset_name = 'test.csv'


        skillset = {}
        skillset_name = 'test.csv'
        with open(skillset_name, 'r') as csvfile:
            skillsreader = csv.reader(csvfile, delimiter=',', quotechar='"')
            for row in skillsreader:
                skill_group, skill_name, required_level = row
                required_level = int(required_level)
                if not 1 <= required_level <= 5:
                    continue
                skill_id = sdb.skill_id(skill_name)
                if skill_group not in skillset:
                    skillset[skill_group] = []
                skillset[skill_group].append((skill_name, skill_id, required_level))

        #api_args = {'keyID': argv[2], 'vCode': argv[3]}


        title = "Skillcheck - %s" % skillset_name

        html = '<!DOCTYPE html>'
        html += '<html>'
        html += '<head>'
        html += '<title>%s</title>' % title
        html += '<link rel="stylesheet" type="text/css" href="/static/style.css" />'
        html += '</head>'
        html += '<body>'
        html += '<br><br>'
        html += '<a href=/api/v1/login><img src=https://web.ccpgamescdn.com/eveonlineassets/developers/eve-sso-login-black-small.png /></a>'
        html += '<br><br>'
        html += 're-login to see other toons on account'
        html += '<h1>%s</h1>' % title

        char_id, char_name = (cid, cName)
        charsheet = api.get_skills(cli, cid)
        trained_skills = {}
        for skill in charsheet['skills']:
            skill_id = int(skill['skill_id'])
            skill_level = int(skill['trained_skill_level'])
            skill_name = sdb.skill_name(skill_id)
            trained_skills[skill_name] = required_level

        html += '<h2>{0}</h2>'.format(char_name)
        low_skill_counter = 0
        for group in sorted(skillset.keys()):
            groupheader_printed = False

            for skill in sorted(skillset[group]):
                skill_name, skill_id, required_level = skill

                if skill_name in trained_skills:
                    trained_level = trained_skills[skill_name]
                else:
                    trained_level = 0

                if trained_level < required_level:
                    if not groupheader_printed:
                        html += '<h3>{0}</h3>'.format(group)
                        html += '<table class="skills">'
                        groupheader_printed = True

                    html += '<tr class="lowskill">'
                    html += '<td><a class="igblink" onclick="CCPEVE.showInfo({0})">{1}</a></td>'.format(skill_id, skill_name)
                    html += '<td><img style="background:url(/static/gfx/level{1}_red.png)" src="/static/gfx/level{0}.png" alt="Level {0}/{1}" /></td>'.format(trained_level, required_level)
                    html += '</tr>'
                    low_skill_counter += 1

            if groupheader_printed:
                html += '</table>'

        if low_skill_counter == 0:
            html += '<span>Skill requirements met</span>'

        html += '</body></html>'
        return html
Esempio n. 2
0
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.

"""skillcheck.py: """

from sys import argv
import csv
import eveapi_simple as api
from evestatic import StaticDB


sdb = StaticDB()

skillset_name = argv[1]
skillset = {}
with open(skillset_name + '.csv', 'rb') as csvfile:
    skillsreader = csv.reader(csvfile, delimiter=',', quotechar='"')
    for row in skillsreader:
        skill_group, skill_name, required_level = row
        required_level = int(required_level)
        if not 1 <= required_level <= 5:
            continue
        skill_id = sdb.skill_id(skill_name)
        if skill_group not in skillset:
            skillset[skill_group] = []
        skillset[skill_group].append((skill_name, skill_id, required_level))

api_args = {'keyID': argv[2], 'vCode': argv[3]}

characters = []
Esempio n. 3
0
characters = []
key_info = api.query('/account/APIKeyInfo', api_args)
for character in key_info.result.key.rowset.row:
    char_id = character.attrib['characterID']
    char_name = character.attrib['characterName']
    characters.append((char_id, char_name))

print('<!DOCTYPE html>')
print('<html>')
print('<head>')
print('<title>API key info</title>')
print('<link rel="stylesheet" type="text/css" href="style.css" />')
print('</head>')
print('<body>')

sdb = StaticDB()
for character in characters:
    char_id, char_name = character
    api_args['characterID'] = char_id
    charsheet = api.query('/char/CharacterSheet', api_args)
    skills = {}
    for skill in charsheet.xpath("result/rowset[@name='skills']/row"):
        skill_id = int(skill.attrib['typeID'])
        skill_level = int(skill.attrib['level'])
        skill_name = sdb.skill_name(skill_id)
        skill_group = sdb.skill_group(skill_id)
        if skill_group not in skills:
            skills[skill_group] = []
        skills[skill_group].append((skill_name, skill_id, skill_level))

    print('<h2>%s</h2>' % char_name)
Esempio n. 4
0
    def get(self):
        print('=' * 20)
        characters = []
        token = request.args.get('code')
        cli = None
        try:  # refresh page, just relogin instead of storing tokens between sessions (bad)
            cli = api.ESIClient(token)
        except APIException:
            return make_response(redirect('/api/v1/login'))

        data = cli.get_info()
        cID = data['CharacterID']
        cName = data['CharacterName']
        enc_data = urlencode({
            'n': cName,
            'cid': cID,
            'rtok': cli.token['refresh_token']
        })  # need a quick way to access other route

        html = '<!DOCTYPE html>'
        html += '<html>'
        html += '<head>'
        html += '<title>API key info</title>'
        html += '<link rel="stylesheet" type="text/css" href="/static/style.css" />'
        html += '</head>'
        html += '<body>'
        html += '<a href=/api/v1/skillcheck/{0}>skillcheck</a>'.format(
            enc_data)
        html += '<br><br>'
        html += '<a href=/api/v1/login><img src=https://web.ccpgamescdn.com/eveonlineassets/developers/eve-sso-login-black-small.png /></a>'
        html += '<br><br>'
        html += 're-login to see other toons on account'
        html += '</body>'
        html += '</html>'

        sdb = StaticDB()

        charsheet = api.get_skills(cli, cID)

        skills = {}
        for skill in charsheet['skills']:
            skill_id = int(skill['skill_id'])
            skill_level = int(skill['trained_skill_level'])
            skill_name = sdb.skill_name(skill_id)
            skill_group = sdb.skill_group(skill_id)
            if skill_group not in skills:
                skills[skill_group] = []
            skills[skill_group].append((skill_name, skill_id, skill_level))

        html += '<h2>{0}</h2>'.format(cName)
        for group in sorted(skills.keys()):
            html += '<h3>{0}</h3>'.format(group)
            html += '<table class="skills">'
            for skill in sorted(skills[group]):
                skill_name, skill_id, skill_level = skill
                html += '<tr>'
                html += '<td>' if skill_level < 5 else '<td class="l5skill">'
                html += '<a class="igblink" onclick="CCPEVE.showInfo({0})">{1}</a></td>'.format(
                    skill_id, skill_name)  # rip igb o7
                html += '<td><img src="/static/gfx/level{0}.png" alt="Level {1}" /></td>'.format(
                    skill_level, skill_level)
                html += '</tr>'
            html += '</table>'

        html += '</body>'
        html += '</html>'
        return html
Esempio n. 5
0
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
"""skillcheck.py: """

from sys import argv
import csv
import eveapi_simple as api
from evestatic import StaticDB

sdb = StaticDB()

skillset_name = argv[1]
skillset = {}
with open(skillset_name + '.csv', 'rb') as csvfile:
    skillsreader = csv.reader(csvfile, delimiter=',', quotechar='"')
    for row in skillsreader:
        skill_group, skill_name, required_level = row
        required_level = int(required_level)
        if not 1 <= required_level <= 5:
            continue
        skill_id = sdb.skill_id(skill_name)
        if skill_group not in skillset:
            skillset[skill_group] = []
        skillset[skill_group].append((skill_name, skill_id, required_level))

api_args = {'keyID': argv[2], 'vCode': argv[3]}

characters = []
key_info = api.query('/account/APIKeyInfo', api_args)
for character in key_info.result.key.rowset.row:
Esempio n. 6
0
characters = []
key_info = api.query('/account/APIKeyInfo', api_args)
for character in key_info.result.key.rowset.row:
    char_id = character.attrib['characterID']
    char_name = character.attrib['characterName']
    characters.append((char_id, char_name))

print('<!DOCTYPE html>')
print('<html>')
print('<head>')
print('<title>API key info</title>')
print('<link rel="stylesheet" type="text/css" href="style.css" />')
print('</head>')
print('<body>')

sdb = StaticDB()
for character in characters:
    char_id, char_name = character
    api_args['characterID'] = char_id
    charsheet = api.query('/char/CharacterSheet', api_args)
    skills = {}
    for skill in charsheet.xpath("result/rowset[@name='skills']/row"):
        skill_id = int(skill.attrib['typeID'])
        skill_level = int(skill.attrib['level'])
        skill_name = sdb.skill_name(skill_id)
        skill_group = sdb.skill_group(skill_id)
        if skill_group not in skills:
            skills[skill_group] = []
        skills[skill_group].append((skill_name, skill_id, skill_level))

    print('<h2>%s</h2>' % char_name)