pinboard 0.6.4 → 0.6.5
raw patch · 5 files changed
+77/−6 lines, 5 filesdep ~timePVP ok
version bump matches the API change (PVP)
Dependency ranges changed: time
API changes (from Hackage documentation)
Files
- CHANGELOG.md +0/−0
- README.md +56/−0
- pinboard.cabal +4/−2
- src/Pinboard/ApiTypes.hs +16/−3
- src/Pinboard/Client.hs +1/−1
+ CHANGELOG.md view
+ README.md view
@@ -0,0 +1,56 @@+# Pinboard [](https://hackage.haskell.org/package/pinboard)++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 page and Haddock documentation+<http://hackage.haskell.org/package/pinboard>++## Pinboard Api documentation++<https://pinboard.in/api/>++## Examples: ++### getPostsRecent+``` {.haskell}+{-# 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+```+## Modules++[Pinboard.Client](https://hackage.haskell.org/package/pinboard/docs/Pinboard-Client.html)++ Executes the methods defined in Pinboard.Api++[Pinboard.Api](https://hackage.haskell.org/package/pinboard/docs/Pinboard-Api.html)++ Provides Pinboard Api Methods++[Pinboard.ApiTypes](https://hackage.haskell.org/package/pinboard/docs/Pinboard-ApiTypes.html)++ Pinboard Data Structures returned by the Api++## Windows++This package relies on HsOpenSSL which requires a binary distribution of openssl++In order for this install to go smoothly one must install a binary distribution of openssl from here: ++ http://slproweb.com/products/Win32OpenSSL.html + +and link during the cabal install process like this (assuing default install directories):++ cabal install HsOpenSSL --extra-include-dirs="c:/OpenSSL-Win32/include" --extra-lib-dirs="c:/OpenSSL-Win32"+
pinboard.cabal view
@@ -1,5 +1,5 @@ name: pinboard-version: 0.6.4+version: 0.6.5 synopsis: Access to the Pinboard API license: MIT license-file: LICENSE@@ -30,6 +30,8 @@ > Right details -> print details > Left pinboardError -> print pinboardError .+Extra-Source-Files:+ README.md CHANGELOG.md library hs-source-dirs: src build-depends: base >=4.6 && < 5.0@@ -47,7 +49,7 @@ , old-locale , random >= 1.1 , text- , time < 1.5+ , time , transformers , unordered-containers , vector
src/Pinboard/ApiTypes.hs view
@@ -3,6 +3,7 @@ {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE ScopedTypeVariables #-}+{-# LANGUAGE CPP #-} -- | -- Module : Pinboard.ApiTypes@@ -19,13 +20,19 @@ import Data.Text (Text, words, unwords, unpack, pack) import Data.Time (UTCTime) import Data.Time.Calendar (Day)-import Data.Time.Format (readTime, formatTime)-import System.Locale (defaultTimeLocale)+ import Language.Haskell.Exts.Parser import Language.Haskell.Exts.Pretty import qualified Data.HashMap.Strict as HM import qualified Data.Vector as V +#if MIN_VERSION_time(1,5,0)+import Data.Time.Format (parseTimeOrError, formatTime, defaultTimeLocale)+#else+import Data.Time.Format (readTime, formatTime)+import System.Locale (defaultTimeLocale)+#endif+ import Control.Applicative import Prelude hiding (words, unwords) @@ -204,7 +211,13 @@ , "updated_at" .= toJSON (showNoteTime noteUpdatedAt) ] readNoteTime :: String -> UTCTime-readNoteTime = readTime defaultTimeLocale "%F %T"+readNoteTime = parse' defaultTimeLocale "%F %T"+ where+#if MIN_VERSION_time(1,5,0)+ parse' = parseTimeOrError True+#else+ parse' = readTime+#endif showNoteTime :: UTCTime -> String showNoteTime = formatTime defaultTimeLocale "%F %T"
src/Pinboard/Client.hs view
@@ -160,7 +160,7 @@ buildReq url = buildRequest $ do http GET ("/v1/" <> url) setHeader "Connection" "Keep-Alive" - setHeader "User-Agent" "pinboard.hs/0.6.4" + setHeader "User-Agent" "pinboard.hs/0.6.5" --------------------------------------------------------------------------------