32 lines
738 B
Python
32 lines
738 B
Python
from typing import Optional, Dict
|
|
from dataclasses import dataclass, field
|
|
from datetime import datetime
|
|
|
|
from bs4 import Tag
|
|
|
|
from utils.typings import BoardPath
|
|
|
|
|
|
@dataclass
|
|
class Attachment:
|
|
url: str
|
|
source_url: str
|
|
source_filename: Optional[str] = None
|
|
source_suffix: Optional[str] = None
|
|
hash: Optional[str] = None
|
|
error: Optional[str] = None
|
|
|
|
|
|
@dataclass
|
|
class Post:
|
|
id: int
|
|
boardId: str
|
|
boardPath: BoardPath
|
|
authorId: Optional[str] = None
|
|
authorName: Optional[str] = None
|
|
category: Optional[str] = None
|
|
title: Optional[str] = None
|
|
body: Optional[Tag] = None
|
|
attachments: Dict[str, Attachment] = field(default_factory=lambda: {})
|
|
created_at: Optional[datetime] = None
|