From bfc5f6711e1e911cfbe521289e4867d595de3076 Mon Sep 17 00:00:00 2001 From: Brian Wood <legion.the.unforgiven@gmail.com> Date: Mon, 21 Apr 2014 11:01:19 -0600 Subject: [PATCH] Wrote email reminder service and added config settings in __init__.py --- project/__init__.py | 8 ++++++-- project/controllers/loan.py | 32 +++++++++++++++++++++++++++++++- project/model/Movie.py | 7 ++++++- 3 files changed, 43 insertions(+), 4 deletions(-) diff --git a/project/__init__.py b/project/__init__.py index ae31105..706ffe2 100644 --- a/project/__init__.py +++ b/project/__init__.py @@ -10,11 +10,15 @@ sys.path.append('../pytmdb3/') from tmdb3 import set_key -set_key('542606a6ccff81a0337dc370a0cbfc37') - app = Flask('project') app.config['SECRET_KEY'] = 'random' app.config['MONGODB_SETTINGS'] = {'DB': 'my_movie_library'} +app.config['SMTP_USER'] = "" +app.config['SMTP_PASSWORD'] = "" +app.config['SMTP_SERVER'] = "smtp.gmail.com:587" +app.config['TMDB_API_KEY'] = "" +set_key(app.config['TMDB_API_KEY']) + # app.config["MONGODB_SETTINGS"] = {'DB': "my_movie_library", # 'host': '192.168.1.89'} app.debug = True diff --git a/project/controllers/loan.py b/project/controllers/loan.py index 52ab879..4ed4ea1 100644 --- a/project/controllers/loan.py +++ b/project/controllers/loan.py @@ -6,4 +6,34 @@ from flask.ext.wtf import Form, TextField, validators @app.route('/loaned') @security('user') def loaned(user=None): - return render_template('loan/master.html', user=user) \ No newline at end of file + return render_template('loan/master.html', user=user) + +@app.route('/send-reminder', methods=['POST']) +@security('user') +def reminderEmail(user=None): + from_addr = user.email + to_addr = request.form['email'] + subject = request.form['subject'] or "Movie Return Reminder" + movie_id = request.form['movie'] + if not movie_id: + return jsonify(response='error',message='Invalid Movie given'),404 + from project.model.Movie import Movie + movie = Movie.objects(id=movie_id).first() + if not movie: + return jsonify(response='error',message='Invalid Movie given'),404 + loan = movie.getLoan(user) + message = request.form['message'] or "The movie %s, borrowed form %s is due on %s" % (movie.title, user.email, loan.expected_return_date) + login = app.config['SMTP_USER'] + password = app.config['SMTP_PASSWORD'] + smtpserver= app.config['SMTP_SERVER'] + + header = 'From: %s\n' % from_addr + header += 'To: %s\n' % to_addr + header += 'Subject: %s\n\n' % subject + message = header + message + + server = smtplib.SMTP(smtpserver) + server.starttls() + server.login(login,password) + problems = server.sendmail(from_addr, to_addr, message) + server.quit() \ No newline at end of file diff --git a/project/model/Movie.py b/project/model/Movie.py index 0998b41..866bf62 100644 --- a/project/model/Movie.py +++ b/project/model/Movie.py @@ -19,7 +19,12 @@ class Movie(db.Document): def removeTag(self,tag): if tag in self.tags: self.tags.remove(tag) - return self + return self + + def getLoan(self,user): + from Loan import Loan + loan = Loan.objects(movie=self,user=user).first() + return loan def __str__(self): return self.title -- GitLab