implementation module IRC
+import StdList
import GenPrint
import StdOverloaded
import Data.Maybe
//INFO (Maybe String)
//INVITE String String
//ISON [String]
- JOIN chs = "JOIN " +++ either (const "0")
- (\c->join ", " [join " " [ch:maybeToList mkey]\\(ch, mkey)<-c]) chs
+ JOIN chs = "JOIN " +++ (if (isEmpty chs) "0"
+ (join ", " [join " " [ch:maybeToList mk]\\(ch, mk)<-chs]))
//KICK String String (Maybe String)
//KILL String String
//LINKS (Maybe (Maybe String, String))
//OPER String String
//PART [String]
//PASS String
- //PING [String]
- //PONG [String]
- PRIVMSG dest msg = join " " ["PRIVMSG", dest, msg]
+ PING a mb = join " " ["PING",a:maybeToList mb]
+ PONG a mb = join " " ["PONG",a:maybeToList mb]
+ PRIVMSG dest msg = join " " ["PRIVMSG", dest, ":"+++msg]
QUIT msg = join " " ["QUIT":maybeToList msg]
//REHASH
//RESTART
//TIME (Maybe String)
//TOPIC String (Maybe String)
//TRACE (Maybe String)
- USER login mode rn = join " " ["USER", login, toString mode, "*", ":", rn]
+ USER login mode rn = join " " ["USER", login, toString mode, "*", ":"+++rn]
//USERHOST [String]
//USERS (Maybe String)
//VERSION (Maybe String)