Example #1
0
 def handle(self, *args, **options):
     for fixture_name in args:
         path = self.locate_fixture(fixture_name)
         data = json.load(open(path, 'rb'))
         for eve_id, item_data in data.iteritems():
             it, created = EveItem.objects.get_or_create(eve_id=eve_id, defaults=item_data)
             if created:
                 update(it, **item_data)
Example #2
0
def update_assets():
    params = {'keyID': settings.EVE_API_KEY_ID, 'vCode': settings.EVE_API_VCODE}
    response = requests.get('https://api.eveonline.com/corp/AssetList.xml.aspx', params=params)
    response.raise_for_status()
    tree = ElementTree.fromstring(response.text)
    assets = {}
    for row in tree.findall('.//row'):
        typeid = int(row.attrib['typeID'])
        assets[typeid] = assets.get(typeid, 0) + int(row.attrib['quantity'])
    for item in EveItem.objects.all():
        update(item, corp_count=assets.get(item.eve_id, 0))
Example #3
0
def update_prices():
    qs = EveItem.objects.all()
    params = {'regionlimit': REGION_FORGE, 'typeid': []}
    for item in qs:
        params['typeid'].append(item.eve_id)
    response = requests.get('http://api.eve-central.com/api/marketstat', params=params)
    response.raise_for_status()
    tree = ElementTree.fromstring(response.text)
    prices = {}
    for item in tree.findall('.//type'):
        prices[int(item.attrib['id'])] = {
            'mean_sell': item.find('./sell/avg').text,
            'mean_buy': item.find('./buy/avg').text,
            'mean_all': item.find('./all/avg').text,
            'median_sell': item.find('./sell/median').text,
            'median_buy': item.find('./buy/median').text,
            'median_all': item.find('./all/median').text,
            'min_sell': item.find('./sell/min').text,
            'max_buy': item.find('./buy/max').text,
        }
    for item in qs:
        update(item.forge_prices, **prices[item.eve_id])