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