def load_files():
    if request.method == 'POST':
        owner_id = request.form.get('id', None)
        file = request.files["video_file"] or None
        if file == None:
            return jsonify({"error": "requires file"})
        file.filename = secure_filename(file.filename)
        folder = f'{owner_id}/videos/{file.filename}'
        # file_path = BUCKET_NAME + '.s3-us-west-1.amazonaws.com/' + folder
        s3 = AwsS3UploadClass(ACCESS_ID, ACCESS_KEY, BUCKET_NAME)
        key = file.filename
        # file.save(key)
        response = s3.create_presigned_post(folder)
        if response is None:
            return jsonify({"error": "key cannot be None"})
        files = [('file', open(key, 'rb'))]
        upload_response = requests.post(response['url'],
                                        data=response['fields'],
                                        files=files)
        if upload_response.status_code == 204:
            os.remove(key)
        # unprotected file upload
        # s3.upload_fileobj(file, BUCKET_NAME, file_path, ExtraArgs={'ACL': 'public-read', "ContentType": file.content_type})
        video = Video(
            title=request.form.get('title', None),
            description=request.form.get('description', None),
            link=folder,
            thumbnail=request.form.get('thumbnail', None),
            owner_id=owner_id,
        )
        db.session.add(video)
        db.session.commit()
        return {"response": response}
        # return {"video": video.to_dict()}, 200
    else:
        if 'user' in session:
            user = session['user']
            videos = Video.query.filter(Video.owner_id != user["id"]).all()
            data = [video.to_dict() for video in videos]
            return {"videos": data}, 200
        else:
            videos = Video.query.all()
            data = [video.to_dict() for video in videos]
            return {"videos": data}, 200
def enqueue_video():
    key = request.args.get('key', default=None, type=str)
    question_id = request.args.get('question_id', default=None, type=int)
    submission_id = request.args.get('submission_id', default=None, type=int)

    v = Video(applicant=current_user._get_current_object(),
              question=Question.query.get(question_id),
              s3_key=key,
              user_agent=UserAgentSchema().dump(request.user_agent).data,
              submission=Submission.query.get(submission_id))
    db.session.add(v)
    db.session.commit()
    return jsonify(v.to_dict())
Esempio n. 3
0
def add_video():
    data = request.json
    doesChannelExist = Channel.query.filter(
        Channel.name == data['channel_name']).first()
    if not doesChannelExist:
        user = User(username=data['channel_name'], email=(
            data['channel_name'] + '@yt.io'), password='******')
        db.session.add(user)
        db.session.commit()
        doesChannelExist = Channel(name=data['channel_name'], user_id=user.id)
        db.session.add(doesChannelExist)
        db.session.commit()
    video = Video(title=data['title'],
                  image_path=data['image_path'],
                  channel_id=doesChannelExist.id,
                  game_id=data['game_id'],
                  views=data['views'],
                  video_path=data['video_path'],
                  description=data['description'],
                  yt_video_id=data['yt_video_id'])
    db.session.add(video)
    db.session.commit()
    return {"video": video.to_dict()}