diff --git a/smlep_news/nytimes/__init__.py b/smlep_news/nytimes/__init__.py new file mode 100644 index 0000000..2ddf64d --- /dev/null +++ b/smlep_news/nytimes/__init__.py @@ -0,0 +1,16 @@ +import requests + +from .article import Article + +base = "https://api.nytimes.com/svc/mostpopular/v2/viewed/" + + +def get_most_viewed_articles(key, days_count): + if days_count not in [1, 7, 30]: + raise ValueError("The days period must be 1, 7 or 30") + url = "{}{}.json?api-key={}".format(base, days_count, key) + + r = requests.get(url) + r.raise_for_status() + + return [Article(a) for a in r.json()["results"]] diff --git a/smlep_news/nytimes/article.py b/smlep_news/nytimes/article.py new file mode 100644 index 0000000..f8cc580 --- /dev/null +++ b/smlep_news/nytimes/article.py @@ -0,0 +1,9 @@ +class Article: + def __init__(self, article_json): + self.title = article_json["title"] + self.pub_date = article_json["published_date"] + self.url = article_json["url"] + self.abstract = article_json["abstract"] + + def __repr__(self): + return "NYT Article: {}".format(self.title)