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 +2/−3
- src/Pinboard/Api.hs +4/−2
- src/Pinboard/ApiRequest.hs +3/−2
- src/Pinboard/ApiTypes.hs +5/−5
- src/Pinboard/Client.hs +4/−2
- src/Pinboard/Client/Error.hs +4/−2
- src/Pinboard/Client/Util.hs +3/−1
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 ------------------------------------------------------------------------------