Move data classes into domain package

This commit is contained in:
Marty Oehme 2025-06-06 11:23:09 +02:00
parent 003eebfebf
commit 029a6ddb71
Signed by: Marty
GPG key ID: 4E535BC19C61886E
4 changed files with 15 additions and 11 deletions

View file

@ -0,0 +1,34 @@
import hashlib
import re
from dataclasses import dataclass, field
from datetime import datetime
@dataclass
class Original: # BadJoke: Sting
title: str
summary: str
link: str
date: datetime
image_link: str | None = None
id: str = field(init=False)
def _extract_img(self, s: str) -> tuple[str, str]: # [img_link, rest of string]
img: str
m = re.match(r'<img src="(?P<img>.+?)"', s)
try:
img = m.group("img")
except (IndexError, NameError):
return ("", s)
if img:
rest = re.sub(r"<img src=.+?>", "", s)
return (img, rest)
def __post_init__(self):
self.id = hashlib.sha256(self.link.encode()).hexdigest()
extracted = self._extract_img(self.summary)
if extracted[0]:
self.image_link = extracted[0]
self.summary = extracted[1]