diff --git a/telegram_bot/bot.py b/telegram_bot/bot.py index 2fcc146..b24599a 100644 --- a/telegram_bot/bot.py +++ b/telegram_bot/bot.py @@ -24,6 +24,7 @@ import json import news.news_fetcher as news import shares.share_fetcher as share_fetcher +import datetime as dt from telebot import types from dotenv import load_dotenv @@ -247,7 +248,11 @@ def send_news(message): keywords = api_handler.get_user_keywords(user_id) keywords_search = ' OR '.join(keywords) print(keywords_search) - news_list = news.get_all_news_by_keyword(keywords_search)["articles"][:5] + now = dt.datetime.now().date() + from_date = now - dt.timedelta(days=7) + from_date_formatted = dt.datetime.strftime(from_date, '%Y-%m-%d') + print(from_date_formatted) + news_list = news.get_all_news_by_keyword(keywords_search, from_date_formatted)["articles"][:5] if news_list: for article in news_list: diff --git a/telegram_bot/news/news_fetcher.py b/telegram_bot/news/news_fetcher.py index f8764ba..f913257 100644 --- a/telegram_bot/news/news_fetcher.py +++ b/telegram_bot/news/news_fetcher.py @@ -11,6 +11,7 @@ import sys import os import json import requests +import datetime as dt from newsapi import NewsApiClient from dotenv import load_dotenv @@ -25,15 +26,16 @@ sources = source_json["sources"] str_sources = ",".join([source["id"] for source in sources]) -def get_all_news_by_keyword(keyword, from_date="2022-01-01", to_date="2022-03-29"): # hard coded will change soon +def get_all_news_by_keyword(keyword, from_date="2000-01-01"): # hard coded will change soon """get all news to keyword Args: keyword (String): keyword for search + from_date (String): min date for search Returns: JSON/dict: dict containing articles """ - top_headlines = newsapi.get_everything(q=keyword, sources=str_sources, language='en') + top_headlines = newsapi.get_everything(q=keyword, sources=str_sources, language='en', from_param=from_date) return top_headlines def format_article(article): @@ -54,7 +56,8 @@ def format_article(article): if __name__ == '__main__': - print("fetching top news by keyword business...") + print("this is a module and should not be run directly") + print("fetching top news by keyword bitcoin...") articles = get_all_news_by_keyword("bitcoin") formatted_article = format_article(articles["articles"][0])