module Haste.PasteProviders.Paste2 ( Paste2 (Paste2) ) where import Data.Maybe (fromMaybe) import qualified Data.Char as C import Haste.Post import Haste.Types import Haste.Monad data Paste2 = Paste2 deriving Show defaultLang = "text" langaugeKey :: Language -> String langaugeKey = map C.toLower . show instance PasteProvider Paste2 where paste _ text = do lang <- asks envLanguage resp <- post "http://paste2.org/new-paste" [ "code" :=> text , "lang" :=> langaugeKey lang , "parent" :=> "0" , "description" :=> "" ] return $ case lookup "Location" (headers resp) of Nothing -> error . statusLine $ resp Just loc -> "http://paste2.org" ++ tail loc