Пример #1
0
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')
Пример #2
0
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')
Пример #3
0
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')
Пример #4
0
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')