-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathnews.py
More file actions
45 lines (34 loc) · 1.26 KB
/
news.py
File metadata and controls
45 lines (34 loc) · 1.26 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import requests
class NewsFeed:
"""Representing multiple news titles and links as a single string
"""
base_url = "http://newsapi.org/v2/everything?"
api_key = "INSERT YOUR API KEY HERE"
def __init__(self, interest, from_date, to_date, language='en'):
self.interest = interest
self.from_date = from_date
self.to_date = to_date
self.language = language
def get(self):
url = self._build_url()
articles = self._get_articles(url)
email_body = ''
for article in articles:
email_body = email_body + article['title'] + "\n" + article['url'] + "\n\n"
return email_body
def _get_articles(self, url):
response = requests.get(url)
content = response.json()
articles = content['articles']
return articles
def _build_url(self):
url = f"{self.base_url}" \
f"qInTitle={self.interest}&" \
f"from={self.from_date}&" \
f"to={self.to_date}&" \
f"language={self.language}&" \
f"apiKey={self.api_key}"
return url
if __name__ == "__main__":
news_feed = NewsFeed(interest='nasa', from_date='2020-11-12', to_date='2020-11-13', language='en')
print(news_feed.get())