send email
This commit is contained in:
@@ -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))
|
||||
|
||||
Reference in New Issue
Block a user