From 05d2b374822bb26e5bd092308526ad15d1bd04c7 Mon Sep 17 00:00:00 2001 From: Linus E <75929322+Rripped@users.noreply.github.com> Date: Tue, 15 Mar 2022 14:24:11 +0100 Subject: [PATCH] fixed errors --- telegram_bot/bot.py | 11 ++++++++--- telegram_bot/news_fetcher.py | 6 ++---- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/telegram_bot/bot.py b/telegram_bot/bot.py index 7449da9..bc8558a 100644 --- a/telegram_bot/bot.py +++ b/telegram_bot/bot.py @@ -37,7 +37,6 @@ class User: # Currently saving users in this class to test functionality -> late self.chat_id = int(p_chat_id) self.user_name = str(p_user_name) -print(os.getenv('BOT_API_KEY')) bot = telebot.TeleBot(os.getenv('BOT_API_KEY')) @bot.message_handler(commands=['start']) # /start -> saving as new user and sending welcome @@ -89,10 +88,16 @@ def send_update(message): @bot.message_handler(commands=['news']) # /news -> send news by keyword def send_news(message): + keyword = "business" user_id = int(message.from_user.id) #Get Information for user with this id - articles = news_fetcher.get_top_news_by_keyword("bitcoin") #tbd: get keyword from db - formatted_article = news_fetcher.format_article(articles["articles"][0]) + + articles = news_fetcher.get_top_news_by_keyword(keyword) #tbd: get keyword from db + try: + formatted_article = news_fetcher.format_article(articles["articles"][0]) + except IndexError: + bot.send_message(chat_id=user_id, text=f"no news currently available for keyword: {keyword}") + return bot.send_message(chat_id=user_id, text=formatted_article) diff --git a/telegram_bot/news_fetcher.py b/telegram_bot/news_fetcher.py index dbebe34..65af5b5 100644 --- a/telegram_bot/news_fetcher.py +++ b/telegram_bot/news_fetcher.py @@ -31,20 +31,18 @@ sources = newsapi.get_sources() def get_top_news_by_keyword(keyword): top_headlines = newsapi.get_top_headlines(q=keyword, sources='bbc-news,the-verge,cnn', language='en') - out_file = open("top_headline.json", "w") - json.dump(top_headlines, out_file) return top_headlines def format_article(article): sourcename = article["source"]["name"] headline = article["title"] url = article["url"] - formatted_article = f"{sourcename}\n{headline}\n\ntext" + formatted_article = f"_{sourcename}_\n*{headline}*\n\n{url}" return formatted_article if __name__ == '__main__': - + print("fetching top news by keyword business...") articles = get_top_news_by_keyword("business")