#!/usr/bin/env python from heyoo import WhatsApp #import pywhatkit from sustApp.models.database import engine, SessionLocal import sustApp.models.models as models import logging, sys import smtplib from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText from email.mime.application import MIMEApplication from os.path import exists import datetime logging.basicConfig(stream=sys.stderr, level=logging.INFO) def send_whatsapp(member: models.Members): messenger = WhatsApp('EAAj1p1TLuUsBOy3849bBRZC8fEAZCc12440OW6L4BXDiiviWNWtAOLK3iyOKy3KnoRL3FOzCbiCoU0JKcoIAVzHLeBKUITaYWZBBl616wGyuqvIeQTyMFRuHiXM1MQ2ivnz74Bg6VD6GXMEpF0wzU68RdyyTwaQzSRmaXMW0R9IN0I9BUnSgFUJDqO1P66sngthaLuOxS3LGjvi', phone_number_id='250992074758193') #For sending a Text messages messenger.send_message('Hello I am WhatsApp Cloud API (on behalf of your husband)', '4367761802110') #For sending an Image # messenger.send_image( # image="https://i.imgur.com/YSJayCb.jpeg", # recipient_id="91989155xxxx", # ) # subject = 'Mitgliedsbeitrag 2024' # body = f'Liebes Mitglied,\n\nDein Zahlschein für 2024 liegt bei.\nDu kannst gerne mittels beiliegendem, aufgedrucktem QR-Code überweisen.\nDanke sagt Dein Team vom Sportverein!' # # es kann sein, dass die Mail-Adresse erst später ins System kam # path_to_file = f'payment_slips\\mail\\{member.member_zip}_payment_slip_member{member.id}.pdf' # if exists(path_to_file): # with open(path_to_file, 'rb') as f: # attachment = MIMEApplication(f.read(), _subtype='pdf') # attachment.add_header('Content-Disposition', 'attachment', filename=f'{member.member_zip}_payment_slip_member{member.id}.pdf') # msg.attach(attachment) # with smtplib.SMTP(smtp_server, smtp_port) as smtp: # smtp.starttls() # smtp.login(smtp_username, smtp_password) # smtp.send_message(msg) # newDelivery = models.Deliveries(delivery_date = datetime.datetime.now(), # member_id = member.id, # delivered_by_id = 186, # delivery_year = datetime.date.today()) # db.add(newDelivery) # db.commit() # logging.debug(f'Sent mail to {member.member_email}') db = SessionLocal() models.Base.metadata.create_all(bind=engine) #members = db.query(models.Members).filter(models.Members.member_email != None, ~models.Members.id.in_([183,51,200,49])).all() #members = db.query(models.Members).filter(models.Members.member_active == True).all() #members = db.query(models.Members).filter(models.Members.id.in_([2,3,9,199]), models.Members.member_active == True, models.Members.member_printed == False).all() members = db.query(models.Members).filter(models.Members.id.in_([186])).all() for member in members: send_whatsapp(member=member) logging.debug(f'Member: {member.member_surname}')