From 536bdf3bd6f147bb366cd0ee3166b04d6793a830 Mon Sep 17 00:00:00 2001 From: Rripped Date: Wed, 16 Mar 2022 13:32:26 +0100 Subject: [PATCH] added auto sources for news --- telegram_bot/bot.py | 2 +- telegram_bot/news/news_fetcher.py | 12 +++++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/telegram_bot/bot.py b/telegram_bot/bot.py index 4f1be7e..401894b 100644 --- a/telegram_bot/bot.py +++ b/telegram_bot/bot.py @@ -205,7 +205,7 @@ def send_news(message): :rtype: none """ - keyword = "business" + keyword = "bitcoin" user_id = int(message.from_user.id) #Get Information for user with this id diff --git a/telegram_bot/news/news_fetcher.py b/telegram_bot/news/news_fetcher.py index 5f00fbc..69c0807 100644 --- a/telegram_bot/news/news_fetcher.py +++ b/telegram_bot/news/news_fetcher.py @@ -9,6 +9,7 @@ __license__ = "None" import sys import os import json +import requests from newsapi import NewsApiClient from dotenv import load_dotenv @@ -16,7 +17,12 @@ from dotenv import load_dotenv load_dotenv() # Init -newsapi = NewsApiClient(api_key=os.getenv('NEWS_API_KEY')) +api_key = os.getenv('NEWS_API_KEY') +newsapi = NewsApiClient(api_key=api_key) +source_json = requests.get(f"https://newsapi.org/v2/top-headlines/sources?apiKey={api_key}&language=en").json() +sources = source_json["sources"] +str_sources = ",".join([source["id"] for source in sources]) + def get_top_news_by_keyword(keyword): """get top news to keyword @@ -26,7 +32,7 @@ def get_top_news_by_keyword(keyword): Returns: JSON/dict: dict containing articles """ - top_headlines = newsapi.get_top_headlines(q=keyword, sources='bbc-news,the-verge,cnn,buzzfeed,fox', language='en') + top_headlines = newsapi.get_top_headlines(q=keyword, sources=str_sources, language='en') return top_headlines def format_article(article): @@ -49,6 +55,6 @@ if __name__ == '__main__': print("fetching top news by keyword business...") - articles = get_top_news_by_keyword("business") + articles = get_top_news_by_keyword("bitcoin") formatted_article = format_article(articles["articles"][0]) print(formatted_article) \ No newline at end of file