You're Invited:Meet the Socket Team at BlackHat and DEF CON in Las Vegas, Aug 4-6.RSVP
Socket
Book a DemoInstallSign in
Socket

hacker-news

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

hacker-news

Scrapes Hacker News and exposes its API endpoints in a Node Module.

0.0.1
latest
npmnpm
Version published
Weekly downloads
0
-100%
Maintainers
1
Weekly downloads
 
Created
Source

#HackerNews.js

HackerNews.js scrapes Hacker News (or how its HTML was rendered on 5/6/13) for data and exposes it in a Node.js module. This tries to be API compatible with the iHackerNews API, except for two cases: we do not return cachedOnUTC, and the newComments and commentThreads endpoint.

If there's enough demand, I'll add the cachedOnUTC thing, although I'll expose it in the

This module is exposed in a REST API in another Node.js module which is yet to be written. Expect it soon.

#Usage

npm install hacker-news

Insert it into your app using:

var hackernews = require('hacker-news')

Use it!

var frontPage = hackernews.news(callback)	

##Warning

Hacker News will block your IP if you query their server too much. I'm not quite sure their rate limits (and will update this as I find out), but it may be ~30 seconds. Most pages seem to be regenerated once in a while, anyways, so it shouldn't be a big deal.

#API Endpoints

###news

Parameters: [nextid, callback]

Lists the front page news articles in the format:

{
	nextId: 'id for next page of links'
	items: [{
		title: 'HackerNews.js',
		url: 'URL of article or item?id=selfpostid',
		postedBy: 'EdJiang',
		postedAgo: '1 day ago',
		points: 123,
		id: 1234567,
		commentCount: 32
		}...]
}

###byUsername

Parameters: username, [nextid, callback]

Lists a user's submitted articles in the format:

{
	nextId: 'id for next page of links'
	items: [{
		title: 'HackerNews.js',
		url: 'URL of article or item?id=selfpostid',
		postedBy: 'EdJiang',
		postedAgo: '1 day ago',
		points: 123,
		id: 1234567,
		commentCount: 32
		}...]
}

###new

Parameters: [nextid, callback]

Lists newly submited articles articles in the format:

{
	nextId: 'id for next page of links'
	items: [{
		title: 'HackerNews.js',
		url: 'URL of article or item?id=selfpostid',
		postedBy: 'EdJiang',
		postedAgo: '1 day ago',
		points: 123,
		id: 1234567,
		commentCount: 32
		}...]
}

###newComments

Parameters: [nextid, callback]

Endpoint differs from the iHackerNews API by adding a object wrapper with nextId info

Lists newly submitted comments in the format:

{
	nextId: 'id for next page of links'
	items: [{
		comment: 'This is awesome!',
		id: 1234567,
		parentID: 1234567,
		points: 0, //Note: HN doesn't show comment score, so this is always zero
		postedAgo: '2 hours ago',
		postedBy: 'pg', 
		postId: 12345678
		}...]
}

###ask

Parameters: [nextid, callback]

Lists the Ask HN articles in the format:

{
	nextId: 'id for next page of links'
	items: [{
		title: 'HackerNews.js'
		url: 'URL of article or item?id=selfpostid'
		postedBy: 'EdJiang'
		postedAgo: '1 day ago'
		points: 123
		id: 1234567
		commentCount: 32
		}...]
}

###post

Parameters: postId, [callback]

Lists information about a post in the format:

{
	title: 'HackerNews.js'
	url: 'URL of article or item?id=selfpostid'
	postedBy: 'EdJiang'
	postedAgo: '1 day ago'
	points: 123
	id: 1234567
	commentCount: 32
	text: 'This is only used for Ask HN or other self posts, otherwise will be an empty string!'
	comments: [{
		children: [...] 
		comment: 'This is awesome!',
		id: 1234567,
		parentID: 1234567,
		points: 0, //Note: HN doesn't show comment score, so this is always zero
		postedAgo: '2 hours ago',
		postedBy: 'pg', 
		postId: 12345678
	}...]
}

###threads

Parameters: userId, [callback]

Lists a user's comments and replies in a threaded format:

{
	nextId: 'id for next page of links'
	comments: [{
		children: [...] 
		comment: 'This is awesome!',
		id: 1234567,
		parentID: 1234567,
		points: 0, //Note: HN doesn't show comment score, so this is always zero
		postedAgo: '2 hours ago',
		postedBy: 'pg', 
		postId: 12345678
	}...]
}

###Profile

Parameters: userId, [callback]

Lists a user's profile information:

{
	about: 'I am Edward',
	createdAgo:'2 years ago',
	karma: '9001',
	username: 'EdJiang'
}

FAQs

Package last updated on 07 May 2013

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts