diff --git a/truth_seeker.py b/truth_seeker.py index f0da4bc..d050d73 100644 --- a/truth_seeker.py +++ b/truth_seeker.py @@ -1,3 +1,5 @@ +import logging + from newsapi import NewsApiClient import dynaconfig @@ -8,24 +10,45 @@ newsapi = NewsApiClient(api_key=API_KEY) -try: - all_articles = newsapi.get_everything(q="test", sort_by="popularity") - - for k_a, v_a in all_articles.items(): - print(k_a, v_a) - if k_a == "articles": - for list_i in v_a: - print("=======================") - print("NEW NEWS") - print("=======================") - for k, v in list_i.items(): - print(k, v) - -except ConnectionError as con_err: - print(con_err) -except BaseException as base_err: - print(base_err) - -# print(all_articles) - - +# Logging +logging.basicConfig( + format="%(asctime)s - %(levelname)s - %(message)s", level=logging.INFO +) +logging.basicConfig( + format="%(asctime)s - %(levelname)s - %(message)s", level=logging.WARNING +) +logging.basicConfig( + format="%(asctime)s - %(levelname)s - %(message)s", level=logging.ERROR +) + + +def fetch_info(query: str) -> dict: + try: + result = newsapi.get_everything(q=query, sort_by="popularity") + logging.info(f"Searching for {query}") + return result + except ConnectionError as con_err: + logging.error(con_err) + return {} + except BaseException as base_err: + logging.error(base_err) + return {} + + +def list_info(fetch_info: dict): + if fetch_info: + for article in fetch_info.get("articles"): + for article_point, article_data in article.items(): + if article_point == "urlToImage": + continue + elif article_point == "source": + print(article_point.capitalize(), article_data.get("name")) + else: + print(article_point.capitalize(), article_data) + else: + logging.warning("Empty response from API") + raise IndexError + + +if __name__ == "__main__": + list_info(fetch_info("test"))