allianceauth/services/managers/eve_api_manager.py
2014-11-02 21:53:26 -07:00

181 lines
4.9 KiB
Python

import evelink.api
import evelink.char
import evelink.eve
from django.conf import settings
class EveApiManager():
def __init__(self):
pass
@staticmethod
def get_characters_from_api(api_id, api_key):
chars = []
try:
api = evelink.api.API(api_key=(api_id, api_key))
# Should get characters
account = evelink.account.Account(api=api)
chars = account.characters()
except evelink.api.APIError as error:
print error
return chars
@staticmethod
def get_corporation_ticker_from_id(corp_id):
ticker = ""
try:
api = evelink.api.API()
corp = evelink.corp.Corp(api)
response = corp.corporation_sheet(corp_id)
ticker = response[0]['ticker']
except evelink.api.APIError as error:
print error
return ticker
@staticmethod
def get_alliance_information(alliance_id):
results = {}
try:
api = evelink.api.API()
eve = evelink.eve.EVE(api=api)
alliance = eve.alliances()
results = alliance[0][int(alliance_id)]
except evelink.api.APIError as error:
print error
return results
@staticmethod
def get_corporation_information(corp_id):
results = {}
try:
api = evelink.api.API()
corp = evelink.corp.Corp(api=api)
corpinfo = corp.corporation_sheet(corp_id=int(corp_id))
results = corpinfo[0]
except evelink.api.APIError as error:
print error
return results
@staticmethod
def check_api_is_type_account(api_id, api_key):
try:
api = evelink.api.API(api_key=(api_id, api_key))
account = evelink.account.Account(api=api)
info = account.key_info()
return info[0]['type'] == "account"
except evelink.api.APIError as error:
print error
return False
@staticmethod
def check_api_is_full(api_id, api_key):
try:
api = evelink.api.API(api_key=(api_id, api_key))
account = evelink.account.Account(api=api)
info = account.key_info()
return info[0]['access_mask'] == 268435455
except evelink.api.APIError as error:
print error
return False
@staticmethod
def get_api_info(api_id, api_key):
try:
api = evelink.api.API(api_key=(api_id, api_key))
account = evelink.account.Account(api=api)
info = account.key_info()
return info
except evelink.api.APIError as error:
print error
return False
@staticmethod
def api_key_is_valid(api_id, api_key):
try:
api = evelink.api.API(api_key=(api_id, api_key))
account = evelink.account.Account(api=api)
info = account.key_info()
return True
except evelink.api.APIError as error:
return False
return False
@staticmethod
def check_if_api_server_online():
try:
api = evelink.api.API()
server = evelink.server.Server(api=api)
info = server.server_status()
return True
except evelink.api.APIError as error:
return False
return False
@staticmethod
def check_if_id_is_corp(corp_id):
try:
api = evelink.api.API()
corp = evelink.corp.Corp(api=api)
corpinfo = corp.corporation_sheet(corp_id=int(corp_id))
results = corpinfo[0]
return True
except evelink.api.APIError as error:
return False
return False
@staticmethod
def get_alliance_standings():
if settings.ALLIANCE_EXEC_CORP_ID != "":
try:
api = evelink.api.API(api_key=(settings.ALLIANCE_EXEC_CORP_ID, settings.ALLIANCE_EXEC_CORP_VCODE))
corp = evelink.corp.Corp(api=api)
corpinfo = corp.contacts()
results = corpinfo[0]
return results
except evelink.api.APIError as error:
pass
return {}
@staticmethod
def check_if_id_is_alliance(alliance_id):
try:
api = evelink.api.API()
eve = evelink.eve.EVE(api=api)
alliance = eve.alliances()
results = alliance[0][int(alliance_id)]
if results:
return True
except evelink.api.APIError as error:
return False
return False
@staticmethod
def check_if_id_is_character(character_id):
try:
api = evelink.api.API()
eve = evelink.eve.EVE(api=api)
results = eve.character_info_from_id(character_id)
if results:
return True
except evelink.api.APIError as error:
return False
return False