diff --git a/backend/src/backend/__pycache__/__init__.cpython-314.pyc b/backend/src/backend/__pycache__/__init__.cpython-314.pyc
index c16a269..eaeff76 100644
Binary files a/backend/src/backend/__pycache__/__init__.cpython-314.pyc and b/backend/src/backend/__pycache__/__init__.cpython-314.pyc differ
diff --git a/backend/src/backend/__pycache__/main.cpython-314.pyc b/backend/src/backend/__pycache__/main.cpython-314.pyc
index 5949f7a..1fffd0c 100644
Binary files a/backend/src/backend/__pycache__/main.cpython-314.pyc and b/backend/src/backend/__pycache__/main.cpython-314.pyc differ
diff --git a/backend/src/backend/internal/__pycache__/__init__.cpython-314.pyc b/backend/src/backend/internal/__pycache__/__init__.cpython-314.pyc
index f625a75..517dc27 100644
Binary files a/backend/src/backend/internal/__pycache__/__init__.cpython-314.pyc and b/backend/src/backend/internal/__pycache__/__init__.cpython-314.pyc differ
diff --git a/backend/src/backend/internal/__pycache__/authentication.cpython-314.pyc b/backend/src/backend/internal/__pycache__/authentication.cpython-314.pyc
index 0a11bdd..cc0e7fc 100644
Binary files a/backend/src/backend/internal/__pycache__/authentication.cpython-314.pyc and b/backend/src/backend/internal/__pycache__/authentication.cpython-314.pyc differ
diff --git a/backend/src/backend/internal/__pycache__/database.cpython-314.pyc b/backend/src/backend/internal/__pycache__/database.cpython-314.pyc
index 8b01da7..b7c33d4 100644
Binary files a/backend/src/backend/internal/__pycache__/database.cpython-314.pyc and b/backend/src/backend/internal/__pycache__/database.cpython-314.pyc differ
diff --git a/backend/src/backend/internal/__pycache__/mail_util.cpython-314.pyc b/backend/src/backend/internal/__pycache__/mail_util.cpython-314.pyc
new file mode 100644
index 0000000..c2fbe88
Binary files /dev/null and b/backend/src/backend/internal/__pycache__/mail_util.cpython-314.pyc differ
diff --git a/backend/src/backend/internal/__pycache__/rss_reader.cpython-314.pyc b/backend/src/backend/internal/__pycache__/rss_reader.cpython-314.pyc
index b3c7d27..d240d6c 100644
Binary files a/backend/src/backend/internal/__pycache__/rss_reader.cpython-314.pyc and b/backend/src/backend/internal/__pycache__/rss_reader.cpython-314.pyc differ
diff --git a/backend/src/backend/internal/__pycache__/user_code_gen.cpython-314.pyc b/backend/src/backend/internal/__pycache__/user_code_gen.cpython-314.pyc
index 08ba002..79aa644 100644
Binary files a/backend/src/backend/internal/__pycache__/user_code_gen.cpython-314.pyc and b/backend/src/backend/internal/__pycache__/user_code_gen.cpython-314.pyc differ
diff --git a/backend/src/backend/internal/jinja_templates/approval.jinja b/backend/src/backend/internal/jinja_templates/approval.jinja
new file mode 100644
index 0000000..4ae4767
--- /dev/null
+++ b/backend/src/backend/internal/jinja_templates/approval.jinja
@@ -0,0 +1,63 @@
+
+
+
+
+ Newsletter
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/backend/src/backend/internal/jinja_templates/output.html b/backend/src/backend/internal/jinja_templates/output.html
new file mode 100644
index 0000000..289a626
--- /dev/null
+++ b/backend/src/backend/internal/jinja_templates/output.html
@@ -0,0 +1,61 @@
+
+
+
+
+ Newsletter
+
+
+
+
+
Neuer Artikel:
+
England
+
It's gettin' british, my dear!
+
Auf geht's nach Milano! Aber Moment mal...der Artikel heißt England?! Da kann irgendwas nicht stimmen. Ich
+ frage mal in der Redaktion nach. Ihr lest währenddessen einfach schonmal weiter.
+
+
+
Zum Artikel
+
+
+
+
Approve
+
+
+
+
+
\ No newline at end of file
diff --git a/backend/src/backend/internal/mail_util.py b/backend/src/backend/internal/mail_util.py
new file mode 100644
index 0000000..bbfca9f
--- /dev/null
+++ b/backend/src/backend/internal/mail_util.py
@@ -0,0 +1,43 @@
+from mailtrap import Mail
+import mailtrap as mt
+import os
+from jinja2 import Environment, FileSystemLoader
+
+
+class Newsletter():
+ def __init__(self, title, subtitle, description, link):
+ self.title=title
+ self.subtitle=subtitle
+ self.description=description
+ self.link=link
+
+ title: str
+ subtitle: str
+ description: str
+ link: str
+
+def send_newsletter_admin_approval(data: Newsletter ):
+ env = Environment(loader = FileSystemLoader('src/backend/internal/jinja_templates'))
+ template = env.get_template('approval.jinja')
+ output = template.render(data=data)
+
+
+ with open("src/backend/internal/jinja_templates/output.html", "w") as f:
+ f.write(output)
+
+
+ mail = mt.Mail(
+ sender=mt.Address(email="newsletter@blauwasser-mausis.de", name="Flaschenpost"),
+ to=[mt.Address(email="blauwasser-mausis@proton.me")],
+ subject=f"[Approval] {data.title}",
+ text="Jinja2 Template",
+ )
+
+
+
+def send_mail(mail: Mail):
+ client = mt.MailtrapClient(token="")
+ client.send(mail)
+
+def send_batch_mail():
+ pass
diff --git a/backend/src/backend/internal/rss_reader.py b/backend/src/backend/internal/rss_reader.py
index ea7247c..7ae806f 100644
--- a/backend/src/backend/internal/rss_reader.py
+++ b/backend/src/backend/internal/rss_reader.py
@@ -1,9 +1,11 @@
+from backend.internal.mail_util import Newsletter
+from backend.internal.mail_util import send_newsletter_admin_approval
from datetime import timedelta
from datetime import datetime
import feedparser
-FEED_URL="https://blauwasser-mausis.de/rss.xml"
+FEED_URL="http://localhost:4321/rss.xml"
def check_blog_rss_and_send_admin_mail():
feed = feedparser.parse(FEED_URL)
@@ -11,11 +13,16 @@ def check_blog_rss_and_send_admin_mail():
date_string = str(article["published"])
date_object = datetime.strptime(date_string, '%a, %d %b %Y %H:%M:%S %Z')
- if date_object > (datetime.now() - timedelta(days=1)):
- print(f"Neu: {article["title"]}")
+ if date_object > (datetime.now() - timedelta(days=15)):
title = str(article["title"])
description = str(article["summary"])
+ subtitle = str(article["subtitle"])
+ link = str(article["link"])
+ data = Newsletter(title, subtitle, description, link)
+
+ send_newsletter_admin_approval(data)
+
# TODO: create link
# TODO: create Template with jinja2
# TODO: send mail to blauwasser-mausis@proton.me
diff --git a/backend/src/backend/main.py b/backend/src/backend/main.py
index 3c07be9..662bb37 100644
--- a/backend/src/backend/main.py
+++ b/backend/src/backend/main.py
@@ -28,3 +28,6 @@ router = APIRouter()
app.include_router(users.router)
app.include_router(comments.router)
+check_blog_rss_and_send_admin_mail()
+
+
diff --git a/backend/src/backend/models/__pycache__/__init__.cpython-314.pyc b/backend/src/backend/models/__pycache__/__init__.cpython-314.pyc
index c12a6ca..3ce6b35 100644
Binary files a/backend/src/backend/models/__pycache__/__init__.cpython-314.pyc and b/backend/src/backend/models/__pycache__/__init__.cpython-314.pyc differ
diff --git a/backend/src/backend/models/__pycache__/comment.cpython-314.pyc b/backend/src/backend/models/__pycache__/comment.cpython-314.pyc
index 5dcea1d..b93c758 100644
Binary files a/backend/src/backend/models/__pycache__/comment.cpython-314.pyc and b/backend/src/backend/models/__pycache__/comment.cpython-314.pyc differ
diff --git a/backend/src/backend/models/__pycache__/user.cpython-314.pyc b/backend/src/backend/models/__pycache__/user.cpython-314.pyc
index 3b19c91..0ad17ac 100644
Binary files a/backend/src/backend/models/__pycache__/user.cpython-314.pyc and b/backend/src/backend/models/__pycache__/user.cpython-314.pyc differ
diff --git a/backend/src/backend/routers/__pycache__/__init__.cpython-314.pyc b/backend/src/backend/routers/__pycache__/__init__.cpython-314.pyc
index 767264a..f026e06 100644
Binary files a/backend/src/backend/routers/__pycache__/__init__.cpython-314.pyc and b/backend/src/backend/routers/__pycache__/__init__.cpython-314.pyc differ
diff --git a/backend/src/backend/routers/__pycache__/comments.cpython-314.pyc b/backend/src/backend/routers/__pycache__/comments.cpython-314.pyc
index c33730d..e3628b7 100644
Binary files a/backend/src/backend/routers/__pycache__/comments.cpython-314.pyc and b/backend/src/backend/routers/__pycache__/comments.cpython-314.pyc differ
diff --git a/backend/src/backend/routers/__pycache__/users.cpython-314.pyc b/backend/src/backend/routers/__pycache__/users.cpython-314.pyc
index c21b5ee..a0105bf 100644
Binary files a/backend/src/backend/routers/__pycache__/users.cpython-314.pyc and b/backend/src/backend/routers/__pycache__/users.cpython-314.pyc differ
diff --git a/backend/src/test/routers/__pycache__/test_users.cpython-314-pytest-9.1.1.pyc b/backend/src/test/routers/__pycache__/test_users.cpython-314-pytest-9.1.1.pyc
index 16e234b..b702fc1 100644
Binary files a/backend/src/test/routers/__pycache__/test_users.cpython-314-pytest-9.1.1.pyc and b/backend/src/test/routers/__pycache__/test_users.cpython-314-pytest-9.1.1.pyc differ
diff --git a/blog/src/pages/rss.xml.js b/blog/src/pages/rss.xml.js
index d08c979..12a8749 100644
--- a/blog/src/pages/rss.xml.js
+++ b/blog/src/pages/rss.xml.js
@@ -19,7 +19,7 @@ export async function GET(context) {
customData: `
-
+
`,