Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
65 changes: 44 additions & 21 deletions truth_seeker.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import logging

from newsapi import NewsApiClient

import dynaconfig
Expand All @@ -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"))