packages feed

pinboard 0.6 → 0.6.1

raw patch · 7 files changed

+25/−17 lines, 7 filesdep −old-localedep ~timePVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependencies removed: old-locale

Dependency ranges changed: time

API changes (from Hackage documentation)

- Pinboard.ApiTypes: Note :: Text -> Text -> Text -> Text -> Int -> UTCTime -> UTCTime -> Note
- Pinboard.ApiTypes: NoteList :: Int -> [NoteListItem] -> NoteList
- Pinboard.ApiTypes: NoteListItem :: Text -> Text -> Text -> Int -> UTCTime -> UTCTime -> NoteListItem
- Pinboard.ApiTypes: Popular :: [Text] -> Suggested
- Pinboard.ApiTypes: Post :: Text -> Text -> Text -> Text -> Text -> UTCTime -> Bool -> Bool -> [Tag] -> Post
- Pinboard.ApiTypes: PostDates :: Text -> Text -> [DateCount] -> PostDates
- Pinboard.ApiTypes: Posts :: UTCTime -> Text -> [Post] -> Posts
- Pinboard.ApiTypes: Recommended :: [Text] -> Suggested
- Pinboard.ApiTypes: ToDoneResult :: () -> DoneResult
- Pinboard.ApiTypes: ToJsonTagMap :: TagMap -> JsonTagMap
- Pinboard.ApiTypes: ToTextResult :: Text -> TextResult
- Pinboard.ApiTypes: ToUpdateTime :: UTCTime -> UpdateTime
- Pinboard.ApiTypes: fromDoneResult :: DoneResult -> ()
- Pinboard.ApiTypes: fromJsonTagMap :: JsonTagMap -> TagMap
- Pinboard.ApiTypes: fromTextResult :: TextResult -> Text
- Pinboard.ApiTypes: fromUpdateTime :: UpdateTime -> UTCTime
- Pinboard.ApiTypes: instance Typeable DoneResult
- Pinboard.ApiTypes: instance Typeable JsonTagMap
- Pinboard.ApiTypes: instance Typeable Note
- Pinboard.ApiTypes: instance Typeable NoteList
- Pinboard.ApiTypes: instance Typeable NoteListItem
- Pinboard.ApiTypes: instance Typeable Post
- Pinboard.ApiTypes: instance Typeable PostDates
- Pinboard.ApiTypes: instance Typeable Posts
- Pinboard.ApiTypes: instance Typeable Suggested
- Pinboard.ApiTypes: instance Typeable TextResult
- Pinboard.ApiTypes: instance Typeable UpdateTime
- Pinboard.ApiTypes: noteCreatedAt :: Note -> UTCTime
- Pinboard.ApiTypes: noteHash :: Note -> Text
- Pinboard.ApiTypes: noteId :: Note -> Text
- Pinboard.ApiTypes: noteLength :: Note -> Int
- Pinboard.ApiTypes: noteListCount :: NoteList -> Int
- Pinboard.ApiTypes: noteListItemCreatedAt :: NoteListItem -> UTCTime
- Pinboard.ApiTypes: noteListItemHash :: NoteListItem -> Text
- Pinboard.ApiTypes: noteListItemId :: NoteListItem -> Text
- Pinboard.ApiTypes: noteListItemLength :: NoteListItem -> Int
- Pinboard.ApiTypes: noteListItemTitle :: NoteListItem -> Text
- Pinboard.ApiTypes: noteListItemUpdatedAt :: NoteListItem -> UTCTime
- Pinboard.ApiTypes: noteListItems :: NoteList -> [NoteListItem]
- Pinboard.ApiTypes: noteText :: Note -> Text
- Pinboard.ApiTypes: noteTitle :: Note -> Text
- Pinboard.ApiTypes: noteUpdatedAt :: Note -> UTCTime
- Pinboard.ApiTypes: postDatesCount :: PostDates -> [DateCount]
- Pinboard.ApiTypes: postDatesTag :: PostDates -> Text
- Pinboard.ApiTypes: postDatesUser :: PostDates -> Text
- Pinboard.ApiTypes: postDescription :: Post -> Text
- Pinboard.ApiTypes: postExtended :: Post -> Text
- Pinboard.ApiTypes: postHash :: Post -> Text
- Pinboard.ApiTypes: postHref :: Post -> Text
- Pinboard.ApiTypes: postMeta :: Post -> Text
- Pinboard.ApiTypes: postShared :: Post -> Bool
- Pinboard.ApiTypes: postTags :: Post -> [Tag]
- Pinboard.ApiTypes: postTime :: Post -> UTCTime
- Pinboard.ApiTypes: postToread :: Post -> Bool
- Pinboard.ApiTypes: postsDate :: Posts -> UTCTime
- Pinboard.ApiTypes: postsPosts :: Posts -> [Post]
- Pinboard.ApiTypes: postsUser :: Posts -> Text
- Pinboard.Client: PinboardConfig :: ByteString -> Bool -> PinboardConfig
- Pinboard.Client: apiToken :: PinboardConfig -> ByteString
- Pinboard.Client: debug :: PinboardConfig -> Bool
- Pinboard.Client.Error: BadRequest :: PinboardErrorHTTPCode
- Pinboard.Client.Error: ConnectionFailure :: PinboardErrorType
- Pinboard.Client.Error: Forbidden :: PinboardErrorHTTPCode
- Pinboard.Client.Error: HttpStatusFailure :: PinboardErrorType
- Pinboard.Client.Error: NotFound :: PinboardErrorHTTPCode
- Pinboard.Client.Error: ParseFailure :: PinboardErrorType
- Pinboard.Client.Error: PinboardError :: PinboardErrorType -> Text -> Maybe PinboardErrorCode -> Maybe Text -> Maybe PinboardErrorHTTPCode -> PinboardError
- Pinboard.Client.Error: PinboardServerError :: PinboardErrorHTTPCode
- Pinboard.Client.Error: RequestFailed :: PinboardErrorHTTPCode
- Pinboard.Client.Error: TooManyRequests :: PinboardErrorHTTPCode
- Pinboard.Client.Error: UnAuthorized :: PinboardErrorHTTPCode
- Pinboard.Client.Error: UnknownError :: PinboardErrorCode
- Pinboard.Client.Error: UnknownErrorType :: PinboardErrorType
- Pinboard.Client.Error: UnknownHTTPCode :: PinboardErrorHTTPCode
- Pinboard.Client.Error: errorCode :: PinboardError -> Maybe PinboardErrorCode
- Pinboard.Client.Error: errorHTTP :: PinboardError -> Maybe PinboardErrorHTTPCode
- Pinboard.Client.Error: errorMsg :: PinboardError -> Text
- Pinboard.Client.Error: errorParam :: PinboardError -> Maybe Text
- Pinboard.Client.Error: errorType :: PinboardError -> PinboardErrorType
- Pinboard.Client.Types: Count :: Int -> Param
- Pinboard.Client.Types: Date :: Day -> Param
- Pinboard.Client.Types: DateTime :: UTCTime -> Param
- Pinboard.Client.Types: Description :: Text -> Param
- Pinboard.Client.Types: Extended :: Text -> Param
- Pinboard.Client.Types: Format :: ResultFormatType -> Param
- Pinboard.Client.Types: FormatJson :: ResultFormatType
- Pinboard.Client.Types: FormatXml :: ResultFormatType
- Pinboard.Client.Types: FromDateTime :: UTCTime -> Param
- Pinboard.Client.Types: Meta :: Int -> Param
- Pinboard.Client.Types: New :: Text -> Param
- Pinboard.Client.Types: Old :: Text -> Param
- Pinboard.Client.Types: PinboardConfig :: ByteString -> Bool -> PinboardConfig
- Pinboard.Client.Types: PinboardRequest :: Text -> [Param] -> PinboardRequest
- Pinboard.Client.Types: Replace :: Bool -> Param
- Pinboard.Client.Types: Results :: Int -> Param
- Pinboard.Client.Types: Shared :: Bool -> Param
- Pinboard.Client.Types: Start :: Int -> Param
- Pinboard.Client.Types: Tag :: Text -> Param
- Pinboard.Client.Types: Tags :: Text -> Param
- Pinboard.Client.Types: ToDateTime :: UTCTime -> Param
- Pinboard.Client.Types: ToRead :: Bool -> Param
- Pinboard.Client.Types: Url :: Text -> Param
- Pinboard.Client.Types: apiToken :: PinboardConfig -> ByteString
- Pinboard.Client.Types: debug :: PinboardConfig -> Bool
- Pinboard.Client.Types: requestParams :: PinboardRequest -> [Param]
- Pinboard.Client.Types: requestPath :: PinboardRequest -> Text
+ Pinboard.ApiTypes: [NoteListItem] :: Text -> Text -> Text -> Int -> UTCTime -> UTCTime -> NoteListItem
+ Pinboard.ApiTypes: [NoteList] :: Int -> [NoteListItem] -> NoteList
+ Pinboard.ApiTypes: [Note] :: Text -> Text -> Text -> Text -> Int -> UTCTime -> UTCTime -> Note
+ Pinboard.ApiTypes: [Popular] :: [Text] -> Suggested
+ Pinboard.ApiTypes: [PostDates] :: Text -> Text -> [DateCount] -> PostDates
+ Pinboard.ApiTypes: [Post] :: Text -> Text -> Text -> Text -> Text -> UTCTime -> Bool -> Bool -> [Tag] -> Post
+ Pinboard.ApiTypes: [Posts] :: UTCTime -> Text -> [Post] -> Posts
+ Pinboard.ApiTypes: [Recommended] :: [Text] -> Suggested
+ Pinboard.ApiTypes: [ToDoneResult] :: () -> DoneResult
+ Pinboard.ApiTypes: [ToJsonTagMap] :: TagMap -> JsonTagMap
+ Pinboard.ApiTypes: [ToTextResult] :: Text -> TextResult
+ Pinboard.ApiTypes: [ToUpdateTime] :: UTCTime -> UpdateTime
+ Pinboard.ApiTypes: [fromDoneResult] :: DoneResult -> ()
+ Pinboard.ApiTypes: [fromJsonTagMap] :: JsonTagMap -> TagMap
+ Pinboard.ApiTypes: [fromTextResult] :: TextResult -> Text
+ Pinboard.ApiTypes: [fromUpdateTime] :: UpdateTime -> UTCTime
+ Pinboard.ApiTypes: [noteCreatedAt] :: Note -> UTCTime
+ Pinboard.ApiTypes: [noteHash] :: Note -> Text
+ Pinboard.ApiTypes: [noteId] :: Note -> Text
+ Pinboard.ApiTypes: [noteLength] :: Note -> Int
+ Pinboard.ApiTypes: [noteListCount] :: NoteList -> Int
+ Pinboard.ApiTypes: [noteListItemCreatedAt] :: NoteListItem -> UTCTime
+ Pinboard.ApiTypes: [noteListItemHash] :: NoteListItem -> Text
+ Pinboard.ApiTypes: [noteListItemId] :: NoteListItem -> Text
+ Pinboard.ApiTypes: [noteListItemLength] :: NoteListItem -> Int
+ Pinboard.ApiTypes: [noteListItemTitle] :: NoteListItem -> Text
+ Pinboard.ApiTypes: [noteListItemUpdatedAt] :: NoteListItem -> UTCTime
+ Pinboard.ApiTypes: [noteListItems] :: NoteList -> [NoteListItem]
+ Pinboard.ApiTypes: [noteText] :: Note -> Text
+ Pinboard.ApiTypes: [noteTitle] :: Note -> Text
+ Pinboard.ApiTypes: [noteUpdatedAt] :: Note -> UTCTime
+ Pinboard.ApiTypes: [postDatesCount] :: PostDates -> [DateCount]
+ Pinboard.ApiTypes: [postDatesTag] :: PostDates -> Text
+ Pinboard.ApiTypes: [postDatesUser] :: PostDates -> Text
+ Pinboard.ApiTypes: [postDescription] :: Post -> Text
+ Pinboard.ApiTypes: [postExtended] :: Post -> Text
+ Pinboard.ApiTypes: [postHash] :: Post -> Text
+ Pinboard.ApiTypes: [postHref] :: Post -> Text
+ Pinboard.ApiTypes: [postMeta] :: Post -> Text
+ Pinboard.ApiTypes: [postShared] :: Post -> Bool
+ Pinboard.ApiTypes: [postTags] :: Post -> [Tag]
+ Pinboard.ApiTypes: [postTime] :: Post -> UTCTime
+ Pinboard.ApiTypes: [postToread] :: Post -> Bool
+ Pinboard.ApiTypes: [postsDate] :: Posts -> UTCTime
+ Pinboard.ApiTypes: [postsPosts] :: Posts -> [Post]
+ Pinboard.ApiTypes: [postsUser] :: Posts -> Text
+ Pinboard.Client: [PinboardConfig] :: ByteString -> Bool -> PinboardConfig
+ Pinboard.Client: [apiToken] :: PinboardConfig -> ByteString
+ Pinboard.Client: [debug] :: PinboardConfig -> Bool
+ Pinboard.Client.Error: [BadRequest] :: PinboardErrorHTTPCode
+ Pinboard.Client.Error: [ConnectionFailure] :: PinboardErrorType
+ Pinboard.Client.Error: [Forbidden] :: PinboardErrorHTTPCode
+ Pinboard.Client.Error: [HttpStatusFailure] :: PinboardErrorType
+ Pinboard.Client.Error: [NotFound] :: PinboardErrorHTTPCode
+ Pinboard.Client.Error: [ParseFailure] :: PinboardErrorType
+ Pinboard.Client.Error: [PinboardError] :: PinboardErrorType -> Text -> Maybe PinboardErrorCode -> Maybe Text -> Maybe PinboardErrorHTTPCode -> PinboardError
+ Pinboard.Client.Error: [PinboardServerError] :: PinboardErrorHTTPCode
+ Pinboard.Client.Error: [RequestFailed] :: PinboardErrorHTTPCode
+ Pinboard.Client.Error: [TooManyRequests] :: PinboardErrorHTTPCode
+ Pinboard.Client.Error: [UnAuthorized] :: PinboardErrorHTTPCode
+ Pinboard.Client.Error: [UnknownErrorType] :: PinboardErrorType
+ Pinboard.Client.Error: [UnknownError] :: PinboardErrorCode
+ Pinboard.Client.Error: [UnknownHTTPCode] :: PinboardErrorHTTPCode
+ Pinboard.Client.Error: [errorCode] :: PinboardError -> Maybe PinboardErrorCode
+ Pinboard.Client.Error: [errorHTTP] :: PinboardError -> Maybe PinboardErrorHTTPCode
+ Pinboard.Client.Error: [errorMsg] :: PinboardError -> Text
+ Pinboard.Client.Error: [errorParam] :: PinboardError -> Maybe Text
+ Pinboard.Client.Error: [errorType] :: PinboardError -> PinboardErrorType
+ Pinboard.Client.Types: [Count] :: Int -> Param
+ Pinboard.Client.Types: [DateTime] :: UTCTime -> Param
+ Pinboard.Client.Types: [Date] :: Day -> Param
+ Pinboard.Client.Types: [Description] :: Text -> Param
+ Pinboard.Client.Types: [Extended] :: Text -> Param
+ Pinboard.Client.Types: [FormatJson] :: ResultFormatType
+ Pinboard.Client.Types: [FormatXml] :: ResultFormatType
+ Pinboard.Client.Types: [Format] :: ResultFormatType -> Param
+ Pinboard.Client.Types: [FromDateTime] :: UTCTime -> Param
+ Pinboard.Client.Types: [Meta] :: Int -> Param
+ Pinboard.Client.Types: [New] :: Text -> Param
+ Pinboard.Client.Types: [Old] :: Text -> Param
+ Pinboard.Client.Types: [PinboardConfig] :: ByteString -> Bool -> PinboardConfig
+ Pinboard.Client.Types: [PinboardRequest] :: Text -> [Param] -> PinboardRequest
+ Pinboard.Client.Types: [Replace] :: Bool -> Param
+ Pinboard.Client.Types: [Results] :: Int -> Param
+ Pinboard.Client.Types: [Shared] :: Bool -> Param
+ Pinboard.Client.Types: [Start] :: Int -> Param
+ Pinboard.Client.Types: [Tag] :: Text -> Param
+ Pinboard.Client.Types: [Tags] :: Text -> Param
+ Pinboard.Client.Types: [ToDateTime] :: UTCTime -> Param
+ Pinboard.Client.Types: [ToRead] :: Bool -> Param
+ Pinboard.Client.Types: [Url] :: Text -> Param
+ Pinboard.Client.Types: [apiToken] :: PinboardConfig -> ByteString
+ Pinboard.Client.Types: [debug] :: PinboardConfig -> Bool
+ Pinboard.Client.Types: [requestParams] :: PinboardRequest -> [Param]
+ Pinboard.Client.Types: [requestPath] :: PinboardRequest -> Text

