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())
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()}