You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Jon Schoning 13b9d85125 use hpack 5 vuotta sitten
gen use hpack 5 vuotta sitten
samples use hpack 5 vuotta sitten
src add runPinboardE 5 vuotta sitten
tests hfmt 5 vuotta sitten
.gitignore use hpack 5 vuotta sitten
.travis.yml add travis 6 vuotta sitten
LICENSE init 7 vuotta sitten
README.md fix readme 5 vuotta sitten
Setup.lhs init 7 vuotta sitten
changelog.md fix exports 5 vuotta sitten
package.yaml use hpack 5 vuotta sitten
stack-7.10.yaml catch pinboarderrors 5 vuotta sitten
stack-8.0.yaml add option to delay between requests (requestDelayMills) 5 vuotta sitten
stack.yaml 'refactor' 5 vuotta sitten

README.md

Pinboard Hackage Build Status

The Pinboard API is a way to interact programatically with your bookmarks, notes and other Pinboard data. This library wraps the API exposing functions and data structures suitable for usage in Haskell programs.

Hackage documentation

http://hackage.haskell.org/package/pinboard

Stackage documentation

https://www.stackage.org/package/pinboard

Pinboard Api documentation

https://pinboard.in/api/

Examples:

getPostsRecent

{-# LANGUAGE OverloadedStrings #-}

import Pinboard

main :: IO ()
main = do
  let config = fromApiToken "api token"
  result <- runPinboard config $ getPostsRecent Nothing Nothing
  case result of
    Right details -> print details
    Left pinboardError -> print pinboardError

output:

Posts{postsDate = 2015 - 10 - 24 16 : 17 : 12 UTC,
       postsUser = "jonschoning",
       postsPosts =
         [Post{postHref = "http://www.reddit.com/r/haskell/comments/25vj62/adventure_with_types_in_haskell_simon_peyton/",
               postDescription = "Adventure with Types in Haskell - Simon Peyton Jones [1:33:36] : haskell",
               postExtended = "", 
               postMeta = "3fe9fb05c7c37f7bb66be7b9d85599eb",
               postHash = "c46b717604ef8b126dabeba97b27a36f",
               postTime = 2014 - 5 - 19 3 : 35 : 55 UTC, 
               postShared = True,
               postToRead = False,
               postTags = ["spj", "video", "haskell", "typetheory"]}]}

getPostsRecent (using Lenses)

{-# LANGUAGE OverloadedStrings #-}

import Pinboard
import Control.Lens

main :: IO ()
main = do
  let config = fromApiToken "api token"
  result <- runPinboard config $ getPostsRecent (Just ["haskell"]) (Just 3)
  mapM_ print (result ^.. _Right . postsPostsL . traverse . postHrefL)

output:

"http://www.stephendiehl.com/posts/production.html"
"https://mail.haskell.org/mailman/listinfo"
"https://en.wikibooks.org/wiki/Haskell/Applicative_functors#A_sliding_scale_of_power"

Modules

Pinboard.Types

Pinboard typeclasses and type aliases

Pinboard.Client

Executes the methods defined in Pinboard.Api

Pinboard.Api

Provides Pinboard Api Methods

Pinboard.ApiTypes

Pinboard Data Structures returned by the Api

Pinboard.ApiTypesLens

Lens accessors for Pinboard.ApiTypes