haste-0.1: src/Haste/PasteProviders/HPaste.hs
module Haste.PasteProviders.HPaste
( HPaste (HPaste)
) where
import Data.Maybe (fromMaybe)
import qualified Data.Char as Char
import Haste.Post
import Haste.Types
import Haste.Monad
data HPaste = HPaste
deriving Show
defaultLang = "text"
langaugeKey :: Language -> String
langaugeKey = map Char.toLower . show
instance PasteProvider HPaste where
preferredLanguages _ = [Haskell]
paste _ text = do
lang <- asks envLanguage
resp <- post "http://hpaste.org/fastcgi/hpaste.fcgi/save" [ "title" :=> ""
, "author" :=> ""
, "content" :=> text
, "language" :=> langaugeKey lang
, "channel" :=> "none"
]
return $ case lookup "Location" (headers resp) of
Nothing -> error . statusLine $ resp
Just loc -> "http://hpaste.org" ++ tail loc