Exemple #1
0
def video_scan(request):

    lang = json.loads(request.body or "{}").get("lang", "en")

    force_job("videoscan", _("Scan for Videos"), language=lang)

    return JsonResponseMessageSuccess(_("Scanning for videos started."))
Exemple #2
0
def video_scan(request):

    lang = json.loads(request.body or "{}").get("lang", "en")

    force_job("videoscan", _("Scan for Videos"), language=lang)

    return JsonResponseMessageSuccess(_("Scanning for videos started."))
Exemple #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 JsonResponseMessageSuccess(_("Launched video download process successfully."))
Exemple #4
0
def cancel_video_download(request):

    force_job("videodownload", stop=True)

    queue = VideoQueue()

    queue.clear()

    return JsonResponseMessageSuccess(_("Cancelled video download process successfully."))
Exemple #5
0
def cancel_video_download(request):

    force_job("videodownload", stop=True)

    queue = VideoQueue()

    queue.clear()

    return JsonResponseMessageSuccess(_("Cancelled video download process successfully."))
Exemple #6
0
def start_languagepack_download(request):
    if not request.method == 'POST':
        raise Exception(_("Must call API endpoint with POST verb."))

    data = json.loads(request.raw_post_data)  # Django has some weird post processing into request.POST, so use .body
    lang_code = lcode_to_ietf(data['lang'])

    force_job('languagepackdownload', _("Language pack download"), lang_code=lang_code, locale=request.language)

    return JsonResponseMessageSuccess(_("Successfully started language pack download for %(lang_name)s.") % {"lang_name": get_language_name(lang_code)})
Exemple #7
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 JsonResponseMessageSuccess(
        _("Launched video download process successfully."))
Exemple #8
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 JsonResponseMessageSuccess(_("Cancelled video download process successfully."))
Exemple #9
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 JsonResponseMessageSuccess(
        _("Cancelled video download process successfully."))
Exemple #10
0
def start_languagepack_download(request):
    if not request.method == 'POST':
        raise Exception(_("Must call API endpoint with POST verb."))

    data = json.loads(
        request.raw_post_data
    )  # Django has some weird post processing into request.POST, so use .body
    lang_code = lcode_to_ietf(data['lang'])

    force_job('languagepackdownload',
              _("Language pack download"),
              lang_code=lang_code,
              locale=request.language)

    return JsonResponseMessageSuccess(
        _("Successfully started language pack download for %(lang_name)s.") %
        {"lang_name": get_language_name(lang_code)})
Exemple #11
0
def start_video_download(request):
    """
    API endpoint for launching the videodownload job.
    """
    force_job("videodownload", stop=True, locale=request.language)

    paths = OrderedSet(json.loads(request.body or "{}").get("paths", []))

    lang = json.loads(request.body or "{}").get("lang", "en")

    youtube_ids = get_download_youtube_ids(paths, language=lang, downloaded=False)

    queue = VideoQueue()

    queue.add_files(youtube_ids, language=lang)

    force_job("videodownload", _("Download Videos"), locale=lang)

    return JsonResponseMessageSuccess(_("Launched video download process successfully."))
Exemple #12
0
def start_video_download(request):
    """
    API endpoint for launching the videodownload job.
    """
    force_job("videodownload", stop=True, locale=request.language)

    paths = OrderedSet(json.loads(request.body or "{}").get("paths", []))

    lang = json.loads(request.body or "{}").get("lang", "en")

    youtube_ids = get_download_youtube_ids(paths, language=lang, downloaded=False)

    queue = VideoQueue()

    queue.add_files(youtube_ids, language=lang)

    force_job("videodownload", _("Download Videos"), locale=lang)

    return JsonResponseMessageSuccess(_("Launched video download process successfully."))
Exemple #13
0
def start_video_download(request):
    """
    API endpoint for launching the videodownload job.
    """
    youtube_ids = OrderedSet(simplejson.loads(request.body 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 JsonResponseMessageSuccess(_("Launched video download process successfully."))
Exemple #14
0
def start_video_download(request):
    force_job("videodownload", stop=True, locale=request.language)
    """
    API endpoint for launching the videodownload job.
    """
    youtube_ids = OrderedSet(
        simplejson.loads(request.body 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 JsonResponseMessageSuccess(
        _("Launched video download process successfully."))
Exemple #15
0
def setup_backup():
    force_job("kalitebackup", frequency="DAILY")
Exemple #16
0
def initialize_registration():
    force_job("syncmodels", "Secure Sync",
              "HOURLY")  # now launches asynchronously
Exemple #17
0
def force_sync(request):
    """
    """
    force_job("syncmodels")  # now launches asynchronously
    return JsonResponse({})
Exemple #18
0
def initialize_registration():
    force_job("syncmodels", "Secure Sync", "HOURLY")  # now launches asynchronously
Exemple #19
0
def setup_backup():
    force_job("kalitebackup", frequency="DAILY")