mirror of
https://github.com/Tech-Workers-Coalition-Italia/mobilizon-reshare.git
synced 2025-02-21 22:17:39 +01:00
30 lines
819 B
Python
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)
|