From 62dfc55fd01772bca4fd350d96ddbc3dd069c4d4 Mon Sep 17 00:00:00 2001 From: CoolCoderCarl <123qwekir2wl@gmail.com> Date: Mon, 17 Oct 2022 21:52:41 +0300 Subject: [PATCH 1/2] Add funcs & logging --- truth_seeker.py | 40 +++++++++++++++++++++++++++++----------- 1 file changed, 29 insertions(+), 11 deletions(-) diff --git a/truth_seeker.py b/truth_seeker.py index f0da4bc..4a1a969 100644 --- a/truth_seeker.py +++ b/truth_seeker.py @@ -1,3 +1,5 @@ +import logging + from newsapi import NewsApiClient import dynaconfig @@ -8,10 +10,31 @@ 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(): +# 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): + 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) + except BaseException as base_err: + logging.error(base_err) + + +def list_info(): + for k_a, v_a in fetch_info("test").items(): print(k_a, v_a) if k_a == "articles": for list_i in v_a: @@ -21,11 +44,6 @@ 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) - +if __name__ == "__main__": + list_info() From 5e4b803acc5c7db3a47863e728794314eb1ef3b2 Mon Sep 17 00:00:00 2001 From: CoolCoderCarl <123qwekir2wl@gmail.com> Date: Tue, 18 Oct 2022 12:30:38 +0300 Subject: [PATCH 2/2] Update truth_seeker.py --- truth_seeker.py | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/truth_seeker.py b/truth_seeker.py index 4a1a969..d050d73 100644 --- a/truth_seeker.py +++ b/truth_seeker.py @@ -22,28 +22,33 @@ ) -def fetch_info(query: str): +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(): - for k_a, v_a in fetch_info("test").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) +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() + list_info(fetch_info("test"))