def video_handler(request, video, format="mp4", prev=None, next=None): if not video["available"]: if request.is_admin: # TODO(bcipolli): add a link, with querystring args that auto-checks this video in the topic tree messages.warning(request, _("This video was not found! You can download it by going to the Update page.")) elif request.is_logged_in: messages.warning(request, _("This video was not found! Please contact your teacher or an admin to have it downloaded.")) elif not request.is_logged_in: messages.warning(request, _("This video was not found! You must login as an admin/teacher to download the video.")) # Fallback mechanism available_urls = dict([(lang, avail) for lang, avail in video["availability"].iteritems() if avail["on_disk"]]) if video["available"] and not available_urls: vid_lang = "en" messages.success(request, "Got video content from %s" % video["availability"]["en"]["stream"]) else: vid_lang = select_best_available_language(available_urls.keys(), target_code=request.language) context = { "video": video, "title": video["title"], "selected_language": vid_lang, "video_urls": video["availability"].get(vid_lang), "subtitle_urls": video["availability"].get(vid_lang, {}).get("subtitles"), "prev": prev, "next": next, "backup_vids_available": bool(settings.BACKUP_VIDEO_SOURCE), "use_mplayer": settings.USE_MPLAYER and is_loopback_connection(request), } return context
def video_handler(request, video, format="mp4", prev=None, next=None): video_on_disk = is_video_on_disk(video['youtube_id']) video_exists = video_on_disk or bool(settings.BACKUP_VIDEO_SOURCE) if not video_exists: if request.is_admin: # TODO(bcipolli): add a link, with querystring args that auto-checks this video in the topic tree messages.warning(request, _("This video was not found! You can download it by going to the Update page.")) elif request.is_logged_in: messages.warning(request, _("This video was not found! Please contact your teacher or an admin to have it downloaded.")) elif not request.is_logged_in: messages.warning(request, _("This video was not found! You must login as an admin/teacher to download the video.")) video["stream_type"] = "video/%s" % format if video_exists and not video_on_disk: messages.success(request, "Got video content from %s" % video["stream_url"]) context = { "video": video, "title": video["title"], "prev": prev, "next": next, "backup_vids_available": bool(settings.BACKUP_VIDEO_SOURCE), "use_mplayer": settings.USE_MPLAYER and is_loopback_connection(request), } return context