Files

pinboard.cabal view
@@ -1,5 +1,5 @@ name:                pinboard-version:             0.6+version:             0.6.1 synopsis:            Access to the Pinboard API license:             MIT license-file:        LICENSE@@ -43,10 +43,9 @@                      , io-streams                      , mtl >= 2.1.3.1                      , network-                     , old-locale                      , random >= 1.1                      , text-                     , time+                     , time >= 1.5                      , transformers                      , unordered-containers               
src/Pinboard/Api.hs view
@@ -37,13 +37,15 @@  import Pinboard.Client          (pinboardJson) import Pinboard.Client.Types    (Pinboard)-import Control.Applicative      ((<$>)) import Data.Text                (Text) import Data.Time                (UTCTime) import Pinboard.Client.Types    (ResultFormatType (..)) import Pinboard.ApiTypes         import Pinboard.ApiRequest-                                            ++import Control.Applicative+import Prelude                                            + -- POSTS ---------------------------------------------------------------------  -- | posts/recent : Returns a list of the user's most recent posts, filtered by tag.
src/Pinboard/ApiRequest.hs view
@@ -35,14 +35,15 @@       getNoteRequest,     ) where -import Prelude hiding (unwords) import Pinboard.Client.Types    (PinboardRequest (..), Param (..)) import Pinboard.Client.Util     ((</>))-import Control.Applicative      ((<$>)) import Data.Text                (unwords) import Data.Maybe               (catMaybes) import Pinboard.ApiTypes         import Pinboard.Client.Types    (ResultFormatType (..))++import Control.Applicative+import Prelude hiding (unwords)                                               -- POSTS ---------------------------------------------------------------------
src/Pinboard/ApiTypes.hs view
@@ -10,8 +10,6 @@ -- Portability : POSIX module Pinboard.ApiTypes where -import Prelude hiding      (words)-import Control.Applicative ((<$>), (<*>), (<|>)) import Data.Aeson          (FromJSON (parseJSON), Value (String, Object), ( .:)) import Data.Aeson.Types    (Parser) import Data.HashMap.Strict (HashMap, member, toList)@@ -19,10 +17,12 @@ import Data.Text           (Text, words, unpack) import Data.Time           (UTCTime) import Data.Time.Calendar  (Day)-import Data.Time.Format    (readTime)-import System.Locale       (defaultTimeLocale)+import Data.Time.Format    (parseTimeOrError, defaultTimeLocale) import qualified Data.HashMap.Strict as HM +import Control.Applicative +import Prelude hiding      (words)+ -- * Posts  data Posts = Posts {@@ -145,7 +145,7 @@    parseJSON _ = error "bad parse"  readNoteTime :: String -> UTCTime-readNoteTime = readTime defaultTimeLocale "%F %T"+readNoteTime = parseTimeOrError True defaultTimeLocale "%F %T"   -- * Tags
src/Pinboard/Client.hs view
@@ -49,7 +49,6 @@     ) where  -import Control.Applicative        ((<$>)) import Control.Exception          (catch, SomeException, try, bracket) import Control.Monad.IO.Class     (MonadIO (liftIO)) import Control.Monad.Reader       (ask, runReaderT)@@ -76,7 +75,10 @@ import qualified Data.Text                   as T import qualified Data.Text.Encoding          as T +import Control.Applicative+import Prelude + -- | Create a default PinboardConfig using the supplied apiToken fromApiToken :: String -> PinboardConfig fromApiToken token = PinboardConfig { debug = False, apiToken = pack token }@@ -158,7 +160,7 @@ buildReq url = buildRequest $ do   http GET ("/v1/" <> url)   setHeader "Connection" "Keep-Alive"  -  setHeader "User-Agent" "pinboard.hs/0.6"  +  setHeader "User-Agent" "pinboard.hs/0.6.1"    -------------------------------------------------------------------------------- 
src/Pinboard/Client/Error.hs view
@@ -13,8 +13,10 @@     , PinboardError         (..)     ) where -import           Data.Text           (Text)-import Data.Monoid(mempty)+import Data.Text (Text)++import Data.Monoid+import Prelude  ------------------------------------------------------------------------------ data PinboardErrorHTTPCode = 
src/Pinboard/Client/Util.hs view
@@ -19,13 +19,15 @@     , ensureResultFormatType     ) where -import           Data.Monoid           (Monoid, mconcat, mempty, (<>)) import           Data.String           (IsString) import           Data.Text             (Text) import qualified Data.Text             as T import qualified Data.Text.Encoding    as T import           Pinboard.Client.Types (PinboardRequest (..), PinboardConfig (..), ResultFormatType (..), Param (..), ParamsBS) import Network.HTTP.Types(urlEncode)++import Data.Monoid+import Prelude  ------------------------------------------------------------------------------