231 lines
6.1 KiB
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",
|
|
}
|