Socket
Socket
Sign inDemoInstall

hacker-news

Package Overview
Dependencies
134
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

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.


Version published
Weekly downloads
2
Maintainers
1
Install size
10.0 MB
Created
Weekly downloads
 

Readme

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

Last updated on 07 May 2013

Did you know?

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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc