X-Git-Url: https://git.martlubbers.net/?p=cloogle-irc.git;a=blobdiff_plain;f=IRC.icl;h=0fb408f961fb96fa6953e6b076f4bbb54426eb80;hp=4a9fa95184f2c36900003a06be7fddd17763069f;hb=d1b0f20fbd85d85cee19347e7deda5e3a9251906;hpb=80375cb5c33d2a86e2b5e2bd5b7d8025e8a74f1f diff --git a/IRC.icl b/IRC.icl index 4a9fa95..0fb408f 100644 --- a/IRC.icl +++ b/IRC.icl @@ -41,7 +41,7 @@ where , parseIRCMessage ":cherryh.freenode.net ISON a b c d e f :g h\r\n" , parseIRCMessage ":wilhelm.freenode.net 001 clooglebot :Welcome to the freenode Internet Relay Chat Network clooglebot\r\n" , parseIRCMessage "PING :orwell.freenode.net\r\n" - + , parseIRCMessage ":ChanServ!ChanServ@services. MODE #cloogle +o frobnicator\r\n" ] parseIRCMessage :: String -> Either [Error] IRCMessage @@ -82,7 +82,8 @@ where >>= \cs->pure (toString [c:cs]) parseHost :: Parser Char String - parseHost = jon "." <$> pSepBy parseName (pToken '.') + parseHost = jon "." <$> (pSepBy parseName (pToken '.')) + >>= \s->optional (pToken '.') >>= pure o maybe s (\p->s+++toString s) where parseName :: Parser Char String parseName = toString <$> pSome (pAlpha <|> pDigit <|> pOneOf ['-'])