girc-atomic/codebook.go

229 lines
5.7 KiB
Go

package girc
/*
IRCNumToStr takes in a numeric IRC code and returns the relevant girc name.
IRCNumToStr accepts a string because that's how we tend to receive the codes.
*/
func IRCNumToStr(code string) string {
if _, ok := noTranslate[code]; ok {
return code
}
if result, ok := IRCCodes[code]; ok {
return result
}
return ""
}
var noTranslate = map[string]uint8{"JOIN":1, "INVITE":1, "NOTICE":1, "CAP":1, "MODE":1,"QUIT":1, "PRIVMSG":1}
// IRCCodes is just a map form of our constants for quick lookup purposes.
var IRCCodes = map[string]string {
"001":"RPL_WELCOME",
"002":"RPL_YOURHOST",
"003":"RPL_CREATED",
"004":"RPL_MYINFO",
"005":"RPL_ISUPPORT",
"302":"RPL_USERHOST",
"303":"RPL_ISON",
"301":"RPL_AWAY",
"305":"RPL_UNAWAY",
"306":"RPL_NOWAWAY",
"311":"RPL_WHOISUSER",
"312":"RPL_WHOISSERVER",
"313":"RPL_WHOISOPERATOR",
"317":"RPL_WHOISIDLE",
"318":"RPL_ENDOFWHOIS",
"319":"RPL_WHOISCHANNELS",
"314":"RPL_WHOWASUSER",
"369":"RPL_ENDOFWHOWAS",
"321":"RPL_LISTSTART",
"322":"RPL_LIST",
"323":"RPL_LISTEND",
"325":"RPL_UNIQOPIS",
"324":"RPL_CHANNELMODEIS",
"329":"RPL_CREATIONTIME",
"331":"RPL_NOTOPIC",
"332":"RPL_TOPIC",
"341":"RPL_INVITING",
"342":"RPL_SUMMONING",
"346":"RPL_INVITELIST",
"347":"RPL_ENDOFINVITELIST",
"348":"RPL_EXCEPTLIST",
"349":"RPL_ENDOFEXCEPTLIST",
"351":"RPL_VERSION",
"352":"RPL_WHOREPLY",
"315":"RPL_ENDOFWHO",
"353":"RPL_NAMREPLY",
"366":"RPL_ENDOFNAMES",
"364":"RPL_LINKS",
"365":"RPL_ENDOFLINKS",
"367":"RPL_BANLIST",
"368":"RPL_ENDOFBANLIST",
"371":"RPL_INFO",
"374":"RPL_ENDOFINFO",
"375":"RPL_MOTDSTART",
"372":"RPL_MOTD",
"376":"RPL_ENDOFMOTD",
"381":"RPL_YOUREOPER",
"382":"RPL_REHASHING",
"383":"RPL_YOURESERVICE",
"391":"RPL_TIME",
"392":"RPL_USERSSTART",
"393":"RPL_USERS",
"394":"RPL_ENDOFUSERS",
"395":"RPL_NOUSERS",
"200":"RPL_TRACELINK",
"201":"RPL_TRACECONNECTING",
"202":"RPL_TRACEHANDSHAKE",
"203":"RPL_TRACEUNKNOWN",
"204":"RPL_TRACEOPERATOR",
"205":"RPL_TRACEUSER",
"206":"RPL_TRACESERVER",
"207":"RPL_TRACESERVICE",
"208":"RPL_TRACENEWTYPE",
"209":"RPL_TRACECLASS",
"210":"RPL_TRACERECONNECT",
"261":"RPL_TRACELOG",
"262":"RPL_TRACEEND",
"211":"RPL_STATSLINKINFO",
"212":"RPL_STATSCOMMANDS",
"219":"RPL_ENDOFSTATS",
"242":"RPL_STATSUPTIME",
"243":"RPL_STATSOLINE",
"221":"RPL_UMODEIS",
"234":"RPL_SERVLIST",
"235":"RPL_SERVLISTEND",
"251":"RPL_LUSERCLIENT",
"252":"RPL_LUSEROP",
"253":"RPL_LUSERUNKNOWN",
"254":"RPL_LUSERCHANNELS",
"255":"RPL_LUSERME",
"256":"RPL_ADMINME",
"257":"RPL_ADMINLOC1",
"258":"RPL_ADMINLOC2",
"259":"RPL_ADMINEMAIL",
"263":"RPL_TRYAGAIN",
"401":"ERR_NOSUCHNICK",
"402":"ERR_NOSUCHSERVER",
"403":"ERR_NOSUCHCHANNEL",
"404":"ERR_CANNOTSENDTOCHAN",
"405":"ERR_TOOMANYCHANNELS",
"406":"ERR_WASNOSUCHNICK",
"407":"ERR_TOOMANYTARGETS",
"408":"ERR_NOSUCHSERVICE",
"409":"ERR_NOORIGIN",
"411":"ERR_NORECIPIENT",
"412":"ERR_NOTEXTTOSEND",
"413":"ERR_NOTOPLEVEL",
"414":"ERR_WILDTOPLEVEL",
"415":"ERR_BADMASK",
"417":"ERR_INPUTTOOLONG",
"421":"ERR_UNKNOWNCOMMAND",
"422":"ERR_NOMOTD",
"423":"ERR_NOADMININFO",
"424":"ERR_FILEERROR",
"431":"ERR_NONICKNAMEGIVEN",
"432":"ERR_ERRONEUSNICKNAME",
"433":"ERR_NICKNAMEINUSE",
"436":"ERR_NICKCOLLISION",
"437":"ERR_UNAVAILRESOURCE",
"441":"ERR_USERNOTINCHANNEL",
"442":"ERR_NOTONCHANNEL",
"443":"ERR_USERONCHANNEL",
"444":"ERR_NOLOGIN",
"445":"ERR_SUMMONDISABLED",
"446":"ERR_USERSDISABLED",
"451":"ERR_NOTREGISTERED",
"461":"ERR_NEEDMOREPARAMS",
"462":"ERR_ALREADYREGISTRED",
"463":"ERR_NOPERMFORHOST",
"464":"ERR_PASSWDMISMATCH",
"465":"ERR_YOUREBANNEDCREEP",
"466":"ERR_YOUWILLBEBANNED",
"467":"ERR_KEYSET",
"471":"ERR_CHANNELISFULL",
"472":"ERR_UNKNOWNMODE",
"473":"ERR_INVITEONLYCHAN",
"474":"ERR_BANNEDFROMCHAN",
"475":"ERR_BADCHANNELKEY",
"476":"ERR_BADCHANMASK",
"477":"ERR_NOCHANMODES",
"478":"ERR_BANLISTFULL",
"481":"ERR_NOPRIVILEGES",
"482":"ERR_CHANOPRIVSNEEDED",
"483":"ERR_CANTKILLSERVER",
"484":"ERR_RESTRICTED",
"485":"ERR_UNIQOPPRIVSNEEDED",
"491":"ERR_NOOPERHOST",
"501":"ERR_UMODEUNKNOWNFLAG",
"502":"ERR_USERSDONTMATCH",
"900":"RPL_LOGGEDIN",
"901":"RPL_LOGGEDOUT",
"902":"RPL_NICKLOCKED",
"903":"RPL_SASLSUCCESS",
"904":"ERR_SASLFAIL",
"905":"ERR_SASLTOOLONG",
"906":"ERR_SASLABORTED",
"907":"ERR_SASLALREADY",
"908":"RPL_SASLMECHS",
"670":"RPL_STARTTLS",
"691":"ERR_STARTTLS",
"730":"RPL_MONONLINE",
"731":"RPL_MONOFFLINE",
"732":"RPL_MONLIST",
"733":"RPL_ENDOFMONLIST",
"734":"ERR_MONLISTFULL",
"213":"RPL_STATSCLINE",
"214":"RPL_STATSNLINE",
"215":"RPL_STATSILINE",
"216":"RPL_STATSKLINE",
"217":"RPL_STATSQLINE",
"218":"RPL_STATSYLINE",
"231":"RPL_SERVICEINFO",
"232":"RPL_ENDOFSERVICES",
"233":"RPL_SERVICE",
"240":"RPL_STATSVLINE",
"241":"RPL_STATSLLINE",
"244":"RPL_STATSHLINE",
"245":"RPL_STATSSLINE",
"246":"RPL_STATSPING",
"247":"RPL_STATSBLINE",
"250":"RPL_STATSDLINE",
"300":"RPL_NONE",
"316":"RPL_WHOISCHANOP",
"361":"RPL_KILLDONE",
"362":"RPL_CLOSING",
"363":"RPL_CLOSEEND",
"373":"RPL_INFOSTART",
"384":"RPL_MYPORTIS",
"492":"ERR_NOSERVICEHOST",
"416":"ERR_TOOMANYMATCHES",
"266":"RPL_GLOBALUSERS",
"265":"RPL_LOCALUSERS",
"333":"RPL_TOPICWHOTIME",
"354":"RPL_WHOSPCRPL",
"CLIENT_STATE_UPDATED":"UPDATE_STATE",
"CLIENT_GENERAL_UPDATED":"UPDATE_GENERAL",
"*":"ALL_EVENTS",
"CLIENT_CONNECTED":"CONNECTED",
"CLIENT_INIT":"INITIALIZED",
"CLIENT_DISCONNECTED":"DISCONNECTED",
"CLIENT_CLOSED":"CLOSED",
"STS_UPGRADE_INIT":"STS_UPGRADE_INIT",
"STS_ERR_FALLBACK":"STS_ERR_FALLBACK",
"ACTION":"CTCP_ACTION",
"PING":"CTCP_PING",
"PONG":"CTCP_PONG",
"VERSION":"CTCP_VERSION",
"USERINFO":"CTCP_USERINFO",
"CLIENTINFO":"CTCP_CLIENTINFO",
"SOURCE":"CTCP_SOURCE",
"TIME":"CTCP_TIME",
"FINGER":"CTCP_FINGER",
"ERRMSG":"CTCP_ERRMSG",
}