send email

This commit is contained in:
2025-07-26 21:15:59 +02:00
parent d55cb8fb17
commit cdf5055e4f
11 changed files with 103 additions and 14 deletions

View File

@@ -1,6 +1,7 @@
from collections.abc import Iterator
from datetime import datetime
from glob import glob
from types import SimpleNamespace
import polars as pl
import structlog
@@ -11,6 +12,7 @@ from plato.parse import parse as parse_plato
from shared.utils import get_partition_keys, load_partitions, parse_partition_keys
from sounds.fetch import fetch_deals
from sounds.parse import parse as parse_sounds
from utils.email import EmailService
import dagster as dg
@@ -220,7 +222,7 @@ def new_deals(
automation_condition=dg.AutomationCondition.eager(),
)
def good_deals(
context: dg.AssetExecutionContext, df: pl.LazyFrame
context: dg.AssetExecutionContext, email_service: EmailService, df: pl.LazyFrame
) -> Iterator[dg.Output[Deal.DataFrame]]:
filtered_df = df.filter(pl.col("price") <= 25).collect()
num_rows = filtered_df.height
@@ -230,3 +232,15 @@ def good_deals(
context.log.info(f"Good deals found ({num_rows}x)!")
yield dg.Output(Deal.DataFrame(filtered_df))
lines = []
for data in filtered_df.head(10).iter_rows(named=True):
row = SimpleNamespace(**data)
lines.append(f'<a href="https://www.platomania.nl{row.url}"><h1>NEW</h1></a>')
lines.append("<ul>")
lines.append(f"<li>[artist] {row.artist}</li>")
lines.append(f"<li>[title] {row.title}</li>")
lines.append(f"<li>[price] {row.price}</li>")
lines.append(f"<li>[release] {row.release}</li>")
lines.append("</ul>")
email_service.send_email("\n".join(lines))