Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
This repository was archived by the owner on Dec 14, 2024. It is now read-only.

dmjio/hackernews

Repository files navigation

hackernews

Hackage Hackage Dependencies Haskell Programming Language MIT License Build Status

Hacker News API for Haskell

Documentation

https://github.com/HackerNews/API

Now it supports GHCJS and can be used in the browser! Just install it using:

cabal install --ghcjs

Tests

cabal configure && cabal test
HackerNews API tests
 should round trip Updates JSON
 should round trip Item JSON
 should round trip User JSON
 should retrieve item
 should retrieve user
 should retrieve max item
 should retrieve top stories
 should retrieve new stories
 should retrieve best stories
 should retrieve ask stories
 should retrieve show stories
 should retrieve job stories
 should retrieve updates
 Finished in 1.2129 seconds
 13 examples, 0 failures

Usage

module Main where
import Network.HTTP.Client
import Network.HTTP.Client.TLS
import Web.HackerNews
main :: IO ()
main = do
 mgr <- newManager tlsManagerSettings
 print =<< getItem mgr (ItemId 1000)
 print =<< getUser mgr (UserId "dmjio")
 print =<< getMaxItem mgr
 print =<< getTopStories mgr
 print =<< getNewStories mgr
 print =<< getBestStories mgr
 print =<< getAskStories mgr
 print =<< getShowStories mgr
 print =<< getJobStories mgr
 print =<< getUpdates mgr
Right ( Item {
	 itemId = Just (ItemId 1000)
 , itemDeleted = Nothing
 , itemType = Story
 , itemBy = Just (UserName "python_kiss")
 , itemTime = Just (Time 1172394646)
 , itemText = Nothing
 , itemDead = Nothing
 , itemParent = Nothing
 , itemKids = Nothing
 , itemURL = Just (URL "http://www.netbusinessblog.com/2007/02/19/how-important-is-the-dot-com/")
 , itemScore = Just (Score 4)
 , itemTitle = Just (Title "How Important is the .com TLD?")
 , itemParts = Nothing
 , itemDescendants = Just (Descendants 0)
 })
Right (User {userId = UserId "dmjio"
		 , userDelay = Nothing
		 , userCreated = Created 1375807763
		 , userKarma = Karma 7
		 , userAbout = Nothing
		 , userSubmitted = Just (Submitted [11966297,9355613, ...])
		 })
Right (MaxItem 12695220)
Right (TopStories [12694004,12692190,12691597,...])
Right (NewStories [12695214,12695213,12695195,...])
Right (BestStories [12649414,12637126,12684980, ...])
Right (AskStories [12694706,12694401,12694038, ...])
Right (ShowStories [12694004,12692190,12695037, ...])
Right (JobStories [12693320,12691627,12690539,...])
Right (Updates { items = [12694916,12694478,12693674,..],
				 profiles = [UserName "stefano", UserName "chillydawg", ...]
			 })

AltStyle γ«γ‚ˆγ£γ¦ε€‰ζ›γ•γ‚ŒγŸγƒšγƒΌγ‚Έ (->γ‚ͺγƒͺγ‚ΈγƒŠγƒ«) /