]> jfr.im git - irc/quakenet/newserv.git/blobdiff - newsearch/newsearch.h
Added (kick <username>) function to chansearch.
[irc/quakenet/newserv.git] / newsearch / newsearch.h
index 7ca8d5d1239548a9e624812013ae2c3adf4c3bce..f17f87fea43d8614ab79bb1c6933ad7e17d4cad7 100644 (file)
@@ -1,13 +1,19 @@
 #include "../nick/nick.h"
+#include "../parser/parser.h"
+#include "../channel/channel.h"
+#include "../lib/flags.h"
 
 #define    SEARCHTYPE_CHANNEL     1
 #define    SEARCHTYPE_NICK        2
 
 
-#define    NSMAX_KILL_LIMIT       5
+#define    NSMAX_KILL_LIMIT       500
 #define    NSMAX_GLINE_LIMIT      500
 
 
+#define    NSMAX_GLINE_CLONES     5
+
+
 /* gline duration, in seconds */
 #define    NSGLINE_DURATION       3600
 
@@ -22,21 +28,37 @@ struct searchNode;
 
 typedef struct searchNode *(*parseFunc)(int, int, char **);
 typedef void (*freeFunc)(struct searchNode *);
-typedef void *(*exeFunc)(struct searchNode *, int, void *);
+typedef void *(*exeFunc)(struct searchNode *, void *);
 
 /* Core functions */
+/* Logical  (BOOL -> BOOL)*/
 struct searchNode *and_parse(int type, int argc, char **argv);
 struct searchNode *not_parse(int type, int argc, char **argv);
 struct searchNode *or_parse(int type, int argc, char **argv);
+
+/* Comparison (INT -> BOOL) */
 struct searchNode *eq_parse(int type, int argc, char **argv);
 struct searchNode *lt_parse(int type, int argc, char **argv);
 struct searchNode *gt_parse(int type, int argc, char **argv);
+
+/* String match (STRING -> BOOL) */
 struct searchNode *match_parse(int type, int argc, char **argv);
 struct searchNode *regex_parse(int type, int argc, char **argv);
-struct searchNode *hostmask_parse(int type, int argc, char **argv);
+
+/* Length (STRING -> INT) */
+struct searchNode *length_parse(int type, int argc, char **argv);
+
+/* kill/gline actions (BOOL) */
+struct searchNode *kill_parse(int type, int argc, char **argv);
+struct searchNode *gline_parse(int type, int argc, char **argv);
+
+/* Nick/Channel functions (various types) */
+struct searchNode *nick_parse(int type, int argc, char **argv);
 struct searchNode *modes_parse(int type, int argc, char **argv);
+
+/* Nick functions (various types) */
+struct searchNode *hostmask_parse(int type, int argc, char **argv);
 struct searchNode *realname_parse(int type, int argc, char **argv);
-struct searchNode *nick_parse(int type, int argc, char **argv);
 struct searchNode *authname_parse(int type, int argc, char **argv);
 struct searchNode *ident_parse(int type, int argc, char **argv);
 struct searchNode *host_parse(int type, int argc, char **argv);
@@ -44,12 +66,24 @@ struct searchNode *channel_parse(int type, int argc, char **argv);
 struct searchNode *timestamp_parse(int type, int argc, char **argv);
 struct searchNode *country_parse(int type, int argc, char **argv);
 struct searchNode *ip_parse(int type, int argc, char **argv);
-struct searchNode *kill_parse(int type, int argc, char **argv);
-struct searchNode *gline_parse(int type, int argc, char **argv);
-
 
+/* Channel functions (various types) */
+struct searchNode *exists_parse(int type, int argc, char **argv);
+struct searchNode *services_parse(int type, int argc, char **argv);
+struct searchNode *size_parse(int type, int argc, char **argv);
+struct searchNode *name_parse(int type, int argc, char **argv);
+struct searchNode *topic_parse(int type, int argc, char **argv);
+struct searchNode *oppct_parse(int type, int argc, char **argv);
+struct searchNode *hostpct_parse(int type, int argc, char **argv);
+struct searchNode *authedpct_parse(int type, int argc, char **argv);
+struct searchNode *kick_parse(int type, int argc, char **argv);
+
+/* Interpret a string to give a node */
 struct searchNode *search_parse(int type, char *input);
 
+/* Force a node to return the thing you want */
+struct searchNode *coerceNode(struct searchNode *thenode, int type);
+
 /* Registration functions */
 void registersearchterm(char *term, parseFunc parsefunc);
 void deregistersearchterm(char *term, parseFunc parsefunc);