-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathhn_submissions.py
More file actions
33 lines (27 loc) · 1.15 KB
/
Copy pathhn_submissions.py
File metadata and controls
33 lines (27 loc) · 1.15 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
from operator import itemgetter
import requests
# make an api call and store the response
url = 'https://hacker-news.firebaseio.com/v0/topstories.json'
r = requests.get(url)
print(f"Status code: {r.status_code}")
# process the information of each submission
submission_ids = r.json()
submission_dicts = []
for submission_id in submission_ids[:30]:
# make a separate api call for each submission
url2 = f"https://hacker-news.firebaseio.com/v0/item/{submission_id}.json"
r2 = requests.get(url2)
print(f"id: {submission_id}\tstatus: {r.status_code}")
response_dict = r2.json()
# build a dictionary for each article
submission_dict = {
'title': response_dict['title'],
'hn_link': f"https://news.ycombinator.com/item?id={submission_id}",
'comments': response_dict["descendants"],
}
submission_dicts.append(submission_dict)
submission_dicts = sorted(submission_dicts, key=itemgetter('comments'), reverse=True)
for submission_dict in submission_dicts:
print(f"\nTitle: {submission_dict['title']}")
print(f"Discussion link: {submission_dict['hn_link']}")
print(f"Comments: {submission_dict['comments']}")