Python client for Hacker News API with cached API calls built in.
Project description
Hacker News Client 
The Hacker News Client is a Python-based tool designed to seamlessly engage with the official Hacker News Firebase API. This client incorporates a built-in request-cache mechanism for each API call, allowing for the efficient handling of complete data dumps without the need for redundant subsequent calls. This feature significantly optimizes your data wrangling processes, saving you time and resources.
Install 
pip install hnclient
Quick Start 
First step is to initialize HackerNewsClient prior to making an API request. By default, client requests are cached. To disable cache, set the disable_cache argument to True:
from hnclient import HackerNewsClient
client = HackerNewsClient()
To fetch stories from Hacker News, begin by using the getstories method.
-
:bulb: You can select specific story section by passing its name into the story argument. Here are few examples:
Top,Best,Ask,Show. -
:bulb: You can also set the sorting order for all stories by their Hacker News score with the
descendingargument. Default isFalse.
from hnclient import HackerNewsClient
client = HackerNewsClient()
data = client.get_stories("top", descending=False)
print(data)
The program above will print out a list of dictionaries where each dictionary holds the following metadata per story: :point_down:
{'author': 'tristanho',
'comments': 156,
'id': 34006202,
'score': 318,
'text': 'Hey HN, cofounder of Readwise here. We've been working on this '
'cross-platform reader app for about 2 years, excited to finally...' ,
'time': 1671140643,
'title': 'Show HN: Readwise Reader, an all-in-one reading app',
'url': 'https://readwise.io/read'}
Data Wrangling 
- Collect a list of a specific metadata object. The available list of objects can be found in the printed dictionary above. For the example below, we are obtaining a list of all URLS pertaining to the Top stories:
from hnclient import HackerNewsClient
client = HackerNewsClient()
data = client.get_stories("top")
urls = client.get_item("url", data)
print(urls)
outputs:
['https://github.com/ifeelalright1970/ytmp',
'https://mimosa.so/',
'https://www.screen.studio/',
'https://www.pinetarpoker.com',
...]
- Select a random story from the client payload. For the example below, we are obtaiing a story pertaining from the Best stories.
from hnclient import HackerNewsClient
client = HackerNewsClient()
data = client.get_stories("best")
random = client.get_random_story(data)
print(random)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file hnclient-0.0.2.tar.gz.
File metadata
- Download URL: hnclient-0.0.2.tar.gz
- Upload date:
- Size: 8.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5d03bc212f85923f1bd533ed783033edf4429183052ae7d87664411225aa86f6
|
|
| MD5 |
7af8b9a1fec0d2587376711c7cc34176
|
|
| BLAKE2b-256 |
bffc984b9783a7ea1371f969c600d667e2ec2d518ce6acca8b09c61eb69dbc8b
|
File details
Details for the file hnclient-0.0.2-py3-none-any.whl.
File metadata
- Download URL: hnclient-0.0.2-py3-none-any.whl
- Upload date:
- Size: 9.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
feace38a5f376342d15d5f8845c2084cff5c9727d09c92bf490865c4cfb5c4e5
|
|
| MD5 |
2a2fe643a7f7c6e365dad011922ccc00
|
|
| BLAKE2b-256 |
611be7bad32ff4e9745614da58623af8f7530b2363d71a856f143173e537dd0a
|