girc-atomic/codebook.go

231 lines
6.1 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.
*/
//goland:noinspection GoUnusedExportedFunction
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, "NICK": 1, "FAIL": 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",
"330": "RPL_WHOISAUTHNAME",
"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",
"400": "ERR_ALREADYOPER",
"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",
"671": "RPL_WHOISTLS",
"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",
}