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 -- ";
|
||||
connection->add_listener<IrcMsgEvent>([connection](IrcMsgEvent& event)
|
||||
{
|
||||
auto& irc = event.irc;
|
||||
if ("NOTICE" == irc.command
|
||||
&& 2 == irc.args.size()
|
||||
&& "*" == irc.args[0]
|
||||
&& irc.args[1].starts_with(prefix))
|
||||
auto& args = event.irc.args;
|
||||
if (IrcCommand::NOTICE == event.command
|
||||
&& "*" == args[0]
|
||||
&& args[1].starts_with(prefix))
|
||||
{
|
||||
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