pinboard 0.9.3 → 0.9.4
raw patch · 5 files changed
+21/−13 lines, 5 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
+ Pinboard.ApiTypes: instance GHC.Generics.Constructor Pinboard.ApiTypes.C1_0DoneResult
+ Pinboard.ApiTypes: instance GHC.Generics.Constructor Pinboard.ApiTypes.C1_0JsonTagMap
+ Pinboard.ApiTypes: instance GHC.Generics.Constructor Pinboard.ApiTypes.C1_0Note
+ Pinboard.ApiTypes: instance GHC.Generics.Constructor Pinboard.ApiTypes.C1_0NoteList
+ Pinboard.ApiTypes: instance GHC.Generics.Constructor Pinboard.ApiTypes.C1_0NoteListItem
+ Pinboard.ApiTypes: instance GHC.Generics.Constructor Pinboard.ApiTypes.C1_0Post
+ Pinboard.ApiTypes: instance GHC.Generics.Constructor Pinboard.ApiTypes.C1_0PostDates
+ Pinboard.ApiTypes: instance GHC.Generics.Constructor Pinboard.ApiTypes.C1_0Posts
+ Pinboard.ApiTypes: instance GHC.Generics.Constructor Pinboard.ApiTypes.C1_0Suggested
+ Pinboard.ApiTypes: instance GHC.Generics.Constructor Pinboard.ApiTypes.C1_0TextResult
+ Pinboard.ApiTypes: instance GHC.Generics.Constructor Pinboard.ApiTypes.C1_0UpdateTime
+ Pinboard.ApiTypes: instance GHC.Generics.Constructor Pinboard.ApiTypes.C1_1Suggested
+ Pinboard.ApiTypes: instance GHC.Generics.Datatype Pinboard.ApiTypes.D1DoneResult
+ Pinboard.ApiTypes: instance GHC.Generics.Datatype Pinboard.ApiTypes.D1JsonTagMap
+ Pinboard.ApiTypes: instance GHC.Generics.Datatype Pinboard.ApiTypes.D1Note
+ Pinboard.ApiTypes: instance GHC.Generics.Datatype Pinboard.ApiTypes.D1NoteList
+ Pinboard.ApiTypes: instance GHC.Generics.Datatype Pinboard.ApiTypes.D1NoteListItem
+ Pinboard.ApiTypes: instance GHC.Generics.Datatype Pinboard.ApiTypes.D1Post
+ Pinboard.ApiTypes: instance GHC.Generics.Datatype Pinboard.ApiTypes.D1PostDates
+ Pinboard.ApiTypes: instance GHC.Generics.Datatype Pinboard.ApiTypes.D1Posts
+ Pinboard.ApiTypes: instance GHC.Generics.Datatype Pinboard.ApiTypes.D1Suggested
+ Pinboard.ApiTypes: instance GHC.Generics.Datatype Pinboard.ApiTypes.D1TextResult
+ Pinboard.ApiTypes: instance GHC.Generics.Datatype Pinboard.ApiTypes.D1UpdateTime
+ Pinboard.ApiTypes: instance GHC.Generics.Generic Pinboard.ApiTypes.DoneResult
+ Pinboard.ApiTypes: instance GHC.Generics.Generic Pinboard.ApiTypes.JsonTagMap
+ Pinboard.ApiTypes: instance GHC.Generics.Generic Pinboard.ApiTypes.Note
+ Pinboard.ApiTypes: instance GHC.Generics.Generic Pinboard.ApiTypes.NoteList
+ Pinboard.ApiTypes: instance GHC.Generics.Generic Pinboard.ApiTypes.NoteListItem
+ Pinboard.ApiTypes: instance GHC.Generics.Generic Pinboard.ApiTypes.Post
+ Pinboard.ApiTypes: instance GHC.Generics.Generic Pinboard.ApiTypes.PostDates
+ Pinboard.ApiTypes: instance GHC.Generics.Generic Pinboard.ApiTypes.Posts
+ Pinboard.ApiTypes: instance GHC.Generics.Generic Pinboard.ApiTypes.Suggested
+ Pinboard.ApiTypes: instance GHC.Generics.Generic Pinboard.ApiTypes.TextResult
+ Pinboard.ApiTypes: instance GHC.Generics.Generic Pinboard.ApiTypes.UpdateTime
+ Pinboard.ApiTypes: instance GHC.Generics.Selector Pinboard.ApiTypes.S1_0_0DoneResult
+ Pinboard.ApiTypes: instance GHC.Generics.Selector Pinboard.ApiTypes.S1_0_0JsonTagMap
+ Pinboard.ApiTypes: instance GHC.Generics.Selector Pinboard.ApiTypes.S1_0_0Note
+ Pinboard.ApiTypes: instance GHC.Generics.Selector Pinboard.ApiTypes.S1_0_0NoteList
+ Pinboard.ApiTypes: instance GHC.Generics.Selector Pinboard.ApiTypes.S1_0_0NoteListItem
+ Pinboard.ApiTypes: instance GHC.Generics.Selector Pinboard.ApiTypes.S1_0_0Post
+ Pinboard.ApiTypes: instance GHC.Generics.Selector Pinboard.ApiTypes.S1_0_0PostDates
+ Pinboard.ApiTypes: instance GHC.Generics.Selector Pinboard.ApiTypes.S1_0_0Posts
+ Pinboard.ApiTypes: instance GHC.Generics.Selector Pinboard.ApiTypes.S1_0_0TextResult
+ Pinboard.ApiTypes: instance GHC.Generics.Selector Pinboard.ApiTypes.S1_0_0UpdateTime
+ Pinboard.ApiTypes: instance GHC.Generics.Selector Pinboard.ApiTypes.S1_0_1Note
+ Pinboard.ApiTypes: instance GHC.Generics.Selector Pinboard.ApiTypes.S1_0_1NoteList
+ Pinboard.ApiTypes: instance GHC.Generics.Selector Pinboard.ApiTypes.S1_0_1NoteListItem
+ Pinboard.ApiTypes: instance GHC.Generics.Selector Pinboard.ApiTypes.S1_0_1Post
+ Pinboard.ApiTypes: instance GHC.Generics.Selector Pinboard.ApiTypes.S1_0_1PostDates
+ Pinboard.ApiTypes: instance GHC.Generics.Selector Pinboard.ApiTypes.S1_0_1Posts
+ Pinboard.ApiTypes: instance GHC.Generics.Selector Pinboard.ApiTypes.S1_0_2Note
+ Pinboard.ApiTypes: instance GHC.Generics.Selector Pinboard.ApiTypes.S1_0_2NoteListItem
+ Pinboard.ApiTypes: instance GHC.Generics.Selector Pinboard.ApiTypes.S1_0_2Post
+ Pinboard.ApiTypes: instance GHC.Generics.Selector Pinboard.ApiTypes.S1_0_2PostDates
+ Pinboard.ApiTypes: instance GHC.Generics.Selector Pinboard.ApiTypes.S1_0_2Posts
+ Pinboard.ApiTypes: instance GHC.Generics.Selector Pinboard.ApiTypes.S1_0_3Note
+ Pinboard.ApiTypes: instance GHC.Generics.Selector Pinboard.ApiTypes.S1_0_3NoteListItem
+ Pinboard.ApiTypes: instance GHC.Generics.Selector Pinboard.ApiTypes.S1_0_3Post
+ Pinboard.ApiTypes: instance GHC.Generics.Selector Pinboard.ApiTypes.S1_0_4Note
+ Pinboard.ApiTypes: instance GHC.Generics.Selector Pinboard.ApiTypes.S1_0_4NoteListItem
+ Pinboard.ApiTypes: instance GHC.Generics.Selector Pinboard.ApiTypes.S1_0_4Post
+ Pinboard.ApiTypes: instance GHC.Generics.Selector Pinboard.ApiTypes.S1_0_5Note
+ Pinboard.ApiTypes: instance GHC.Generics.Selector Pinboard.ApiTypes.S1_0_5NoteListItem
+ Pinboard.ApiTypes: instance GHC.Generics.Selector Pinboard.ApiTypes.S1_0_5Post
+ Pinboard.ApiTypes: instance GHC.Generics.Selector Pinboard.ApiTypes.S1_0_6Note
+ Pinboard.ApiTypes: instance GHC.Generics.Selector Pinboard.ApiTypes.S1_0_6Post
+ Pinboard.ApiTypes: instance GHC.Generics.Selector Pinboard.ApiTypes.S1_0_7Post
+ Pinboard.ApiTypes: instance GHC.Generics.Selector Pinboard.ApiTypes.S1_0_8Post
Files
- changelog.md +4/−0
- pinboard.cabal +1/−1
- src/Pinboard/ApiTypes.hs +13/−11
- src/Pinboard/ApiTypesLens.hs +2/−0
- src/Pinboard/Client.hs +1/−1
changelog.md view
@@ -1,3 +1,7 @@+__v0.9.4__++derive generic+ __v0.9.3__ Add lenses
pinboard.cabal view
@@ -1,5 +1,5 @@ name: pinboard-version: 0.9.3+version: 0.9.4 synopsis: Access to the Pinboard API license: MIT license-file: LICENSE
src/Pinboard/ApiTypes.hs view
@@ -1,4 +1,5 @@ {-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-}@@ -20,6 +21,7 @@ import Data.Text (Text, words, unwords, unpack, pack) import Data.Time (UTCTime) import Data.Time.Calendar (Day)+import GHC.Generics (Generic) import qualified Data.HashMap.Strict as HM import qualified Data.Vector as V@@ -41,7 +43,7 @@ postsDate :: !UTCTime , postsUser :: !Text , postsPosts :: [Post]- } deriving (Show, Eq, Data, Typeable, Ord)+ } deriving (Show, Eq, Data, Typeable, Generic, Ord) instance FromJSON Posts where parseJSON (Object o) =@@ -66,7 +68,7 @@ , postShared :: !Bool , postToRead :: !Bool , postTags :: [Tag]- } deriving (Show, Eq, Data, Typeable, Ord)+ } deriving (Show, Eq, Data, Typeable, Generic, Ord) instance FromJSON Post where parseJSON (Object o) =@@ -105,7 +107,7 @@ postDatesUser :: !Text , postDatesTag :: !Text , postDatesCount :: [(Day, Int)]- } deriving (Show, Eq, Data, Typeable, Ord)+ } deriving (Show, Eq, Data, Typeable, Generic, Ord) instance FromJSON PostDates where parseJSON (Object o) =@@ -135,7 +137,7 @@ data NoteList = NoteList { noteListCount :: !Int , noteListItems :: [NoteListItem]- } deriving (Show, Eq, Data, Typeable, Ord)+ } deriving (Show, Eq, Data, Typeable, Generic, Ord) instance FromJSON NoteList where parseJSON (Object o) =@@ -155,7 +157,7 @@ , noteListItemLength :: !Int , noteListItemCreatedAt :: !UTCTime , noteListItemUpdatedAt :: !UTCTime- } deriving (Show, Eq, Data, Typeable, Ord)+ } deriving (Show, Eq, Data, Typeable, Generic, Ord) instance FromJSON NoteListItem where parseJSON (Object o) =@@ -185,7 +187,7 @@ , noteLength :: !Int , noteCreatedAt :: !UTCTime , noteUpdatedAt :: !UTCTime- } deriving (Show, Eq, Data, Typeable, Ord)+ } deriving (Show, Eq, Data, Typeable, Generic, Ord) instance FromJSON Note where parseJSON (Object o) =@@ -225,7 +227,7 @@ type TagMap = HashMap Tag Int newtype JsonTagMap = ToJsonTagMap {fromJsonTagMap :: TagMap}- deriving (Show, Eq, Data, Typeable)+ deriving (Show, Eq, Data, Typeable, Generic) instance FromJSON JsonTagMap where parseJSON = return . toTags@@ -238,7 +240,7 @@ data Suggested = Popular [Text] | Recommended [Text]- deriving (Show, Eq, Data, Typeable, Ord)+ deriving (Show, Eq, Data, Typeable, Generic, Ord) instance FromJSON Suggested where parseJSON (Object o)@@ -258,7 +260,7 @@ -- * Scalars newtype DoneResult = ToDoneResult {fromDoneResult :: ()}- deriving (Show, Eq, Data, Typeable, Ord)+ deriving (Show, Eq, Data, Typeable, Generic, Ord) instance FromJSON DoneResult where parseJSON (Object o) = parseDone =<< (o .: "result" <|> o .: "result_code")@@ -269,14 +271,14 @@ parseJSON _ = error "bad parse" newtype TextResult = ToTextResult {fromTextResult :: Text}- deriving (Show, Eq, Data, Typeable, Ord)+ deriving (Show, Eq, Data, Typeable, Generic, Ord) instance FromJSON TextResult where parseJSON (Object o) = ToTextResult <$> (o .: "result") parseJSON _ = error "bad parse" newtype UpdateTime = ToUpdateTime {fromUpdateTime :: UTCTime}- deriving (Show, Eq, Data, Typeable, Ord)+ deriving (Show, Eq, Data, Typeable, Generic, Ord) instance FromJSON UpdateTime where parseJSON (Object o) = ToUpdateTime <$> (o .: "update_time")
src/Pinboard/ApiTypesLens.hs view
@@ -441,6 +441,7 @@ (Popular y1_acHt) -> Right y1_acHt _ -> Left x_acHs) (either pure (fmap Popular)) . right'+{-# INLINE popularP #-} recommendedP :: Prism_' Suggested [Text]@@ -449,4 +450,5 @@ (Recommended y1_acHw) -> Right y1_acHw _ -> Left x_acHv) (either pure (fmap Recommended)) . right' +{-# INLINE recommendedP #-}
src/Pinboard/Client.hs view
@@ -155,7 +155,7 @@ buildReq url = do req <- liftIO $ parseUrl $ "https://api.pinboard.in/v1/" <> url return $ req - { requestHeaders = [("User-Agent","pinboard.hs/0.9.3")]+ { requestHeaders = [("User-Agent","pinboard.hs/0.9.4")] , checkStatus = \_ _ _ -> Nothing }