53 lines
1.6 KiB
Python

import logging
import os
import requests
from allianceauth import NAME
from allianceauth.eveonline.providers import provider
logger = logging.getLogger(__name__)
class SRPManager:
@staticmethod
def get_kill_id(killboard_link):
num_set = '0123456789'
kill_id = ''.join([c for c in killboard_link if c in num_set])
return kill_id
@staticmethod
def get_kill_data(kill_id):
url = ("https://zkillboard.com/api/killID/%s/" % kill_id)
headers = {
'User-Agent': NAME,
'Content-Type': 'application/json',
}
r = requests.get(url, headers=headers)
result = r.json()[0]
if result:
killmail_id = result['killmail_id']
killmail_hash = result['zkb']['hash']
c = provider.client
km = c.Killmails.get_killmails_killmail_id_killmail_hash(
killmail_id=killmail_id,
killmail_hash=killmail_hash
).result()
else:
raise ValueError("Invalid Kill ID")
if km:
ship_type = km['victim']['ship_type_id']
logger.debug(
"Ship type for kill ID %s is %s" % (kill_id, ship_type)
)
ship_value = result['zkb']['totalValue']
logger.debug(
"Total loss value for kill id %s is %s" % (kill_id, ship_value)
)
victim_id = km['victim']['character_id']
return ship_type, ship_value, victim_id
else:
raise ValueError("Invalid Kill ID or Hash.")