示例#1
0
def video(file_and_save=True, **kwargs):
    """Return a saved video.

    Requires a users fixture if no creator is provided.

    """
    u = None
    if 'creator' not in kwargs:
        u = get_user()

    defaults = {
        'title': 'Some title',
        'description': 'Some description',
        'creator': u
    }
    defaults.update(kwargs)

    vid = Video(**defaults)
    if not file_and_save:
        return vid

    if 'file' not in kwargs:
        with open('apps/gallery/tests/media/test.webm') as f:
            up_file = File(f)
            vid.webm.save(up_file.name, up_file, save=False)
        with open('apps/gallery/tests/media/test.ogv') as f:
            up_file = File(f)
            vid.ogv.save(up_file.name, up_file, save=False)
        with open('apps/gallery/tests/media/test.flv') as f:
            up_file = File(f)
            vid.flv.save(up_file.name, up_file, save=False)
        vid.save()

    return vid
示例#2
0
def video(file_and_save=True, **kwargs):
    """Return a saved video."""
    u = None
    if "creator" not in kwargs:
        u = user(save=True)

    defaults = {"title": "Some title", "description": "Some description", "creator": u}
    defaults.update(kwargs)

    vid = Video(**defaults)
    if not file_and_save:
        return vid

    if "file" not in kwargs:
        with open("apps/gallery/tests/media/test.webm") as f:
            up_file = File(f)
            vid.webm.save(up_file.name, up_file, save=False)
        with open("apps/gallery/tests/media/test.ogv") as f:
            up_file = File(f)
            vid.ogv.save(up_file.name, up_file, save=False)
        with open("apps/gallery/tests/media/test.flv") as f:
            up_file = File(f)
            vid.flv.save(up_file.name, up_file, save=False)
        vid.save()

    return vid
示例#3
0
def video(file_and_save=True, **kwargs):
    """Return a saved video.

    Requires a users fixture if no creator is provided.

    """
    u = None
    if 'creator' not in kwargs:
        u = get_user()

    defaults = {'title': 'Some title', 'description': 'Some description',
                'creator': u}
    defaults.update(kwargs)

    vid = Video(**defaults)
    if not file_and_save:
        return vid

    if 'file' not in kwargs:
        with open('apps/gallery/tests/media/test.webm') as f:
            up_file = File(f)
            vid.webm.save(up_file.name, up_file, save=False)
        with open('apps/gallery/tests/media/test.ogv') as f:
            up_file = File(f)
            vid.ogv.save(up_file.name, up_file, save=False)
        with open('apps/gallery/tests/media/test.flv') as f:
            up_file = File(f)
            vid.flv.save(up_file.name, up_file, save=False)
        vid.save()

    return vid
示例#4
0
文件: views.py 项目: philn/Gallery
def date(request, year, month, day, page=None):
    year = int(year)
    month = int(month)
    day = int(day)
    photo_set = Photo.for_date(year, month, day)
    video_set = Video.for_date(year, month, day)
    media_set = list(photo_set) + list(video_set)

    total = len(media_set)
    page, start, end, nb_pages = get_page(page, total)

    medias = media_set[start:end]
    total_pages = range(nb_pages)
    slug = "%s/date/%s/%s/%s/" % (G_URL, year, month, day)

    human_date = datetime.date(year, month, day).strftime("%A %d %B")

    params = {
        "year": year,
        "month": month,
        "day": day,
        "page": page,
        "slug": slug,
        "human_date": human_date,
        "nb_pages": nb_pages,
        "total_pages": total_pages,
        "medias": medias,
    }
    params.update(DEFAULT_PARAMS)
    return render_to_response("gallery/date.html", params, context_instance=RequestContext(request))
示例#5
0
文件: views.py 项目: philn/Gallery
def recent(request, tag_name=None, page=None):
    tag = Tag.with_name(tag_name)
    if not tag:
        photo_set = Photo.recent()
        video_set = Video.recent()
    else:
        photo_set = tag.get_recent_photos()
        video_set = tag.get_recent_videos()

    media_set = list(photo_set) + list(video_set)
    total = len(media_set)
    page, start, end, nb_pages = get_page(page, total)

    medias = media_set[start:end]
    total_pages = range(nb_pages)

    slug = "/%s/recent/" % G_URL
    if tag_name:
        slug += "%s/" % tag_name

    params = {
        "tag": tag,
        "page": page,
        "slug": slug,
        "tag_name": tag_name,
        "nb_pages": nb_pages,
        "total_pages": total_pages,
        "medias": medias,
    }
    params.update(DEFAULT_PARAMS)
    return render_to_response("gallery/tag.html", params, context_instance=RequestContext(request))
    def handle(self, *args, **options):
        with open('videos.csv', 'rb') as csvfile:
            videos = csv.reader(csvfile)
            for row in videos:
                link = row[0]
                if "youtube" not in link and "youtu.be" not in link and "vimeo" not in link:
                    raise Exception("You can add only youtube and vimeo videos.")

                if "youtube" in link or "youtu.be" in link:
                    if not youtube_video_id(link):
                        raise Exception("Incorrect youtube link.")
                else:
                    video_id = re.search(r'^((http|https)://)?(www\.)?(vimeo\.com/)?(\d+)', link).group(5)
                    if not video_id:
                        raise Exception("Incorrect vimeo link.")

                instance = Video(competition_id=row[1], status=1)
                if "youtube" in link or "youtu.be" in link:
                    instance.kind = 1
                    instance.video_id = youtube_video_id(link)
                else:
                    instance.kind = 2
                    instance.video_id = re.search(r'^((http|https)://)?(www\.)?(vimeo\.com/)?(\d+)', link).group(5)

                check = Video.objects.filter(video_id=instance.video_id)
                if not check:
                    instance.save()
