funbot-0.1.0.0: src/FunBot/IrcHandlers.hs
{- This file is part of funbot.
-
- Written in 2015 by fr33domlover <fr33domlover@rel4tion.org>.
-
- ♡ Copying is an act of love. Please copy, reuse and share.
-
- The author(s) have dedicated all copyright and related and neighboring
- rights to this software to the public domain worldwide. This software is
- distributed without any warranty.
-
- You should have received a copy of the CC0 Public Domain Dedication along
- with this software. If not, see
- <http://creativecommons.org/publicdomain/zero/1.0/>.
-}
module FunBot.IrcHandlers
( handleBotMsg
, handleJoin
--, handlePart
--, handleQuit
--, handleNames
)
where
import Data.Char (toLower)
import FunBot.Memos (reportMemos)
import Network.IRC.Fun.Bot.Chat (sendToChannel)
helloWords :: [String]
helloWords = ["hello", "hi", "hey", "yo"]
waveWordsL :: [String]
waveWordsL = ["\\o", "\\O", "\\0"]
waveWordsR :: [String]
waveWordsR = ["o/", "O/", "0/"]
isHello :: String -> Bool
isHello s =
let s' = map toLower s
in null s
|| s' `elem` helloWords
|| init s' `elem` helloWords && last s' `elem` ".!?"
handleBotMsg chan nick msg
| isHello msg = sendToChannel chan $ "Hello, " ++ nick
| map toLower msg == "ping" = sendToChannel chan $ nick ++ ", pong"
| msg `elem` waveWordsL = sendToChannel chan $ nick ++ ": o/"
| msg `elem` waveWordsR = sendToChannel chan $ nick ++ ": \\o"
| otherwise = return ()
handleJoin _chan nick = reportMemos nick
--handlePart chan nick _why = removeMemberOnce chan nick
--handleQuit nick _why = removeMember nick
--handleNames chan _priv pnicks = addChannel chan $ map snd pnicks