packages feed

liblastfm 0.1.1.0 → 0.1.1.1

raw patch · 2 files changed

+91/−5 lines, 2 filesdep +HUnitdep +attoparsecdep +liblastfmdep ~aesondep ~basedep ~bytestringPVP ok

version bump matches the API change (PVP)

Dependencies added: HUnit, attoparsec, liblastfm, test-framework, test-framework-hunit

Dependency ranges changed: aeson, base, bytestring, http-conduit, network

API changes (from Hackage documentation)

Files

liblastfm.cabal view
@@ -1,5 +1,5 @@ name: liblastfm-version: 0.1.1.0+version: 0.1.1.1 synopsis: Lastfm API interface license: MIT license-file: LICENSE@@ -8,20 +8,20 @@ category: Network APIs description:   Provides interface to Lastfm REST API, supports XML and JSON formats.-cabal-version: >= 1.8+cabal-version: >= 1.9.2 build-type: Simple  library-  build-depends: base >= 4.6 && < 5,+  build-depends: base >= 3 && < 5,                  bytestring,                  containers >= 0.5,                  text,                  cereal,-                 http-conduit,+                 http-conduit >= 1.9,                  http-types,                  pureMD5,                  crypto-api,-                 network >= 2.4,+                 network,                  aeson   hs-source-dirs: src   exposed-modules: Network.Lastfm@@ -46,6 +46,24 @@   ghc-options: -Wall                -fno-warn-unused-do-bind                -funbox-strict-fields+++test-suite json+  build-depends: base >= 3 && < 5,+                 bytestring >= 0.9 && < 0.11,+                 attoparsec >= 0.10,+                 aeson == 0.6.*,+                 HUnit,+                 test-framework,+                 test-framework-hunit,+                 text,+                 liblastfm+  type: exitcode-stdio-1.0+  main-is: json.hs+  hs-source-dirs: tests+  ghc-options: -Wall+               -fno-warn-unused-do-bind+               -fno-warn-orphans   source-repository head
+ tests/json.hs view
@@ -0,0 +1,68 @@+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE UnicodeSyntax #-}+module Main where++import Control.Applicative+import Data.Monoid+import System.Exit (ExitCode(ExitFailure), exitWith)++import qualified Data.ByteString.Lazy as B+import           Data.Aeson+import           Data.Text (Text)+import           Network.Lastfm+import           Test.Framework++import qualified Album as Album+import qualified Artist as Artist+import qualified Chart as Chart+import qualified Event as Event+import qualified Geo as Geo+import qualified Group as Group+import qualified Library as Library+import qualified Playlist as Playlist+import qualified Tag as Tag+import qualified Tasteometer as Tasteometer+import qualified Track as Track+import qualified User as User+import qualified Venue as Venue+++main ∷ IO ()+main =+  do keys ← B.readFile "tests/lastfm-keys.json"+     case decode keys of+       Just (Keys ak sk s) →+         defaultMainWithOpts (auth <> noauth) (mempty { ropt_threads = Just 20 })+          where+           auth = mconcat . map (\f → f (apiKey ak) (sessionKey sk) (Secret s)) $+             [ Album.auth+             , Artist.auth+             , Event.auth+             , Library.auth+             , Playlist.auth+             , Track.auth+             , User.auth+             ]+           noauth = mconcat . map (\f → f (apiKey ak)) $+             [ Album.noauth+             , Artist.noauth+             , Chart.noauth+             , Event.noauth+             , Geo.noauth+             , Group.noauth+             , Library.noauth+             , Tag.noauth+             , Tasteometer.noauth+             , Track.noauth+             , User.noauth+             , Venue.noauth+             ]+       Nothing → exitWith (ExitFailure 1)+++data Keys = Keys Text Text Text+++instance FromJSON Keys where+  parseJSON (Object o) = Keys <$> (o .: "APIKey") <*> (o .: "SessionKey") <*> (o .: "Secret")+  parseJSON _ = empty