Guest User

Untitled

a guest
Dec 1st, 2018
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import Text.Printf
  2. import Network
  3. import System.IO
  4.  
  5. main :: IO ()
  6. main = do
  7.     h <- connectTo "irc.rizon.net" (PortNumber 6667)
  8.     hSetBuffering h NoBuffering
  9.     hPrintf h $ ircUser "ugherman" "hew hew ultra"
  10.     hPrintf h $ ircNick "ugherman"
  11.     hPrintf h $ ircJoin "#channel147"
  12.     hPrintf h $ ircPrivmsg "#channel147" "Hey, nice ass"
  13.     hFlush h
  14.     botLoop h
  15.  
  16. botLoop :: Handle -> IO ()
  17. botLoop h = do
  18.     hGetChar h >>= putChar
  19.     botLoop h
  20.  
  21. ircCommand :: String -> [String] -> String
  22. ircCommand command arguments = command ++ " " ++ (ircArgList arguments) ++ "\r\n"
  23.     where
  24.         ircArgList :: [String] -> String
  25.         ircArgList (argHead:[]) = ":" ++ argHead
  26.         ircArgList (argHead:argTail) = argHead ++ " " ++ ircArgList argTail
  27.  
  28. ircPass :: String -> String
  29. ircPass password = ircCommand "PASS" [password]
  30.  
  31. ircUser :: String -> String -> String
  32. ircUser username realname = ircCommand "USER" [username,".",".",realname]
  33.  
  34. ircNick :: String -> String
  35. ircNick nickname = ircCommand "NICK" [nickname]
  36.  
  37. ircJoin :: String -> String
  38. ircJoin channel = ircCommand "JOIN" [channel]
  39.  
  40. ircPrivmsg :: String -> String -> String
  41. ircPrivmsg target message = ircCommand "PRIVMSG" [target,message]
Add Comment
Please, Sign In to add comment