Example #1
0
def upload_all_to_internet_archive(chunksize=100):
    from django.utils import timezone
    from perma.tasks import upload_to_internet_archive
    from perma.models import Link
    from datetime import timedelta
    from django.db.models import Q

    links = Link.objects.filter(
        (Q(internet_archive_upload_status='not_started')
         | Q(internet_archive_upload_status='failed')
         | Q(internet_archive_upload_status='deleted', is_private=False))
        & Q(creation_timestamp__lte=timezone.now() - timedelta(days=1),
            is_private=False,
            is_unlisted=False)).order_by('creation_timestamp')

    def link_queryset_iterator(queryset, chunksize):
        idx = 0
        count = queryset.count()
        while idx < count:
            new_idx = chunksize + idx
            yield queryset[idx:new_idx]
            idx = new_idx

    link_queryset = link_queryset_iterator(links)

    for link in link_queryset:
        upload_to_internet_archive(link.guid)
Example #2
0
def upload_all_to_internet_archive():
    from django.utils import timezone
    from perma.tasks import upload_to_internet_archive
    from perma.models import Link
    from datetime import timedelta
    from django.db.models import Q

    links = Link.objects.filter((Q(internet_archive_upload_status='not_started') |
                                Q(internet_archive_upload_status='failed') |
                                Q(internet_archive_upload_status='deleted', is_private=False)) &
                                Q(creation_timestamp__lte=timezone.now()-timedelta(days=1), is_private=False, is_unlisted=False)
                                ).order_by('creation_timestamp')

    for link in links:
        upload_to_internet_archive(link.guid)