示例#7
0
def create_video(files, user):
    """Given an uploaded file, a user, and other data, it creates a Video"""
    # Async uploads fallback to these defaults.
    title = get_draft_title(user)
    description = u'Autosaved draft.'
    # Use default locale to make sure a user can only have one draft
    locale = settings.WIKI_DEFAULT_LANGUAGE
    try:
        vid = Video.objects.get(title=title, locale=locale)
    except Video.DoesNotExist:
        vid = Video(title=title, creator=user, description=description,
                    locale=locale)
    for name in files:
        up_file = files[name]
        check_file_size(up_file, settings.VIDEO_MAX_FILESIZE)
        # name is in (webm, ogv, flv) sent from upload_video(), below
        getattr(vid, name).save(up_file.name, up_file, save=False)

        if 'thumbnail' == name:
            # Save poster too, we shrink it later.
            vid.poster.save(up_file.name, up_file, save=False)

    vid.save()
    if 'thumbnail' in files:
        thumb = vid.thumbnail
        (width, height) = _scale_dimensions(thumb.width, thumb.height)
    else:
        width = settings.THUMBNAIL_PROGRESS_WIDTH
        height = settings.THUMBNAIL_PROGRESS_HEIGHT
    delete_url = reverse('gallery.delete_media', args=['video', vid.id])
    return {'name': up_file.name, 'url': vid.get_absolute_url(),
            'thumbnail_url': vid.thumbnail_url_if_set(),
            'width': width,
            'height': height,
            'delete_url': delete_url}
示例#8
0
def create_video(files, user):
    """Given an uploaded file, a user, and other data, it creates a Video"""
    try:
        vid = Video.objects.filter(creator=user, is_draft=True)
        # Delete other drafts, if any:
        vid.exclude(pk=vid[0].pk).delete()
        vid = vid[0]
    except IndexError:  # No drafts, create one
        vid = Video(creator=user, is_draft=True)
    # Async uploads fallback to these defaults.
    vid.title = get_draft_title(user)
    vid.description = u'Autosaved draft.'
    vid.locale = settings.WIKI_DEFAULT_LANGUAGE

    for name in files:
        up_file = files[name]
        check_file_size(up_file, settings.VIDEO_MAX_FILESIZE)
        # name is in (webm, ogv, flv) sent from upload_video(), below
        getattr(vid, name).save(up_file.name, up_file, save=False)

        if 'thumbnail' == name:
            # Save poster too, we shrink it later.
            vid.poster.save(up_file.name, up_file, save=False)

    vid.save()
    if 'thumbnail' in files:
        thumb = vid.thumbnail
        (width, height) = _scale_dimensions(thumb.width, thumb.height)
    else:
        width = settings.THUMBNAIL_PROGRESS_WIDTH
        height = settings.THUMBNAIL_PROGRESS_HEIGHT
    delete_url = reverse('gallery.delete_media', args=['video', vid.id])
    return {
        'name': up_file.name,
        'url': vid.get_absolute_url(),
        'thumbnail_url': vid.thumbnail_url_if_set(),
        'width': width,
        'height': height,
        'delete_url': delete_url
    }
示例#9
0
def create_video(files, user):
    """Given an uploaded file, a user, and other data, it creates a Video"""
    try:
        vid = Video.objects.filter(creator=user, is_draft=True)
        # Delete other drafts, if any:
        vid.exclude(pk=vid[0].pk).delete()
        vid = vid[0]
    except IndexError:  # No drafts, create one
        vid = Video(creator=user, is_draft=True)
    # Async uploads fallback to these defaults.
    vid.title = get_draft_title(user)
    vid.description = u'Autosaved draft.'
    vid.locale = settings.WIKI_DEFAULT_LANGUAGE

    for name in files:
        up_file = files[name]
        check_file_size(up_file, settings.VIDEO_MAX_FILESIZE)
        # name is in (webm, ogv, flv) sent from upload_video(), below
        getattr(vid, name).save(up_file.name, up_file, save=False)

        if 'thumbnail' == name:
            # Save poster too, we shrink it later.
            vid.poster.save(up_file.name, up_file, save=False)

    vid.save()
    if 'thumbnail' in files:
        thumb = vid.thumbnail
        (width, height) = _scale_dimensions(thumb.width, thumb.height)
    else:
        width = settings.THUMBNAIL_PROGRESS_WIDTH
        height = settings.THUMBNAIL_PROGRESS_HEIGHT
    delete_url = reverse('gallery.delete_media', args=['video', vid.id])
    return {'name': up_file.name, 'url': vid.get_absolute_url(),
            'thumbnail_url': vid.thumbnail_url_if_set(),
            'width': width,
            'height': height,
            'delete_url': delete_url}