#7 Notifier is now able to process real FeedItem objects.
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is failing Details

This commit is contained in:
Alexey Skobkin 2022-05-30 03:33:04 +03:00
parent 54cded15e5
commit 882b4df5e1
1 changed files with 8 additions and 7 deletions

View File

@ -5,6 +5,7 @@ import validators
from database import Database
from exceptions import DisplayableException
from rss import FeedItem
class CommandProcessor:
@ -90,23 +91,23 @@ class Notifier:
def __init__(self, token: str):
self.bot: TeleBot = TeleBot(token)
def send_updates(self, chat_id: int, updates: list):
def send_updates(self, chat_id: int, updates: list[FeedItem]):
"""Send notification about new items to the user"""
for update in updates:
self.__send_update(chat_id, update)
def __send_update(self, chat_id: int, update):
def __send_update(self, telegram_id: int, update: FeedItem):
self.bot.send_message(
chat_id=chat_id,
text=self.__format_message(),
chat_id=telegram_id,
text=self.__format_message(update),
parse_mode='MarkdownV2'
)
@staticmethod
def __format_message(item) -> str:
def __format_message(item: FeedItem) -> str:
return (
f"**[{update['title']}]({update['url']})**\n\n"
f"{update['text']}"
f"**[{item.title}]({item.url})**\n\n"
f"{item.description}"
)