FEAT: Added email bot (not connected)
UPDATE: fixed recommended categories
This commit is contained in:
51
web_server/blueprints/email.py
Normal file
51
web_server/blueprints/email.py
Normal file
@@ -0,0 +1,51 @@
|
||||
from flask import Blueprint, session
|
||||
from database.db_context import get_db
|
||||
import smtplib
|
||||
from email.mime.text import MIMEText
|
||||
from os import getenv
|
||||
from random import randrange
|
||||
|
||||
email_bp = Blueprint("email", __name__)
|
||||
|
||||
@email_bp.route("/send_email", methods=["POST"])
|
||||
def send_email() -> None:
|
||||
"""
|
||||
Send a verification email to the user.
|
||||
"""
|
||||
# Setup the sender email details
|
||||
SMTP_SERVER = "smtp.gmail.com"
|
||||
SMTP_PORT = 587
|
||||
SMTP_EMAIL = ""
|
||||
SMTP_PASSWORD = getenv()
|
||||
|
||||
# Get the users email address
|
||||
db = get_db()
|
||||
db.create_connection()
|
||||
user_email = db.fetchone("""
|
||||
SELECT email
|
||||
FROM users
|
||||
WHERE username = ?;
|
||||
""", (session.get("username"),))
|
||||
|
||||
|
||||
# Setup up the receiver details
|
||||
login_code = randrange(100000, 1000000)
|
||||
body = f"Here is your login code: {login_code}" # Make this better
|
||||
msg = MIMEText(body)
|
||||
msg["Subject"] = "Your Gander Login Code"
|
||||
msg["From"] = SMTP_EMAIL
|
||||
msg["To"] = user_email
|
||||
|
||||
# Send the email using smtplib
|
||||
with smtplib.SMTP(SMTP_SERVER, SMTP_PORT) as smtp:
|
||||
try:
|
||||
smtp.starttls() # TLS handshake to start the connection
|
||||
smtp.login(SMTP_EMAIL, SMTP_PASSWORD)
|
||||
smtp.ehlo()
|
||||
smtp.send_message(msg)
|
||||
|
||||
except TimeoutError:
|
||||
print("Server timed out")
|
||||
|
||||
except Exception as e:
|
||||
print("Error: ", e)
|
||||
@@ -46,7 +46,7 @@ def get_categories() -> list[dict]:
|
||||
"""
|
||||
|
||||
category_data = most_popular_category()
|
||||
streams = recommendations_based_on_category(category_data[0])
|
||||
streams = recommendations_based_on_category(category_data["category_id"])
|
||||
return jsonify(streams)
|
||||
|
||||
@login_required
|
||||
|
||||
Reference in New Issue
Block a user