本文整理匯總了Python中stationspinner.libs.eveapihandler.EveAPIHandler.asset_parser方法的典型用法代碼示例。如果您正苦於以下問題:Python EveAPIHandler.asset_parser方法的具體用法?Python EveAPIHandler.asset_parser怎麽用?Python EveAPIHandler.asset_parser使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類stationspinner.libs.eveapihandler.EveAPIHandler
的用法示例。
在下文中一共展示了EveAPIHandler.asset_parser方法的3個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: fetch_assetlist
# 需要導入模塊: from stationspinner.libs.eveapihandler import EveAPIHandler [as 別名]
# 或者: from stationspinner.libs.eveapihandler.EveAPIHandler import asset_parser [as 別名]
def fetch_assetlist(apiupdate_pk):
try:
target, corporation = _get_corporation_auth(apiupdate_pk)
except CorporationSheet.DoesNotExist:
log.debug("CorporationSheet for APIUpdate {0} not indexed yet.".format(apiupdate_pk))
return
except APIUpdate.DoesNotExist:
log.warning("Target APIUpdate {0} was deleted mid-flight.".format(apiupdate_pk))
return
handler = EveAPIHandler()
auth = handler.get_authed_eveapi(corporation.owner_key)
try:
api_data = auth.corp.AssetList(characterID=corporation.owner_key.characterID)
except AuthenticationError:
log.error('AuthenticationError for key "{0}" owned by "{1}"'.format(target.apikey.keyID, target.apikey.owner))
target.delete()
return
assetlist = AssetList(owner=corporation, retrieved=api_data._meta.currentTime)
assetlist.items = handler.asset_parser(api_data.assets, Asset, corporation)
assetlist.save()
handler = CorporationAssetHandler()
handler.invalidate_entity(corporation.pk)
target.updated(api_data)
示例2: fetch_assetlist
# 需要導入模塊: from stationspinner.libs.eveapihandler import EveAPIHandler [as 別名]
# 或者: from stationspinner.libs.eveapihandler.EveAPIHandler import asset_parser [as 別名]
def fetch_assetlist(apiupdate_pk):
try:
target, character = _get_character_auth(apiupdate_pk)
except CharacterSheet.DoesNotExist:
log.debug('CharacterSheet for APIUpdate {0} not indexed yet.'.format(apiupdate_pk))
return
except APIUpdate.DoesNotExist:
log.warning('Target APIUpdate {0} was deleted mid-flight.'.format(apiupdate_pk))
return
handler = EveAPIHandler()
auth = handler.get_authed_eveapi(target.apikey)
try:
api_data = auth.char.AssetList(characterID=target.owner)
except AuthenticationError:
log.error('AuthenticationError for key "{0}" owned by "{1}"'.format(
target.apikey.keyID,
target.apikey.owner
))
target.delete()
return
assetlist = AssetList(owner=character,
retrieved=api_data._meta.currentTime)
assetlist.items, itemIDs_with_names = handler.asset_parser(api_data.assets,
Asset,
character,
target)
assetlist.save()
names_registered = 0
log.debug('Fetching the item name of {0} items.'.format(len(itemIDs_with_names)))
for block in _blocker(itemIDs_with_names, 1000):
try:
if target.apikey.type == 'Account':
api_data = auth.char.Locations(characterID=character.pk,
IDs=','.join(block))
else:
api_data = auth.char.Locations(IDs=','.join(block))
except Exception, ex:
log.warning('Could not fetch names for itemIDs "{0}", with APIKey {1}.\n{2}'.format(
block,
target.apikey.pk,
format_exc(ex)
))
continue
IDs = handler.autoparse_list(api_data.locations,
ItemLocationName,
unique_together=('itemID',),
extra_selectors={'owner': character},
owner=character,
pre_save=True)
names_registered += len(IDs)
示例3: fetch_assetlist
# 需要導入模塊: from stationspinner.libs.eveapihandler import EveAPIHandler [as 別名]
# 或者: from stationspinner.libs.eveapihandler.EveAPIHandler import asset_parser [as 別名]
def fetch_assetlist(apiupdate_pk):
try:
target, corporation = _get_corporation_auth(apiupdate_pk)
except CorporationSheet.DoesNotExist:
log.debug("CorporationSheet for APIUpdate {0} not indexed yet.".format(apiupdate_pk))
return
except APIUpdate.DoesNotExist:
log.warning("Target APIUpdate {0} was deleted mid-flight.".format(apiupdate_pk))
return
handler = EveAPIHandler()
auth = handler.get_authed_eveapi(target.apikey)
try:
api_data = auth.corp.AssetList(characterID=target.apikey.characterID)
except AuthenticationError:
log.error('AuthenticationError for key "{0}" owned by "{1}"'.format(target.apikey.keyID, target.apikey.owner))
target.delete()
return
assetlist = AssetList(owner=corporation, retrieved=api_data._meta.currentTime)
assetlist.items, itemIDs_with_names = handler.asset_parser(api_data.assets, Asset, corporation, target)
assetlist.save()
if target.apikey.can_call(APICall.objects.get(type="Corporation", name="Locations")):
names_registered = 0
log.info('Fetching the item name of {0} items for "{1}".'.format(len(itemIDs_with_names), corporation))
for block in _blocker(itemIDs_with_names, 1000):
try:
api_data = auth.corp.Locations(IDs=",".join(block))
except Exception, ex:
log.warning(
'Could not fetch names for itemIDs "{0}", with APIKey {1}.\n{2}'.format(
block, target.apikey.pk, format_exc(ex)
)
)
continue
IDs = handler.autoparse_list(
api_data.locations,
ItemLocationName,
unique_together=("itemID",),
extra_selectors={"owner": corporation},
owner=corporation,
pre_save=True,
)
names_registered += len(IDs)
old_names = ItemLocationName.objects.filter(owner=corporation).exclude(pk__in=itemIDs_with_names)
log.debug(
'Fetched {0} names and deleted {1} for "{2}"'.format(names_registered, old_names.count(), corporation)
)
old_names.delete()