haste-0.1: src/Haste/PasteProviders/Paste2.hs
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