Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Der-Henning
GitHub Repository: Der-Henning/tgtg
Path: blob/main/tgtg_scanner/notifiers/console.py
1494 views
1
import logging
2
3
from tgtg_scanner.errors import ConsoleConfigurationError, MaskConfigurationError
4
from tgtg_scanner.models import Config, Favorites, Item, Reservations
5
from tgtg_scanner.models.reservations import Reservation
6
from tgtg_scanner.notifiers.base import Notifier
7
8
log = logging.getLogger("tgtg")
9
10
11
class Console(Notifier):
12
"""Notifier for the console output."""
13
14
def __init__(self, config: Config, reservations: Reservations, favorites: Favorites):
15
super().__init__(config, reservations, favorites)
16
self.enabled = config.console.enabled
17
self.body = config.console.body
18
self.cron = config.console.cron
19
20
if self.enabled:
21
try:
22
Item.check_mask(self.body)
23
except MaskConfigurationError as exc:
24
raise ConsoleConfigurationError(exc.message) from exc
25
26
def _send(self, item: Item | Reservation) -> None:
27
if isinstance(item, Item):
28
message = item.unmask(self.body)
29
print(message)
30
31
def __repr__(self) -> str:
32
return "Console stdout"
33
34