From 058df76cb045b265f4fabbdbbff2560958e01faa Mon Sep 17 00:00:00 2001 From: Henning Merklinger Date: Wed, 26 Apr 2023 17:33:22 +0200 Subject: [PATCH] cleanup and docstrings --- src/models/reservations.py | 49 +++++++++++++++++++++++++++----------- src/notifiers/base.py | 7 ++++++ src/notifiers/notifiers.py | 5 ++++ src/notifiers/telegram.py | 9 ------- 4 files changed, 47 insertions(+), 23 deletions(-) diff --git a/src/models/reservations.py b/src/models/reservations.py index 5165638f..5ff24e3d 100644 --- a/src/models/reservations.py +++ b/src/models/reservations.py @@ -32,42 +32,63 @@ def __init__(self, client: TgtgClient) -> None: def reserve(self, item_id: str, display_name: str, amount: int = 1) -> None: + """Create a new reservation + + Args: + item_id (str): Item ID + display_name (str): Item display name + amount (int, optional): Amount. Defaults to 1. + """ self.reservation_query.append( Reservation(item_id, amount, display_name)) - def _create_order(self, reservation: Reservation) -> None: - try: - res = self.client.create_order( - reservation.item_id, reservation.amount) - order_id = res.get("id") - order = Order(order_id, - reservation.item_id, - reservation.amount, - reservation.display_name) - self.active_orders.append(order) - self.reservation_query.remove(reservation) - except Exception as exc: - log.error("Create Order Error: %s", exc) - def make_orders(self, state: Dict[str, Item], callback: Callable[[Reservation], None]) -> None: + """Create orders for reservations + + Args: + state (Dict[str, Item]): Current item state + callback (Callable[[Reservation], None]): Callback for each order + """ for reservation in self.reservation_query: if state.get(reservation.item_id).items_available > 0: self._create_order(reservation) callback(reservation) def update_active_orders(self) -> None: + """Remove orders that are not active anymore + """ for order in self.active_orders: res = self.client.get_order_status(order.id) if res.get("state") != "RESERVED": self.active_orders.remove(order) def cancel_order(self, order: Order) -> None: + """Cancel an order + """ self.client.abort_order(order.id) def cancel_all_orders(self) -> None: + """Cancel all active orders + """ for order in self.active_orders: self.cancel_order(order) def get_favorites(self) -> List[Item]: + """Get all favorite items + """ return [Item(item) for item in self.client.get_favorites()] + + def _create_order(self, reservation: Reservation) -> None: + try: + res = self.client.create_order( + reservation.item_id, reservation.amount) + order_id = res.get("id") + order = Order(order_id, + reservation.item_id, + reservation.amount, + reservation.display_name) + self.active_orders.append(order) + self.reservation_query.remove(reservation) + except Exception as exc: + log.error("Create Order Error: %s", exc) diff --git a/src/notifiers/base.py b/src/notifiers/base.py index b6dc89d9..b2af6ab5 100644 --- a/src/notifiers/base.py +++ b/src/notifiers/base.py @@ -15,14 +15,21 @@ def __init__(self, config: Config): @property def name(self): + """Get notifier name""" return self.__class__.__name__ def send(self, item: Item) -> None: + """Send notification for new item""" if self.enabled and self.cron.is_now: log.debug("Sending %s Notification", self.name) self._send(item) def send_reservation(self, reservation: Reservation) -> None: + """Send notification for new reservation + + Args: + reservation (Reservation): Reservation to send + """ if self.enabled: log.debug("Sending %s new Reservation", self.name) self._send_reservation(reservation) diff --git a/src/notifiers/notifiers.py b/src/notifiers/notifiers.py index 2761af82..bbaadc07 100644 --- a/src/notifiers/notifiers.py +++ b/src/notifiers/notifiers.py @@ -62,6 +62,11 @@ def send(self, item: Item) -> None: log.error("Failed sending %s: %s", notifier, exc) def send_reservation(self, reservation: Reservation) -> None: + """Send notification for new reservation + + Args: + reservation (Reservation): New reservation + """ for notifier in self._enabled_notifiers: try: notifier.send_reservation(reservation) diff --git a/src/notifiers/telegram.py b/src/notifiers/telegram.py index 1b44607e..c2db4520 100644 --- a/src/notifiers/telegram.py +++ b/src/notifiers/telegram.py @@ -51,7 +51,6 @@ def __init__(self, config: Config, reservations: Reservations): if not self.chat_ids: self._get_chat_id() handlers = [ - CommandHandler("help", self._help), CommandHandler("mute", self._mute), CommandHandler("unmute", self._unmute), CommandHandler("reserve", self._reserve_item_menu), @@ -63,7 +62,6 @@ def __init__(self, config: Config, reservations: Reservations): self.updater.dispatcher.add_handler(handler) self.updater.dispatcher.add_error_handler(self._error) self.updater.bot.set_my_commands([ - BotCommand('help', 'Display available Commands'), BotCommand('mute', 'Deactivate Telegram Notifications for ' '1 or x days'), @@ -114,13 +112,6 @@ def _send_message(self, message: str) -> None: except TelegramError as err: log.error('Telegram Error: %s', err) - def _help(self, update: Update, context: CallbackContext) -> None: - """Send message containing available bot commands""" - del context - update.message.reply_text( - 'Deactivate Telegram Notifications for x days using\n' - '/mute x\nReactivate with /unmute') - def _mute(self, update: Update, context: CallbackContext) -> None: """Deactivates Telegram Notifications for x days""" days = int(context.args[0]) if context.args and \