add gperf input file
This commit is contained in:
parent
4c2f783d74
commit
52fe211067
279
irc_commands.gperf
Normal file
279
irc_commands.gperf
Normal file
|
@ -0,0 +1,279 @@
|
||||||
|
struct RecognizedCommand {
|
||||||
|
char const* text;
|
||||||
|
IrcCommand command;
|
||||||
|
std::size_t min_args;
|
||||||
|
std::size_t max_args;
|
||||||
|
};
|
||||||
|
%%
|
||||||
|
001, IrcCommand::RPL_WELCOME, 2, 2
|
||||||
|
002, IrcCommand::RPL_YOURHOST, 2, 2
|
||||||
|
003, IrcCommand::RPL_CREATED, 2, 2
|
||||||
|
004, IrcCommand::RPL_MYINFO, 5, 5
|
||||||
|
005, IrcCommand::RPL_ISUPPORT, 2, 15
|
||||||
|
008, IrcCommand::RPL_SNOMASK, 3, 3
|
||||||
|
010, IrcCommand::RPL_REDIR, 4, 4
|
||||||
|
015, IrcCommand::RPL_MAP, 2, 2
|
||||||
|
017, IrcCommand::RPL_MAPEND, 2, 2
|
||||||
|
043, IrcCommand::RPL_SAVENICK, 3, 3
|
||||||
|
200, IrcCommand::RPL_TRACELINK, 5, 5
|
||||||
|
201, IrcCommand::RPL_TRACECONNECTING, 4, 4
|
||||||
|
202, IrcCommand::RPL_TRACEHANDSHAKE, 4, 4
|
||||||
|
203, IrcCommand::RPL_TRACEUNKNOWN, 6, 6
|
||||||
|
204, IrcCommand::RPL_TRACEOPERATOR
|
||||||
|
205, IrcCommand::RPL_TRACEUSER
|
||||||
|
206, IrcCommand::RPL_TRACESERVER
|
||||||
|
208, IrcCommand::RPL_TRACENEWTYPE
|
||||||
|
209, IrcCommand::RPL_TRACECLASS
|
||||||
|
211, IrcCommand::RPL_STATSLINKINFO
|
||||||
|
212, IrcCommand::RPL_STATSCOMMANDS
|
||||||
|
213, IrcCommand::RPL_STATSCLINE
|
||||||
|
214, IrcCommand::RPL_STATSNLINE
|
||||||
|
215, IrcCommand::RPL_STATSILINE
|
||||||
|
216, IrcCommand::RPL_STATSKLINE
|
||||||
|
217, IrcCommand::RPL_STATSQLINE
|
||||||
|
218, IrcCommand::RPL_STATSYLINE
|
||||||
|
219, IrcCommand::RPL_ENDOFSTATS
|
||||||
|
220, IrcCommand::RPL_STATSPLINE
|
||||||
|
221, IrcCommand::RPL_UMODEIS, 2, 2
|
||||||
|
224, IrcCommand::RPL_STATSFLINE
|
||||||
|
225, IrcCommand::RPL_STATSDLINE
|
||||||
|
234, IrcCommand::RPL_SERVLIST
|
||||||
|
235, IrcCommand::RPL_SERVLISTEND
|
||||||
|
241, IrcCommand::RPL_STATSLLINE
|
||||||
|
242, IrcCommand::RPL_STATSUPTIME
|
||||||
|
243, IrcCommand::RPL_STATSOLINE
|
||||||
|
244, IrcCommand::RPL_STATSHLINE
|
||||||
|
245, IrcCommand::RPL_STATSSLINE
|
||||||
|
247, IrcCommand::RPL_STATSXLINE
|
||||||
|
248, IrcCommand::RPL_STATSULINE
|
||||||
|
249, IrcCommand::RPL_STATSDEBUG
|
||||||
|
250, IrcCommand::RPL_STATSCONN
|
||||||
|
251, IrcCommand::RPL_LUSERCLIENT
|
||||||
|
252, IrcCommand::RPL_LUSEROP
|
||||||
|
253, IrcCommand::RPL_LUSERUNKNOWN
|
||||||
|
254, IrcCommand::RPL_LUSERCHANNELS
|
||||||
|
255, IrcCommand::RPL_LUSERME
|
||||||
|
256, IrcCommand::RPL_ADMINME
|
||||||
|
257, IrcCommand::RPL_ADMINLOC1
|
||||||
|
258, IrcCommand::RPL_ADMINLOC2
|
||||||
|
259, IrcCommand::RPL_ADMINEMAIL
|
||||||
|
261, IrcCommand::RPL_TRACELOG
|
||||||
|
262, IrcCommand::RPL_ENDOFTRACE, 3, 3
|
||||||
|
263, IrcCommand::RPL_LOAD2HI
|
||||||
|
265, IrcCommand::RPL_LOCALUSERS
|
||||||
|
266, IrcCommand::RPL_GLOBALUSERS
|
||||||
|
270, IrcCommand::RPL_PRIVS
|
||||||
|
276, IrcCommand::RPL_WHOISCERTFP
|
||||||
|
281, IrcCommand::RPL_ACCEPTLIST
|
||||||
|
282, IrcCommand::RPL_ENDOFACCEPT
|
||||||
|
300, IrcCommand::RPL_NONE
|
||||||
|
301, IrcCommand::RPL_AWAY
|
||||||
|
302, IrcCommand::RPL_USERHOST
|
||||||
|
303, IrcCommand::RPL_ISON
|
||||||
|
304, IrcCommand::RPL_TEXT
|
||||||
|
305, IrcCommand::RPL_UNAWAY
|
||||||
|
306, IrcCommand::RPL_NOWAWAY
|
||||||
|
310, IrcCommand::RPL_WHOISHELPOP
|
||||||
|
311, IrcCommand::RPL_WHOISUSER
|
||||||
|
312, IrcCommand::RPL_WHOISSERVER
|
||||||
|
313, IrcCommand::RPL_WHOISOPERATOR
|
||||||
|
314, IrcCommand::RPL_WHOWASUSER
|
||||||
|
369, IrcCommand::RPL_ENDOFWHOWAS
|
||||||
|
316, IrcCommand::RPL_WHOISCHANOP
|
||||||
|
317, IrcCommand::RPL_WHOISIDLE
|
||||||
|
318, IrcCommand::RPL_ENDOFWHOIS
|
||||||
|
319, IrcCommand::RPL_WHOISCHANNELS
|
||||||
|
320, IrcCommand::RPL_WHOISSPECIAL
|
||||||
|
321, IrcCommand::RPL_LISTSTART
|
||||||
|
322, IrcCommand::RPL_LIST
|
||||||
|
323, IrcCommand::RPL_LISTEND
|
||||||
|
324, IrcCommand::RPL_CHANNELMODEIS
|
||||||
|
325, IrcCommand::RPL_CHANNELMLOCK
|
||||||
|
328, IrcCommand::RPL_CHANNELURL
|
||||||
|
329, IrcCommand::RPL_CREATIONTIME
|
||||||
|
330, IrcCommand::RPL_WHOISLOGGEDIN
|
||||||
|
331, IrcCommand::RPL_NOTOPIC
|
||||||
|
332, IrcCommand::RPL_TOPIC, 3, 3
|
||||||
|
333, IrcCommand::RPL_TOPICWHOTIME, 4, 4
|
||||||
|
337, IrcCommand::RPL_WHOISTEXT
|
||||||
|
338, IrcCommand::RPL_WHOISACTUALLY
|
||||||
|
341, IrcCommand::RPL_INVITING
|
||||||
|
342, IrcCommand::RPL_SUMMONING
|
||||||
|
346, IrcCommand::RPL_INVITELIST
|
||||||
|
347, IrcCommand::RPL_ENDOFINVITELIST
|
||||||
|
348, IrcCommand::RPL_EXCEPTLIST
|
||||||
|
349, IrcCommand::RPL_ENDOFEXCEPTLIST
|
||||||
|
351, IrcCommand::RPL_VERSION
|
||||||
|
352, IrcCommand::RPL_WHOREPLY
|
||||||
|
354, IrcCommand::RPL_WHOSPCRPL
|
||||||
|
315, IrcCommand::RPL_ENDOFWHO
|
||||||
|
353, IrcCommand::RPL_NAMREPLY
|
||||||
|
360, IrcCommand::RPL_WHOWASREAL
|
||||||
|
366, IrcCommand::RPL_ENDOFNAMES
|
||||||
|
361, IrcCommand::RPL_KILLDONE
|
||||||
|
362, IrcCommand::RPL_CLOSING
|
||||||
|
363, IrcCommand::RPL_CLOSEEND
|
||||||
|
364, IrcCommand::RPL_LINKS
|
||||||
|
365, IrcCommand::RPL_ENDOFLINKS
|
||||||
|
367, IrcCommand::RPL_BANLIST
|
||||||
|
368, IrcCommand::RPL_ENDOFBANLIST
|
||||||
|
371, IrcCommand::RPL_INFO
|
||||||
|
372, IrcCommand::RPL_MOTD
|
||||||
|
373, IrcCommand::RPL_INFOSTART
|
||||||
|
374, IrcCommand::RPL_ENDOFINFO
|
||||||
|
375, IrcCommand::RPL_MOTDSTART
|
||||||
|
376, IrcCommand::RPL_ENDOFMOTD
|
||||||
|
378, IrcCommand::RPL_WHOISHOST
|
||||||
|
381, IrcCommand::RPL_YOUREOPER
|
||||||
|
382, IrcCommand::RPL_REHASHING
|
||||||
|
384, IrcCommand::RPL_MYPORTIS
|
||||||
|
385, IrcCommand::RPL_NOTOPERANYMORE
|
||||||
|
386, IrcCommand::RPL_RSACHALLENGE
|
||||||
|
391, IrcCommand::RPL_TIME
|
||||||
|
392, IrcCommand::RPL_USERSSTART
|
||||||
|
393, IrcCommand::RPL_USERS
|
||||||
|
394, IrcCommand::RPL_ENDOFUSERS
|
||||||
|
395, IrcCommand::RPL_NOUSERS
|
||||||
|
396, IrcCommand::RPL_HOSTHIDDEN
|
||||||
|
401, IrcCommand::ERR_NOSUCHNICK, 3, 3
|
||||||
|
402, IrcCommand::ERR_NOSUCHSERVER
|
||||||
|
403, IrcCommand::ERR_NOSUCHCHANNEL
|
||||||
|
404, IrcCommand::ERR_CANNOTSENDTOCHAN
|
||||||
|
405, IrcCommand::ERR_TOOMANYCHANNELS
|
||||||
|
406, IrcCommand::ERR_WASNOSUCHNICK
|
||||||
|
407, IrcCommand::ERR_TOOMANYTARGETS
|
||||||
|
409, IrcCommand::ERR_NOORIGIN
|
||||||
|
410, IrcCommand::ERR_INVALIDCAPCMD
|
||||||
|
411, IrcCommand::ERR_NORECIPIENT
|
||||||
|
412, IrcCommand::ERR_NOTEXTTOSEND
|
||||||
|
413, IrcCommand::ERR_NOTOPLEVEL
|
||||||
|
414, IrcCommand::ERR_WILDTOPLEVEL
|
||||||
|
415, IrcCommand::ERR_MSGNEEDREGGEDNICK
|
||||||
|
416, IrcCommand::ERR_TOOMANYMATCHES
|
||||||
|
421, IrcCommand::ERR_UNKNOWNCOMMAND
|
||||||
|
422, IrcCommand::ERR_NOMOTD, 2, 2
|
||||||
|
423, IrcCommand::ERR_NOADMININFO
|
||||||
|
424, IrcCommand::ERR_FILEERROR
|
||||||
|
431, IrcCommand::ERR_NONICKNAMEGIVEN
|
||||||
|
432, IrcCommand::ERR_ERRONEUSNICKNAME
|
||||||
|
433, IrcCommand::ERR_NICKNAMEINUSE
|
||||||
|
435, IrcCommand::ERR_BANNICKCHANGE
|
||||||
|
436, IrcCommand::ERR_NICKCOLLISION
|
||||||
|
437, IrcCommand::ERR_UNAVAILRESOURCE
|
||||||
|
438, IrcCommand::ERR_NICKTOOFAST
|
||||||
|
440, IrcCommand::ERR_SERVICESDOWN
|
||||||
|
441, IrcCommand::ERR_USERNOTINCHANNEL
|
||||||
|
442, IrcCommand::ERR_NOTONCHANNEL
|
||||||
|
443, IrcCommand::ERR_USERONCHANNEL
|
||||||
|
444, IrcCommand::ERR_NOLOGIN
|
||||||
|
445, IrcCommand::ERR_SUMMONDISABLED
|
||||||
|
446, IrcCommand::ERR_USERSDISABLED
|
||||||
|
451, IrcCommand::ERR_NOTREGISTERED
|
||||||
|
456, IrcCommand::ERR_ACCEPTFULL
|
||||||
|
457, IrcCommand::ERR_ACCEPTEXIST
|
||||||
|
458, IrcCommand::ERR_ACCEPTNOT
|
||||||
|
461, IrcCommand::ERR_NEEDMOREPARAMS
|
||||||
|
462, IrcCommand::ERR_ALREADYREGISTRED
|
||||||
|
463, IrcCommand::ERR_NOPERMFORHOST
|
||||||
|
464, IrcCommand::ERR_PASSWDMISMATCH
|
||||||
|
465, IrcCommand::ERR_YOUREBANNEDCREEP
|
||||||
|
466, IrcCommand::ERR_YOUWILLBEBANNED
|
||||||
|
467, IrcCommand::ERR_KEYSET
|
||||||
|
470, IrcCommand::ERR_LINKCHANNEL
|
||||||
|
471, IrcCommand::ERR_CHANNELISFULL
|
||||||
|
472, IrcCommand::ERR_UNKNOWNMODE
|
||||||
|
473, IrcCommand::ERR_INVITEONLYCHAN
|
||||||
|
474, IrcCommand::ERR_BANNEDFROMCHAN
|
||||||
|
475, IrcCommand::ERR_BADCHANNELKEY
|
||||||
|
476, IrcCommand::ERR_BADCHANMASK
|
||||||
|
477, IrcCommand::ERR_NEEDREGGEDNICK
|
||||||
|
478, IrcCommand::ERR_BANLISTFULL
|
||||||
|
479, IrcCommand::ERR_BADCHANNAME
|
||||||
|
480, IrcCommand::ERR_THROTTLE
|
||||||
|
481, IrcCommand::ERR_NOPRIVILEGES
|
||||||
|
482, IrcCommand::ERR_CHANOPRIVSNEEDED
|
||||||
|
483, IrcCommand::ERR_CANTKILLSERVER
|
||||||
|
484, IrcCommand::ERR_ISCHANSERVICE
|
||||||
|
485, IrcCommand::ERR_BANNEDNICK
|
||||||
|
486, IrcCommand::ERR_NONONREG
|
||||||
|
489, IrcCommand::ERR_VOICENEEDED
|
||||||
|
491, IrcCommand::ERR_NOOPERHOST
|
||||||
|
492, IrcCommand::ERR_CANNOTSENDTOUSER
|
||||||
|
494, IrcCommand::ERR_OWNMODE
|
||||||
|
501, IrcCommand::ERR_UMODEUNKNOWNFLAG
|
||||||
|
502, IrcCommand::ERR_USERSDONTMATCH
|
||||||
|
503, IrcCommand::ERR_GHOSTEDCLIENT
|
||||||
|
504, IrcCommand::ERR_USERNOTONSERV
|
||||||
|
513, IrcCommand::ERR_WRONGPONG
|
||||||
|
517, IrcCommand::ERR_DISABLED
|
||||||
|
524, IrcCommand::ERR_HELPNOTFOUND
|
||||||
|
670, IrcCommand::RPL_STARTTLS
|
||||||
|
671, IrcCommand::RPL_WHOISSECURE
|
||||||
|
691, IrcCommand::ERR_STARTTLS
|
||||||
|
702, IrcCommand::RPL_MODLIST
|
||||||
|
703, IrcCommand::RPL_ENDOFMODLIST
|
||||||
|
704, IrcCommand::RPL_HELPSTART
|
||||||
|
705, IrcCommand::RPL_HELPTXT
|
||||||
|
706, IrcCommand::RPL_ENDOFHELP
|
||||||
|
707, IrcCommand::ERR_TARGCHANGE
|
||||||
|
708, IrcCommand::RPL_ETRACEFULL, 10, 10
|
||||||
|
709, IrcCommand::RPL_ETRACE
|
||||||
|
710, IrcCommand::RPL_KNOCK
|
||||||
|
711, IrcCommand::RPL_KNOCKDLVR
|
||||||
|
712, IrcCommand::ERR_TOOMANYKNOCK
|
||||||
|
713, IrcCommand::ERR_CHANOPEN
|
||||||
|
714, IrcCommand::ERR_KNOCKONCHAN
|
||||||
|
715, IrcCommand::ERR_KNOCKDISABLED
|
||||||
|
716, IrcCommand::ERR_TARGUMODEG
|
||||||
|
717, IrcCommand::RPL_TARGNOTIFY
|
||||||
|
718, IrcCommand::RPL_UMODEGMSG
|
||||||
|
720, IrcCommand::RPL_OMOTDSTART
|
||||||
|
721, IrcCommand::RPL_OMOTD
|
||||||
|
722, IrcCommand::RPL_ENDOFOMOTD
|
||||||
|
723, IrcCommand::ERR_NOPRIVS
|
||||||
|
724, IrcCommand::RPL_TESTMASK
|
||||||
|
725, IrcCommand::RPL_TESTLINE
|
||||||
|
726, IrcCommand::RPL_NOTESTLINE
|
||||||
|
727, IrcCommand::RPL_TESTMASKGECO
|
||||||
|
728, IrcCommand::RPL_QUIETLIST
|
||||||
|
729, IrcCommand::RPL_ENDOFQUIETLIS
|
||||||
|
730, IrcCommand::RPL_MONONLINE
|
||||||
|
731, IrcCommand::RPL_MONOFFLINE
|
||||||
|
732, IrcCommand::RPL_MONLIST
|
||||||
|
733, IrcCommand::RPL_ENDOFMONLIS
|
||||||
|
734, IrcCommand::ERR_MONLISTFULL
|
||||||
|
740, IrcCommand::RPL_RSACHALLENGE2
|
||||||
|
741, IrcCommand::RPL_ENDOFRSACHALLENGE2
|
||||||
|
742, IrcCommand::ERR_MLOCKRESTRICTE
|
||||||
|
743, IrcCommand::ERR_INVALIDBAN
|
||||||
|
744, IrcCommand::ERR_TOPICLOCK
|
||||||
|
750, IrcCommand::RPL_SCANMATCHED
|
||||||
|
751, IrcCommand::RPL_SCANUMODES
|
||||||
|
900, IrcCommand::RPL_LOGGEDIN
|
||||||
|
901, IrcCommand::RPL_LOGGEDOUT
|
||||||
|
902, IrcCommand::ERR_NICKLOCKED
|
||||||
|
903, IrcCommand::RPL_SASLSUCCESS
|
||||||
|
904, IrcCommand::ERR_SASLFAIL
|
||||||
|
905, IrcCommand::ERR_SASLTOOLONG
|
||||||
|
906, IrcCommand::ERR_SASLABORTED
|
||||||
|
907, IrcCommand::ERR_SASLALREADY
|
||||||
|
908, IrcCommand::RPL_SASLMECHS
|
||||||
|
ACCOUNT, IrcCommand::ACCOUNT, 1, 1
|
||||||
|
AUTHENTICATE, IrcCommand::AUTHENTICATE, 1, 1
|
||||||
|
AWAY, IrcCommand::AWAY, 0, 1
|
||||||
|
BATCH, IrcCommand::BATCH
|
||||||
|
BOUNCER, IrcCommand::BOUNCER
|
||||||
|
CAP, IrcCommand::CAP, 1, 15
|
||||||
|
CHGHOST, IrcCommand::CHGHOST, 2, 2
|
||||||
|
ERROR, IrcCommand::ERROR, 1, 1
|
||||||
|
JOIN, IrcCommand::JOIN, 1, 3
|
||||||
|
KICK, IrcCommand::KICK, 3, 3
|
||||||
|
MODE, IrcCommand::MODE, 2, 15
|
||||||
|
NICK, IrcCommand::NICK, 1, 1
|
||||||
|
NOTICE, IrcCommand::NOTICE, 2, 2
|
||||||
|
PART, IrcCommand::PART, 2, 2
|
||||||
|
PING, IrcCommand::PING, 1, 1
|
||||||
|
PRIVMSG, IrcCommand::PRIVMSG, 2, 2
|
||||||
|
QUIT, IrcCommand::QUIT, 1, 1
|
||||||
|
SETNAME, IrcCommand::SETNAME, 1, 1
|
||||||
|
TOPIC, IrcCommand::TOPIC, 2, 2
|
|
@ -11,14 +11,13 @@ auto snote_thread(Connection * connection) -> void
|
||||||
static char const* const prefix = "*** Notice -- ";
|
static char const* const prefix = "*** Notice -- ";
|
||||||
connection->add_listener<IrcMsgEvent>([connection](IrcMsgEvent& event)
|
connection->add_listener<IrcMsgEvent>([connection](IrcMsgEvent& event)
|
||||||
{
|
{
|
||||||
auto& irc = event.irc;
|
auto& args = event.irc.args;
|
||||||
if ("NOTICE" == irc.command
|
if (IrcCommand::NOTICE == event.command
|
||||||
&& 2 == irc.args.size()
|
&& "*" == args[0]
|
||||||
&& "*" == irc.args[0]
|
&& args[1].starts_with(prefix))
|
||||||
&& irc.args[1].starts_with(prefix))
|
|
||||||
{
|
{
|
||||||
event.handled_ = true;
|
event.handled_ = true;
|
||||||
connection->make_event<SnoteEvent>(irc.args[1].substr(strlen(prefix)));
|
connection->make_event<SnoteEvent>(args[1].substr(strlen(prefix)));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user