diff --git a/SecretSanta.py b/SecretSanta.py new file mode 100644 index 0000000000000000000000000000000000000000..0683c4350e2656fb39fe4f39c39d950944e93602 --- /dev/null +++ b/SecretSanta.py @@ -0,0 +1,70 @@ +import smtplib +from email.mime.text import MIMEText +from email.mime.multipart import MIMEMultipart +import random +from dotenv import load_dotenv +import os + +##Les noms des participants et leurs mails sont ici fictifs pour ne délivrer aucune information personnelle +participants_names = ['Alice', 'Bob', 'Charlie', 'Dana'] +participants_emails = ['alice@example.com', 'bob@example.com', 'charlie@example.com', 'dana@example.com'] + +def send_mail(email, subject, body): + smtp_server = 'smtp.gmail.com' + smtp_port = 587 + load_dotenv() + smtp_username = os.getenv("SMTP_USERNAME") + smtp_password = os.getenv("SMTP_PASSWORD") + + message = MIMEMultipart() + message['From'] = smtp_username + message['To'] = email + message['Subject'] = subject + + message.attach(MIMEText(body, 'plain')) + + with smtplib.SMTP(smtp_server, smtp_port) as server: + server.starttls() + server.login(smtp_username, smtp_password) + + server.sendmail(smtp_username, email, message.as_string()) + +def tirageausort(names, emails): + results = [] + while True: + shuffled_names = names.copy() + random.shuffle(shuffled_names) + if all(giver != receiver for giver, receiver in zip(names, shuffled_names)): + break + for i, name in enumerate(names): + giver = names[i] + receiver = shuffled_names[i] + receiver_email = emails[names.index(receiver)] + + results.append((i, receiver)) + return results + +def secretsanta(names, emails): + tirage = tirageausort(names, emails) + subject = "Super Secret Santa de la squad !!! Regarde qui tu as pioché ici ! " + for i, receiver in tirage: + body = f""" +Bonjour {names[i]}, + +Cette année, tu es le Père Noël secret de {receiver} dans notre squad ! 🎅🎠+ +On a fixé un budget d'environ 20-25€, mais ne t'inquiète pas si tu fais moins ou que tu dépasses un peu, l'essentiel c'est de faire plaisir ! 🌟 + +Allez, c'est parti ! Va t'éclater à choisir un super cadeau pour ton ami secret ! 🎉 + +Petit message de l'organisatrice : +Hello les copains, c'est Agathe ! Cette année, j'ai décidé de coder moi-même le tirage au sort du Père Noël secret. +Comme vous le voyez, vous recevez un mail de ma part, mais c'est bel et bien mon ordinateur qui a choisi votre personne et qui vous indique qui vous avez. +Je n'ai aucun pouvoir sur le tirage et je ne sais pas qui vous avez, donc merci de garder le secret et de ne pas répondre à ce mail ! + +Joyeux Père Noël secret ! 🎄🎅 +""" + print(emails[i]) + send_mail(emails[i], subject, body) + +secretsanta(participants_names, participants_emails) \ No newline at end of file