]> jfr.im git - irc/quakenet/newserv.git/blob - chanserv/newsearch/chanserv_newsearch.c
CHANSERV: add QSUSPENDED usersearch command.
[irc/quakenet/newserv.git] / chanserv / newsearch / chanserv_newsearch.c
1 #include "../chanserv.h"
2 #include "chanserv_newsearch.h"
3
4 int cs_donicksearch(void *source, int cargc, char **cargv);
5 int cs_dochansearch(void *source, int cargc, char **cargv);
6 int cs_dousersearch(void *source, int cargc, char **cargv);
7 int cs_dospewemail(void *source, int cargc, char **cargv);
8 int cs_dospewdb(void *source, int cargc, char **cargv);
9
10 UserDisplayFunc previousdefault;
11
12 void _init() {
13 regdisp(reg_nicksearch, "auth", printnick_auth, 0, "");
14 regdisp(reg_nicksearch, "authchans", printnick_authchans, 0, "");
15 regdisp(reg_chansearch, "qusers", printchannel_qusers, 0, "");
16 regdisp(reg_usersearch, "auth", printauth, 0, "");
17
18 registersearchterm(reg_usersearch, "qusers", qusers_parse, 0, "");
19 registersearchterm(reg_usersearch, "qlasthost", qlasthost_parse, 0, "");
20 registersearchterm(reg_usersearch, "qemail", qemail_parse, 0, "");
21 registersearchterm(reg_usersearch, "qsuspendreason", qsuspendreason_parse, 0, "");
22 registersearchterm(reg_usersearch, "qusername", qusername_parse, 0, "");
23 registersearchterm(reg_chansearch, "qchanflags", qchanflags_parse, 0, "");
24 registersearchterm(reg_usersearch, "qsuspended", qsuspended_parse, 0, "");
25
26 chanservaddcommand("nicksearch", QCMD_OPER, 5, cs_donicksearch, "Wrapper for standard newserv nicksearch command.", "");
27 chanservaddcommand("chansearch", QCMD_OPER, 5, cs_dochansearch, "Wrapper for standard newserv chansearch command.", "");
28 chanservaddcommand("usersearch", QCMD_OPER, 5, cs_dousersearch, "Wrapper for standard newserv usersearch command.", "");
29 chanservaddcommand("spewemail", QCMD_OPER, 1, cs_dospewemail, "Search for an e-mail in the database.", "Usage: spewemail <pattern>\nDisplays all users with email addresses that match the supplied pattern.");
30 chanservaddcommand("spewdb", QCMD_OPER, 1, cs_dospewdb, "Search for a user in the database.", "Usage: spewdb <pattern>\nDisplays all users with usernames that match the specified pattern.");
31
32 previousdefault = defaultuserfn;
33 defaultuserfn = printauth;
34 }
35
36 void _fini() {
37 unregdisp(reg_nicksearch, "auth", printnick_auth);
38 unregdisp(reg_nicksearch, "authchans", printnick_authchans);
39 unregdisp(reg_chansearch, "qusers", printchannel_qusers);
40 unregdisp(reg_usersearch, "auth", printauth);
41
42 deregistersearchterm(reg_usersearch, "qusers", qusers_parse);
43 deregistersearchterm(reg_usersearch, "qlasthost", qlasthost_parse);
44 deregistersearchterm(reg_usersearch, "qemail", qemail_parse);
45 deregistersearchterm(reg_usersearch, "qsuspendreason", qsuspendreason_parse);
46 deregistersearchterm(reg_usersearch, "qusername", qusername_parse);
47 deregistersearchterm(reg_chansearch, "qchanflags", qchanflags_parse);
48
49 chanservremovecommand("nicksearch", cs_donicksearch);
50 chanservremovecommand("chansearch", cs_dochansearch);
51 chanservremovecommand("usersearch", cs_dousersearch);
52 chanservremovecommand("spewemail", cs_dospewemail);
53 chanservremovecommand("spewdb", cs_dospewdb);
54
55 defaultuserfn = previousdefault;
56 }