def update_all_sheets(*args, **kwargs): tasks = [] #### Characters keys = APIKey.objects.filter(expired=False).exclude(type='Corporation') current_time = get_current_time() apicall = APICall.objects.get(type='Character', name='CharacterSheet') targets = APIUpdate.objects.filter(apicall=apicall, apikey__in=keys) targets = targets.filter( Q(cached_until__lte=current_time) | Q(cached_until=None)) if targets.count() > 0: log.info('Queued {0} {1}'.format(targets.count(), apicall)) for target in targets: tasks.append(fetch_charactersheet.s(target.pk)) else: log.info('No character sheets need updating.') #### Corporations corpkeys = APIKey.objects.filter(expired=False, type='Corporation') apicall = APICall.objects.get(type='Corporation', name='CorporationSheet') targets = APIUpdate.objects.filter(apicall=apicall, apikey__in=corpkeys) targets = targets.filter( Q(cached_until__lte=current_time) | Q(cached_until=None)) if targets.count() > 0: log.info('Queued {0} {1}'.format(targets.count(), apicall)) for target in targets: tasks.append(fetch_corporationsheet.s(target.pk)) else: log.info('No corporation sheets need updating') if len(tasks) > 0: group(tasks).apply_async(queue='transient')
def update_apikey_sheets(apikey_pk): tasks = [] try: key = APIKey.objects.get(pk=apikey_pk, expired=False) except APIKey.DoesNotExist: return current_time = get_current_time() if key.type in ('Character', 'Account'): apicall = APICall.objects.get(type='Character', name='CharacterSheet') targets = APIUpdate.objects.filter(apicall=apicall, apikey=key) targets = targets.filter(Q(cached_until__lte=current_time) | Q(cached_until=None)) if targets.count() > 0: log.info('Queued {0} {1} for capsuler "{2}".'.format( targets.count(), apicall, key.owner )) for target in targets: tasks.append(fetch_charactersheet.s(target.pk)) else: log.info('No character sheets need updating.') else: apicall = APICall.objects.get(type='Corporation', name='CorporationSheet') targets = APIUpdate.objects.filter(apicall=apicall, apikey=key) targets = targets.filter(Q(cached_until__lte=current_time) | Q(cached_until=None)) if targets.count() > 0: log.info('Queued {0} {1} for capsuler "{2}".'.format( targets.count(), apicall, key.owner )) for target in targets: tasks.append(fetch_corporationsheet.s(target.pk)) else: log.info('No corporation sheets need updating') if len(tasks) > 0: group(tasks).apply_async(queue='transient')
def update_all_sheets(*args, **kwargs): tasks = [] #### Characters keys = APIKey.objects.filter(expired=False).exclude(type='Corporation') current_time = get_current_time() apicall = APICall.objects.get(type='Character', name='CharacterSheet') targets = APIUpdate.objects.filter(apicall=apicall, apikey__in=keys) targets = targets.filter(Q(cached_until__lte=current_time) | Q(cached_until=None)) if targets.count() > 0: log.info('Queued {0} {1}'.format( targets.count(), apicall )) for target in targets: tasks.append(fetch_charactersheet.s(target.pk)) else: log.info('No character sheets need updating.') #### Corporations corpkeys = APIKey.objects.filter(expired=False, type='Corporation') apicall = APICall.objects.get(type='Corporation', name='CorporationSheet') targets = APIUpdate.objects.filter(apicall=apicall, apikey__in=corpkeys) targets = targets.filter(Q(cached_until__lte=current_time) | Q(cached_until=None)) if targets.count() > 0: log.info('Queued {0} {1}'.format( targets.count(), apicall )) for target in targets: tasks.append(fetch_corporationsheet.s(target.pk)) else: log.info('No corporation sheets need updating') if len(tasks) > 0: group(tasks).apply_async(queue='transient')
def update_apikey_sheets(apikey_pk): tasks = [] try: key = APIKey.objects.get(pk=apikey_pk, expired=False) except APIKey.DoesNotExist: return current_time = get_current_time() if key.type in ('Character', 'Account'): apicall = APICall.objects.get(type='Character', name='CharacterSheet') targets = APIUpdate.objects.filter(apicall=apicall, apikey=key) targets = targets.filter( Q(cached_until__lte=current_time) | Q(cached_until=None)) if targets.count() > 0: log.info('Queued {0} {1} for capsuler "{2}".'.format( targets.count(), apicall, key.owner)) for target in targets: tasks.append(fetch_charactersheet.s(target.pk)) else: log.info('No character sheets need updating.') else: apicall = APICall.objects.get(type='Corporation', name='CorporationSheet') targets = APIUpdate.objects.filter(apicall=apicall, apikey=key) targets = targets.filter( Q(cached_until__lte=current_time) | Q(cached_until=None)) if targets.count() > 0: log.info('Queued {0} {1} for capsuler "{2}".'.format( targets.count(), apicall, key.owner)) for target in targets: tasks.append(fetch_corporationsheet.s(target.pk)) else: log.info('No corporation sheets need updating') if len(tasks) > 0: group(tasks).apply_async(queue='transient')