#!/usr/bin/python
import sys
import subprocess
import os
import ftplib
import time
import smtplib
import Image
import cStringIO
from email.mime.image import MIMEImage
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText

# Configuration

FTEMP_DCAM = "/run/shm/imagedcam.jpg"
CAPT_DCAM = "raspistill -t 0 -o " + FTEMP_DCAM
FTP_SERVER = '192.168.0.xx'
FTP_USER = 'xxxx'
FTP_PASSW = 'xxxx'
FTP_PREFIX = '/test/HOME-'
HTTP_PUBLIC = "http://www.xxxx.com"
EMAIL_FROM = 'xxx@yyy.com'
EMAIL_TO = 'zzz@www.com'
EMAIL_SUBJECT = 'Image from RaspCam'
EMAIL_SERVER = 'smtp.free.fr'
THUMBNAIL_SIZE = 640,480


print 'Removing files'

try:
    os.remove(FTEMP_DCAM)
except OSError:
    pass

print 'Starting capture processes'

g3 = subprocess.Popen(CAPT_DCAM, shell=True, cwd="/run/shm", stdout=subprocess.PIPE, stderr=subprocess.STDOUT)

print 'Waiting'

g3.wait()

print 'Storing on FTP'

date_string = time.strftime("%Y%m%d-%H%M")

s = ftplib.FTP(FTP_SERVER,FTP_USER,FTP_PASSW) 
f = open(FTEMP_DCAM)
filed = FTP_PREFIX+date_string+'d.jpg'
s.storbinary('STOR ' + filed, f) 
f.close() 
s.quit()

print 'Emailing thumbnails'


msg = MIMEMultipart()
msg['Subject'] = EMAIL_SUBJECT
msg['From'] = EMAIL_FROM
msg['To'] = EMAIL_TO

EMAIL_BODY = date_string + "\nImages HD :\n" + HTTP_PUBLIC + filed + "\n"

part1 = MIMEText(EMAIL_BODY, 'plain')
msg.attach(part1)

im=Image.open(FTEMP_DCAM)
im.thumbnail(THUMBNAIL_SIZE,Image.ANTIALIAS)
memf = cStringIO.StringIO()
im.save(memf, "JPEG")
img = MIMEImage(memf.getvalue())
msg.attach(img)
memf.close()

# Send the email via our own SMTP server.
s = smtplib.SMTP(EMAIL_SERVER)
s.sendmail(EMAIL_FROM, EMAIL_TO, msg.as_string())
s.quit()

print 'Done !'
