from django.shortcuts import render

from django.shortcuts import render_to_response
from django.http import HttpResponse, HttpResponseRedirect
from django.template import RequestContext, loader
from django.core.urlresolvers import reverse


from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
from django.core import serializers

from itertools import chain

from django.conf import settings

from django.core.mail import send_mail

import logging
logger = logging.getLogger(__name__)

import pdb
import json
import datetime

from PIL import Image, ImageDraw
from io import BytesIO
import base64
import cStringIO

import boto3
from boto3.s3.transfer import S3Transfer
from botocore.client import Config

import os
import threading





# Create your views here.
def emoDB(request):
	
	return render(request, 'emodb/emodb.html')
	
def confirmationEmo(request):
	return HttpResponse(json.dumps(dict(confirmation="E842345ac72")), content_type='application/json')
	
def uploadImageToS3(request):
	input_string = request.POST['url']
	bucketKey = request.POST['emotion']
	stringID = request.POST['randString']
	timeStamp = request.POST['timeStamp']
	data_index = input_string.index('base64') + 7
	data = input_string[data_index:len(input_string)]
	im = Image.open(BytesIO(base64.b64decode(data)))
	
	# imName = 'img_'+ str(stringID) + '_' + str(timeStamp) + '.jpg'
	imName = 'gaze_'+ str(stringID) + '_' + str(timeStamp) + '.jpg'
	im.save(settings.MEDIA_ROOT + "/" + imName, 'JPEG')
	
	client = boto3.client('s3', aws_access_key_id = 'AKIAJ2SINXH66UFNIAYQ', aws_secret_access_key = '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', config=Config(signature_version='s3v4'), region_name='us-east-1')
	transfer = S3Transfer(client)
	extra_args = {'ServerSideEncryption': 'aws:kms'}
	
	# for gazeemo: outputFileName = 'img_' + str(stringID) + '_' + str(timeStamp) + '.jpg'
	outputFileName = 'gaze_' + str(stringID) + '_' + str(timeStamp) + '.jpg'
	
	transfer.upload_file(settings.MEDIA_ROOT + "/" + imName, bucketKey, outputFileName, extra_args=extra_args)
	name = settings.MEDIA_ROOT + "/" + imName
	os.remove(name)
	return HttpResponse('success')
	
def commentEmo(request):
	print("1000000000000000000000000000")
	sessionID = request.POST.get('sessionID')
	#trackingID = request.POST.get('trackingID')
	trackingID = 0
	comment = request.POST.get('comment')
	
	send_mail('comment for session ' + str(sessionID), str(comment), 'gea@visagetechnologies.com', ['gea@visagetechnologies.com'])
	
	return HttpResponse('Comment sent!')
