]>
jfr.im git - irc/quakenet/newserv.git/blob - chanserv/newsearch/interface.c
1 #include "../chanserv.h"
2 #include "../../lib/stringbuf.h"
3 #include "chanserv_newsearch.h"
7 static char *concatargs(int cargc
, char **cargv
) {
8 static char bigbuf
[1024];
12 sbinit(&b
, bigbuf
, sizeof(bigbuf
));
13 for(i
=0;i
<cargc
;i
++) {
14 sbaddstr(&b
, cargv
[i
]);
22 static void chanservmessagewrapper(nick
*np
, char *format
, ...) {
27 vsnprintf(buf
, sizeof(buf
), format
, ap
);
30 chanservsendmessage(np
, "%s", buf
);
33 static void chanservwallwrapper(int level
, char *format
, ...) {
38 vsnprintf(buf
, sizeof(buf
), format
, ap
);
41 chanservwallmessage("%s", buf
);
44 int cs_donicksearch(void *source
, int cargc
, char **cargv
) {
48 chanservstdmessage(sender
, QM_NOTENOUGHPARAMS
, "nicksearch");
52 cs_log(source
, "NICKSEARCH %s", concatargs(cargc
, cargv
));
53 do_nicksearch_real(chanservmessagewrapper
, chanservwallwrapper
, source
, cargc
, cargv
);
55 chanservstdmessage(sender
, QM_DONE
);
59 int cs_dochansearch(void *source
, int cargc
, char **cargv
) {
63 chanservstdmessage(sender
, QM_NOTENOUGHPARAMS
, "chansearch");
67 cs_log(source
, "CHANSEARCH %s", concatargs(cargc
, cargv
));
68 do_chansearch_real(chanservmessagewrapper
, chanservwallwrapper
, source
, cargc
, cargv
);
70 chanservstdmessage(sender
, QM_DONE
);
74 int cs_dousersearch(void *source
, int cargc
, char **cargv
) {
78 chanservstdmessage(sender
, QM_NOTENOUGHPARAMS
, "usersearch");
82 cs_log(source
, "USERSEARCH %s", concatargs(cargc
, cargv
));
83 do_usersearch_real(chanservmessagewrapper
, chanservwallwrapper
, source
, cargc
, cargv
);
85 chanservstdmessage(sender
, QM_DONE
);
89 void showheader(void *source
, void *header
) {
90 long iheader
= (long)header
;
92 chanservstdmessage(source
, iheader
);
95 int cs_dospewemail(void *source
, int cargc
, char **cargv
) {
99 chanservstdmessage(source
, QM_NOTENOUGHPARAMS
, "spewemail");
103 cs_log(source
, "SPEWEMAIL %s", cargv
[0]);
105 tree
= NSASTNode(match_parse
, NSASTNode(qemail_parse
), NSASTLiteral(cargv
[0]));
106 return ast_usersearch(&tree
, chanservmessagewrapper
, source
, chanservwallwrapper
, printauth
, showheader
, (void *)QM_SPEWHEADER
, 2000);
109 int cs_dospewdb(void *source
, int cargc
, char **cargv
) {
113 chanservstdmessage(source
, QM_NOTENOUGHPARAMS
, "spewdb");
117 cs_log(source
, "SPEWDB %s", cargv
[0]);
121 NSASTNode(match_parse
, NSASTNode(qusername_parse
), NSASTLiteral(cargv
[0])),
122 NSASTNode(match_parse
, NSASTNode(qsuspendreason_parse
), NSASTLiteral(cargv
[0])),
123 NSASTNode(match_parse
, NSASTNode(qemail_parse
), NSASTLiteral(cargv
[0])),
124 NSASTNode(match_parse
, NSASTNode(qlasthost_parse
), NSASTLiteral(cargv
[0])),
126 return ast_usersearch(&tree
, chanservmessagewrapper
, source
, chanservwallwrapper
, printauth
, showheader
, (void *)QM_SPEWHEADER
, 2000);