packages feed

habit-0.2.1.2: examples/Hello.hs

{-# LANGUAGE OverloadedLists #-}
module Main where

import Data.Text (Text, pack)
import Data.Monoid ((<>))
import Web.Bot

type Name    = Text
type Surname = Text
type Age     = Int

hello :: Name -> Surname -> Age -> Message
hello name surname age =
    toMessage $ "Hello, " <> name <> " " <> surname <> "!\n"
             <> "You lost " <> (pack $ show age) <> " years =)"

helloStory :: Story a
helloStory _ = hello <$> question "How your name?"
                     <*> question "How your surname?"
                     <*> question "How old are you?"

helpMsg :: Text
helpMsg = "Hello, I'm hello bot!"

instance APIToken Telegram where
    apiToken = return "bot308165623:AAGeMyzyedc787LZSpzlhwTCWQcO5CAZpAo"

instance Persist Telegram where
    persist = return $ Sqlite "storage.db"

main :: IO ()
main = runBot myStory
  where
    myStory :: Bot Telegram ()
    myStory = storyBot helpMsg [("/hello", helloStory)]