
    bEiG                     N   d dl mZmZmZmZmZmZmZ d dlm	Z	m
Z
mZmZmZmZ d dlmZmZ d dlmZmZ d dlmZ d dlZd dlZd dlZd dlmZmZ d dlZd dlmZ d d	lmZ d dl Z d dl!Z!d dl"Z# ejH                  d
      Z% e        de&fdZ' ee(      Z)e%e)jT                  d<    G d de
      Z+e)jY                  dddg      d        Z-e)jY                  d      d        Z.e)jY                  d      d        Z/e)jY                  ddg      d        Z0e(dk(  re)jc                  dd       yy)    )Flaskjsonifyrequestrender_templateredirecturl_forflash)LoginManager	UserMixin
login_userlogin_requiredlogout_usercurrent_user)MailMessage)generate_password_hashcheck_password_hash)gen_saltN)datetime	timedelta)load_dotenv)ConfidentialClientApplication   emailc                    	 t         j                  }|j                         s|j                  dd       |j	                         }|j                  d| f       |j                         r|j                          y|j                  d| f       |j                          |j                          y# t        j                  j                  $ r9}t        d|        	 j                          n# t        $ r Y nw xY wY d	}~y
d	}~ww xY w)u  Prüft, ob die E-Mail bereits in der Tabelle `newsletter` existiert.
    Falls nicht vorhanden, wird sie eingefügt.

    Rückgabe:
      - 'exists' wenn die E-Mail bereits vorhanden ist
      - 'inserted' wenn Einfügen erfolgreich war
      - 'error' bei einem Datenbankfehler
          )attemptsdelayz*SELECT id FROM newsletter WHERE email = %sexistsz*INSERT INTO newsletter (email) VALUES (%s)insertedzDatenbankfehler (newsletter): Nerror)dbconnection
connectionis_connected	reconnectcursorexecutefetchoneclosecommitmysql	connectorErrorprint	Exception)r   connr'   errs       /var/www/html/main.pynewsletter_userr4      s    &&  "NNAQN/CeXN??LLN 	8H	
 	??   .se45	LLN 		sB   A6B- 93B- -D
C>C*)C>*	C63C>5C66C>>D
SECRET_KEYc                       e Zd Zd Zy)Userc                      || _         || _        y )N)idr   )selfr9   r   s      r3   __init__zUser.__init__D   s    
    N)__name__
__module____qualname__r;    r<   r3   r7   r7   C   s    r<   r7   /GETPOST)methodsc                     t         j                  dk(  rt         j                  j                  dd      j	                         } | rd| vrt        dd       t        d      S t        |       }|dk(  rt        d	d       t        d      S |d
k(  rt        dd       t        d      S t        dd       t        d      S t        d      S )NrC   r    @+   Bitte gib eine gültige E-Mail-Adresse ein.r"   z
index.htmlr    1Diese E-Mail ist bereits im Newsletter-Verteiler.r!   u9   Danke — deine E-Mail wurde zum Newsletter hinzugefügt.successZ   Beim Speichern deiner E-Mail ist ein Fehler aufgetreten. Bitte versuche es später erneut.)r   methodformgetstripr	   r   r4   )r   results     r3   indexrQ   H   s    ~~  "-3355(?I"<00 'XEwO
 |,,	 z!MyY |,, npwx|,,<((r<   z
/impressumc                      t        d      S )Nzimpressum.htmlr   r@   r<   r3   	impressumrT   [   s    +,,r<   z/datenschutzc                      t        d      S )Nzdatenschutz.htmlrS   r@   r<   r3   datenschutzrV   _   s    -..r<   z/api/newsletter/subscribec                     	 t        j                         } | st        ddd      dfS | j                  dd      j	                         }|rd|vrt        ddd      dfS t        |      }|d	k(  rt        dd
d      dfS |dk(  rt        ddd      dfS t        ddd      dfS # t        $ r(}t        d|        t        ddd      dfcY d}~S d}~ww xY w)u7   API-Endpunkt für Newsletter-Anmeldung (z.B. aus Popup)FzKeine Daten empfangen.)rJ   messagei  r   rF   rG   rH   r    rI   i  r!   TuS   Vielen Dank für deine Anmeldung! Du erhältst in Kürze eine Bestätigungs-E-Mail.   rK   i  z Fehler in newsletter_subscribe: z(Ein unerwarteter Fehler ist aufgetreten.N)r   get_jsonr   rN   rO   r4   r0   r/   )datar   rP   es       r3   newsletter_subscriber]   c   s(   g!u9QRSUXXX"%++-5(u9fghjmmm 'Xu9lmnpsssz!t  9N  O  P  RU  U  Uu  :V  W  X  Z]  ]  ] g04555_`acfffgs4   %B# 5B# B# >B# B# #	C,C	CC__main__Ti@  )debugport)2flaskr   r   r   r   r   r   r	   flask_loginr
   r   r   r   r   r   
flask_mailr   r   werkzeug.securityr   r   r   hmacosuuidr   r   secretsdotenvr   msalr   requestsr#   mysql.connectorr,   	token_hex   geheim_schlüsselstrr4   r=   appconfigr7   routerQ   rT   rV   r]   runr@   r<   r3   <module>rt      s+   T T T f f $ I &  	  (   .    &G%%b)  %3 %T Ho,

< 9 
 3() ))$ <- - >/ / &9g :g0 zGG$TG" r<   