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..4e2d183 --- /dev/null +++ b/backend/src/backend/internal/jinja_templates/approval.jinja @@ -0,0 +1,58 @@ + + + + + Newsletter + + + +
+

Neuer Artikel:

+

{{data.title}}

+

{{data.subtitle}}

+

{{data.description}}

+ + + + + + Approve +
+ + + + \ 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..cb0e5c4 --- /dev/null +++ b/backend/src/backend/internal/jinja_templates/output.html @@ -0,0 +1,58 @@ + + + + + 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.

+ + + + + + 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: ` - + `,