コード例 #1
0
ファイル: api_views.py プロジェクト: AbhiUnni/ka-lite
def retry_video_download(request):
    """
    Clear any video still accidentally marked as in-progress, and restart the download job.
    """
    VideoFile.objects.filter(download_in_progress=True).update(download_in_progress=False, percent_complete=0)
    force_job("videodownload", _("Download Videos"), locale=request.language)
    return JsonResponse({})
コード例 #2
0
def start_video_download(request):
    """
    API endpoint for launching the videodownload job.
    """
    youtube_ids = OrderedSet(
        simplejson.loads(request.raw_post_data or "{}").get("youtube_ids", []))

    # One query per video (slow)
    video_files_to_create = [
        id for id in youtube_ids
        if not get_object_or_None(VideoFile, youtube_id=id)
    ]

    # OK to do bulk_create; cache invalidation triggered via save download
    for lang_code, lang_youtube_ids in divide_videos_by_language(
            video_files_to_create).iteritems():
        VideoFile.objects.bulk_create([
            VideoFile(youtube_id=id,
                      flagged_for_download=True,
                      language=lang_code) for id in lang_youtube_ids
        ])

    # OK to update all, since we're not setting all props above.
    # One query per chunk
    for chunk in break_into_chunks(youtube_ids):
        video_files_needing_model_update = VideoFile.objects.filter(
            download_in_progress=False,
            youtube_id__in=chunk).exclude(percent_complete=100)
        video_files_needing_model_update.update(percent_complete=0,
                                                cancel_download=False,
                                                flagged_for_download=True)

    force_job("videodownload", _("Download Videos"), locale=request.language)

    return JsonResponse({})
コード例 #3
0
def retry_video_download(request):
    """
    Clear any video still accidentally marked as in-progress, and restart the download job.
    """
    VideoFile.objects.filter(download_in_progress=True).update(
        download_in_progress=False, percent_complete=0)
    force_job("videodownload", _("Download Videos"), locale=request.language)
    return JsonResponse({})
コード例 #4
0
ファイル: api_views.py プロジェクト: AbhiUnni/ka-lite
def cancel_video_download(request):

    # clear all download in progress flags, to make sure new downloads will go through
    VideoFile.objects.all().update(download_in_progress=False)

    # unflag all video downloads
    VideoFile.objects.filter(flagged_for_download=True).update(cancel_download=True, flagged_for_download=False, download_in_progress=False)

    force_job("videodownload", stop=True, locale=request.language)

    return JsonResponse({})
コード例 #5
0
def start_languagepack_download(request):
    if request.POST:
        data = json.loads(
            request.raw_post_data
        )  # Django has some weird post processing into request.POST, so use raw_post_data
        force_job('languagepackdownload',
                  _("Language pack download"),
                  lang_code=data['lang'],
                  locale=request.language)

        return JsonResponse({'success': True})
コード例 #6
0
def cancel_video_download(request):

    # clear all download in progress flags, to make sure new downloads will go through
    VideoFile.objects.all().update(download_in_progress=False)

    # unflag all video downloads
    VideoFile.objects.filter(flagged_for_download=True).update(
        cancel_download=True,
        flagged_for_download=False,
        download_in_progress=False)

    force_job("videodownload", stop=True, locale=request.language)

    return JsonResponse({})
コード例 #7
0
ファイル: api_views.py プロジェクト: AbhiUnni/ka-lite
def start_video_download(request):
    """
    API endpoint for launching the videodownload job.
    """
    youtube_ids = OrderedSet(simplejson.loads(request.raw_post_data or "{}").get("youtube_ids", []))

    # One query per video (slow)
    video_files_to_create = [id for id in youtube_ids if not get_object_or_None(VideoFile, youtube_id=id)]

    # OK to do bulk_create; cache invalidation triggered via save download
    for lang_code, lang_youtube_ids in divide_videos_by_language(video_files_to_create).iteritems():
        VideoFile.objects.bulk_create([VideoFile(youtube_id=id, flagged_for_download=True, language=lang_code) for id in lang_youtube_ids])

    # OK to update all, since we're not setting all props above.
    # One query per chunk
    for chunk in break_into_chunks(youtube_ids):
        video_files_needing_model_update = VideoFile.objects.filter(download_in_progress=False, youtube_id__in=chunk).exclude(percent_complete=100)
        video_files_needing_model_update.update(percent_complete=0, cancel_download=False, flagged_for_download=True)

    force_job("videodownload", _("Download Videos"), locale=request.language)

    return JsonResponse({})
コード例 #8
0
ファイル: api_views.py プロジェクト: AbhiUnni/ka-lite
def start_languagepack_download(request):
    if request.POST:
        data = json.loads(request.raw_post_data) # Django has some weird post processing into request.POST, so use raw_post_data
        force_job('languagepackdownload', _("Language pack download"), lang_code=data['lang'], locale=request.language)

        return JsonResponse({'success': True})
コード例 #9
0
ファイル: views.py プロジェクト: AbhiUnni/ka-lite
def initialize_registration():
    force_job("syncmodels", "Secure Sync", "HOURLY")  # now launches asynchronously
コード例 #10
0
ファイル: api_views.py プロジェクト: tunapanda/packages
def force_sync(request):
    """
    """
    force_job("syncmodels")  # now launches asynchronously
    return JsonResponse({})
コード例 #11
0
ファイル: api_views.py プロジェクト: AbhiUnni/ka-lite
def force_sync(request):
    """
    """
    force_job("syncmodels")  # now launches asynchronously
    return JsonResponse({})
コード例 #12
0
def initialize_registration():
    force_job("syncmodels", "Secure Sync",
              "HOURLY")  # now launches asynchronously