aboutsummaryrefslogtreecommitdiffstats
path: root/app/Item.py
blob: 08411eadda9c41cd832ceb48d2d69ebacc3af6b5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
from dataclasses import dataclass
from datetime import datetime
from typing import Literal


@dataclass
class ItemEnclosure:
    """RSS Item Enclosure object"""

    length: str
    type: str
    url: str


@dataclass
class ItemGUID:
    """RSS Item GUID object"""

    value: str
    is_perma_link: bool = False


@dataclass
class ItemMediaContent:
    """RSS Item media:content object"""

    url: str
    medium: Literal["video", "image"]


@dataclass
class Item:
    """RSS Item"""

    title: str | None
    link: str | None
    description: str | None
    author: str | None
    pub_date: datetime | None
    category: str | None
    comments: str | None
    enclosures: list[ItemEnclosure]
    guid: ItemGUID
    media_content: ItemMediaContent | None