00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef _EGG_MOD_CHANSERV_CHANSERV_H_
00023 #define _EGG_MOD_CHANSERV_CHANSERV_H_
00024
00025 #include <modules/server/egg_server_api.h>
00026 #include "egg_chanserv_internal.h"
00027 #include "events.h"
00028
00029 #define CHANSERV_CLEANUP_TIME 120
00030 #define CHANSERV_CLEANUP_TIMER 60
00031
00032 enum {
00033 CHANSERV_STAT_JOIN = 0,
00034 CHANSERV_STAT_PART,
00035 CHANSERV_STAT_QUIT,
00036 CHANSERV_STAT_CYCLE,
00037 CHANSERV_STAT_LEAVE,
00038 CHANSERV_STAT_CTCP,
00039 CHANSERV_STAT_MSG,
00040 CHANSERV_STAT_NOTICE,
00041 CHANSERV_STAT_LINE,
00042 CHANSERV_STAT_NICK,
00043 CHANSERV_STAT_KICK,
00044 CHANSERV_STAT_MODE,
00045 CHANSERV_STAT_MODEFIGHT,
00046 CHANSERV_STAT_TOPIC,
00047 CHANSERV_STAT_LEN
00048 };
00049
00050 typedef struct {
00051 char *who;
00052 int stats[CHANSERV_STAT_LEN];
00053 time_t last_event_time[CHANSERV_STAT_LEN];
00054 time_t last_event;
00055 } chanserv_member_stats_t;
00056
00057 typedef struct chanserv_channel_stats {
00058 struct chanserv_channel_stats *next, *prev;
00059
00060 char *name;
00061 int stats[CHANSERV_STAT_LEN];
00062 int periods[CHANSERV_STAT_LEN];
00063 int limits[CHANSERV_STAT_LEN];
00064 time_t last_event_time[CHANSERV_STAT_LEN];
00065
00066 chanserv_member_stats_t *members;
00067 int nmembers;
00068 } chanserv_channel_stats_t;
00069
00070 typedef struct {
00071 int channel_periods[CHANSERV_STAT_LEN];
00072 int channel_limits[CHANSERV_STAT_LEN];
00073 int individual_periods[CHANSERV_STAT_LEN];
00074 int individual_limits[CHANSERV_STAT_LEN];
00075 int cycle_time;
00076 } chanserv_config_t;
00077
00078 extern chanserv_config_t chanserv_config;
00079 extern egg_server_api_t *server;
00080
00081 extern int chanserv_lookup_config(const char *chan, int stat, int *limit, int *period);
00082 extern chanserv_channel_stats_t *chanserv_probe_chan(const char *chan, int create);
00083 extern int chanserv_update_stats(int stat, const char *chan, const char *nick, const char *uhost);
00084
00085 #endif