2021-05-04 12:07:59 +02:00

30 lines
819 B
Python

from __future__ import annotations
from dataclasses import dataclass, asdict
from datetime import datetime
from typing import Optional
from jinja2 import Template
@dataclass
class MobilizonEvent:
"""Class representing an event retrieved from Mobilizon."""
name: str
description: str
begin_datetime: datetime
end_datetime: datetime
last_accessed: datetime
mobilizon_link: str
mobilizon_id: str
thumbnail_link: Optional[str] = None
location: Optional[str] = None
def begins_before(self, other: MobilizonEvent) -> bool:
return self.begin_datetime < other.begin_datetime
def _fill_template(self, pattern: Template) -> str:
return pattern.render(**asdict(self))
def format(self, pattern: Template) -> str:
return self._fill_template(pattern)