]> jfr.im git - irc/quakenet/newserv.git/blobdiff - qabot/qabot.h
nickwatch: Add hook for HOOK_NICK_ACCOUNT.
[irc/quakenet/newserv.git] / qabot / qabot.h
index 743d1ad0fa37e655a8b5cfa506dc8d6d97a9c098..ef9699c62b644e652665001695306c0cff950784 100644 (file)
@@ -2,6 +2,12 @@
 #ifndef _QABOT_H
 #define _QABOT_H
 
+#include <string.h>
+
+#if !defined(strdup)
+char *strdup(const char *);
+#endif
+
 #define QABOT_NICK        "QABot"
 #define QABOT_USER        "qabot"
 #define QABOT_HOST        "quakenet.org"
@@ -92,7 +98,7 @@ typedef struct qab_answer {
 } qab_answer;
 
 typedef struct qab_block {
-  char              type;
+  char     type;
   char              creator[ACCOUNTLEN + 1];
   time_t            created;
   char*             blockstr;
@@ -101,68 +107,49 @@ typedef struct qab_block {
   struct qab_block* prev;
 } qab_block;
 
-typedef struct qab_textsection {
-  qab_spam*               lines;
-  qab_spam*               lines_tail;
-  int                     line_count;
-  
-  struct qab_textsection* next;
-  struct qab_textsection* prev;
-} qab_textsection;
-
-typedef struct qab_text {
-  char             name[NICKLEN + 1];
-  qab_textsection* sections;
-  qab_textsection* sections_tail;
-  int              section_count;
-  
-  struct qab_text* next;
-  struct qab_text* prev;
-} qab_text;
-
 typedef struct qab_bot {
-  char             nick[NICKLEN + 1];
-  char             user[USERLEN + 1];
-  char*            host;
+  char            nick[NICKLEN + 1];
+  char            user[USERLEN + 1];
+  char*           host;
   
-  nick*            np;
+  nick*           np;
   
-  chanindex*       public_chan;
-  chanindex*       question_chan;
-  chanindex*       staff_chan;
+  chanindex*      public_chan;
+  chanindex*      question_chan;
+  chanindex*      staff_chan;
   
-  flag_t           flags;
+  flag_t          flags;
   
-  /*int              question_interval;*/
-  int              spam_interval;
-  int              ask_wait;
-  int              queued_question_interval;
+  /*int             question_interval;*/
+  int             spam_interval;
+  int             ask_wait;
+  int             queued_question_interval;
   
-  time_t           lastmic;
-  int              mic_timeout;
+  time_t          lastmic;
+  int             mic_timeout;
   
-  qab_block*       blocks;
-  int              block_count;
+  qab_block*      blocks;
+  int             block_count;
   
-  qab_question*    questions[QUESTIONHASHSIZE];
-  int              lastquestionID;
-  int              answered;
+  qab_question*   questions[QUESTIONHASHSIZE];
+  int             lastquestionID;
+  int             answered;
   
-  int              spammed;
+  int             spammed;
   
-  qab_spam*        nextspam;
-  qab_spam*        lastspam;
-  time_t           spamtime;
+  qab_spam*       nextspam;
+  qab_spam*       lastspam;
+  time_t          spamtime;
   
-  qab_answer*      answers;
+  qab_answer*     answers;
   
-  unsigned long    micnumeric;
-  
-  qab_textsection* recording_section;
-  qab_text*        texts;
+  unsigned long   micnumeric;
+  unsigned long   recnumeric;
+  FILE            *recfile;
+  FILE            *playfile;
 
-  struct qab_bot*  next;
-  struct qab_bot*  prev;
+  struct qab_bot* next;
+  struct qab_bot* prev;
 } qab_bot;
 
 extern time_t qab_startime;
@@ -190,6 +177,7 @@ const char* qabot_formattime(time_t tme);
 qab_bot* qabot_getbot();
 int qabot_addbot(char* nickname, char* user, char* host, char* pub_chan, char* qu_chan, char* stff_chan, flag_t flags, int spam_interval, int ask_wait, int queued_question_interval, nick* sender);
 void qabot_delbot(qab_bot* bot);
+void qabot_playback(qab_bot *bot);
 channel* qabot_getchannel(char* channel_name);
 void qabot_spam(void* arg);
 void qabot_spamstored(void* arg);
@@ -207,6 +195,12 @@ int qabot_dochanconfig(void* np, int cargc, char** cargv);
 int qabot_dochanhelp(void* np, int cargc, char** cargv);
 int qabot_dochanlistblocks(void* np, int cargc, char** cargv);
 int qabot_dochanmic(void* np, int cargc, char** cargv);
+int qabot_dochanrecord(void *np, int cargc, char** cargv);
+int qabot_dochanplay(void *np, int cargc, char** cargv);
+int qabot_dochancontinue(void *np, int cargc, char** cargv);
+int qabot_dochanstop(void *np, int cargc, char** cargv);
+int qabot_dochanlist(void *np, int cargc, char** cargv);
+int qabot_dochandelete(void *np, int cargc, char** cargv);
 int qabot_dochanmoo(void* np, int cargc, char** cargv);
 int qabot_dochanofftopic(void* np, int cargc, char** cargv);
 int qabot_dochanopenchan(void* np, int cargc, char** cargv);
@@ -215,13 +209,6 @@ int qabot_dochanreset(void* np, int cargc, char** cargv);
 int qabot_dochanspam(void* np, int cargc, char** cargv);
 int qabot_dochanstatus(void* np, int cargc, char** cargv);
 int qabot_dochanunblock(void* np, int cargc, char** cargv);
-int qabot_dochanlisttexts(void* np, int cargc, char** cargv);
-int qabot_dochanshowsection(void* np, int cargc, char** cargv);
-int qabot_dochanaddtext(void* np, int cargc, char** cargv);
-int qabot_dochandeltext(void* np, int cargc, char** cargv);
-int qabot_dochanaddsection(void* np, int cargc, char** cargv);
-int qabot_dochandelsection(void* np, int cargc, char** cargv);
-int qabot_dochanrecord(void* np, int cargc, char** cargv);
 
 /* qabot_commands.c */
 int qabot_doshowcommands(void* sender, int cargc, char** cargv);
@@ -247,13 +234,8 @@ void qabot_adduser(const char* authname, flag_t flags, time_t created);
 void qabot_deluser(const char* authname);
 void qabot_squelchuser(qab_user* user);
 qab_user* qabot_getuser(const char* authname);
-qab_bot* qabot_findbot(const char* nickname);
 
 /* qabot_help.c */
 int qabot_showhelp(nick* np, char* arg);
 
-/* qabot_texts.c */
-void qabot_freetext(qab_bot* bot, qab_text* text);
-void qabot_freesection(qab_text* text, qab_textsection* section);
-
 #endif