]> jfr.im git - irc/quakenet/newserv.git/blobdiff - qabot/qabot_dbase.c
CHANSERV: reduce reason to 15 chars
[irc/quakenet/newserv.git] / qabot / qabot_dbase.c
index 6988d7cc9983d340b15d24c03793c07428548c29..4bd50c58b02d84a47d88cf4028b281513fb2af67 100644 (file)
-#include <stdio.h>\r
-#include <string.h>\r
-#include <time.h>\r
-\r
-#include "../nick/nick.h"\r
-#include "../localuser/localuserchannel.h"\r
-#include "../core/hooks.h"\r
-#include "../core/schedule.h"\r
-#include "../lib/array.h"\r
-#include "../lib/base64.h"\r
-#include "../lib/irc_string.h"\r
-#include "../lib/splitline.h"\r
-\r
-#include "qabot.h"\r
-\r
-qab_user* qabot_users = 0;\r
-\r
-void qabot_loaddb() {\r
-  FILE* f;\r
-  char buf[2049];\r
-  char* args[100];\r
-  time_t created;\r
-  flag_t flags;\r
-  int spam_interval;\r
-  int ask_wait;\r
-  int queued_question_interval;\r
-  qab_bot* b;\r
-  \r
-  if (!(f = fopen("qab_users", "r")))\r
-    return;\r
-  \r
-  while (!feof(f)) {\r
-    if (fgets(buf, 2048, f)) {\r
-      buf[2048] = '\0';\r
-      if (splitline(buf, args, 50, 0) != 3) {\r
-        fclose(f);\r
-        return;\r
-      }\r
-      \r
-      flags = (flag_t)strtoul(args[1], NULL, 10);\r
-      created = strtoul(args[2], NULL, 10);\r
-      \r
-      qabot_adduser(args[0], flags, created);\r
-    }\r
-  }\r
-  \r
-  fclose(f);\r
-  \r
-  if (!(f = fopen("qab_bots", "r")))\r
-    return;\r
-  \r
-  while (!feof(f)) {\r
-    if (fgets(buf, 2048, f)) {\r
-      buf[2048] = '\0';\r
-      if (splitline(buf, args, 50, 0) != 10) {\r
-        fclose(f);\r
-        return;\r
-      }\r
-      \r
-      qabot_addbot(args[0], args[1], args[2], args[3], args[4], args[5], (flag_t)strtol(args[6], NULL, 10), \r
-        (int)strtol(args[7], NULL, 10), (int)strtol(args[8], NULL, 10), (int)strtol(args[9], NULL, 10), 0);\r
-    }\r
-  }\r
-  \r
-  fclose(f);\r
-}\r
-\r
-void qabot_savedb() {\r
-  FILE* f;\r
-  qab_user* u;\r
-  qab_bot* b;\r
-  \r
-  if (!(f = fopen("qab_users", "w")))\r
-    return;\r
-  \r
-  for (u = qabot_users; u; u = u->next)\r
-    fprintf(f, "%s %d %ld\n", u->authname, (int)u->flags, u->created);\r
-  \r
-  fclose(f);\r
-  \r
-  if (!(f = fopen("qab_bots", "w")))\r
-    return;\r
-  \r
-  for (b = qab_bots; b; b = b->next)\r
-    fprintf(f, "%s %s %s %s %s %s %d %d %d %d\n", b->nick, b->user, b->host, b->public_chan->name->content, \r
-      b->question_chan->name->content, b->staff_chan->name->content, (int)b->flags, b->spam_interval, \r
-      b->ask_wait, b->queued_question_interval);\r
-  \r
-  fclose(f);\r
-}\r
-\r
-void qabot_savetimer(void* arg) {\r
-  qabot_savedb();\r
-}\r
-\r
-void qabot_adduser(const char* authname, flag_t flags, time_t created) {\r
-  qab_user* u;\r
-\r
-  if ((u = qabot_getuser(authname)))\r
-    return;\r
-\r
-  u = (qab_user*)malloc(sizeof(qab_user));\r
-  strncpy(u->authname, authname, ACCOUNTLEN);\r
-  u->authname[ACCOUNTLEN] = '\0';\r
-  u->flags = flags;\r
-  u->created = created;\r
-\r
-  u->prev = 0;\r
-  u->next = qabot_users;\r
-  if (qabot_users)\r
-    qabot_users->prev = u;\r
-  qabot_users = u;\r
-}\r
-\r
-void qabot_deluser(const char* authname) {\r
-  qab_user* u = qabot_getuser(authname);\r
-\r
-  if (!u)\r
-    return;\r
-\r
-  qabot_squelchuser(u);\r
-}\r
-\r
-void qabot_squelchuser(qab_user* user) {\r
-  if (user->next)\r
-    user->next->prev = user->prev;\r
-  if (user->prev)\r
-    user->prev->next = user->next;\r
-  else\r
-    qabot_users = user->next;\r
-\r
-  free(user);\r
-}\r
-\r
-qab_user* qabot_getuser(const char* authname) {\r
-  qab_user* u;\r
-\r
-  for (u = qabot_users; u; u = u->next)\r
-    if (!ircd_strcmp(u->authname, authname))\r
-      return u;\r
-\r
-  return 0;\r
-}\r
+#include <stdio.h>
+#include <time.h>
+
+#include "../nick/nick.h"
+#include "../localuser/localuserchannel.h"
+#include "../core/hooks.h"
+#include "../core/schedule.h"
+#include "../lib/array.h"
+#include "../lib/base64.h"
+#include "../lib/irc_string.h"
+#include "../lib/splitline.h"
+
+#include "qabot.h"
+
+qab_user* qabot_users = 0;
+
+void qabot_loaddb() {
+  FILE* f;
+  char buf[2049];
+  char* args[100];
+  time_t created;
+  flag_t flags;
+  
+  if (!(f = fopen("data/qab_users", "r")))
+    return;
+  
+  while (!feof(f)) {
+    if (fgets(buf, 2048, f)) {
+      buf[2048] = '\0';
+      if (splitline(buf, args, 50, 0) != 3) {
+        fclose(f);
+        return;
+      }
+      
+      flags = (flag_t)strtoul(args[1], NULL, 10);
+      created = strtoul(args[2], NULL, 10);
+      
+      qabot_adduser(args[0], flags, created);
+    }
+  }
+  
+  fclose(f);
+  
+  if (!(f = fopen("data/qab_bots", "r")))
+    return;
+  
+  while (!feof(f)) {
+    if (fgets(buf, 2048, f)) {
+      buf[2048] = '\0';
+      if (splitline(buf, args, 50, 0) != 10) {
+        fclose(f);
+        return;
+      }
+      
+      qabot_addbot(args[0], args[1], args[2], args[3], args[4], args[5], (flag_t)strtol(args[6], NULL, 10), 
+        (int)strtol(args[7], NULL, 10), (int)strtol(args[8], NULL, 10), (int)strtol(args[9], NULL, 10), 0);
+    }
+  }
+  
+  fclose(f);
+}
+
+void qabot_savedb() {
+  FILE* f;
+  qab_user* u;
+  qab_bot* b;
+  
+  if (!(f = fopen("data/qab_users", "w")))
+    return;
+  
+  for (u = qabot_users; u; u = u->next)
+    fprintf(f, "%s %d %ld\n", u->authname, (int)u->flags, u->created);
+  
+  fclose(f);
+  
+  if (!(f = fopen("data/qab_bots", "w")))
+    return;
+  
+  for (b = qab_bots; b; b = b->next)
+    fprintf(f, "%s %s %s %s %s %s %d %d %d %d\n", b->nick, b->user, b->host, b->public_chan->name->content, 
+      b->question_chan->name->content, b->staff_chan->name->content, (int)b->flags, b->spam_interval, 
+      b->ask_wait, b->queued_question_interval);
+  
+  fclose(f);
+}
+
+void qabot_savetimer(void* arg) {
+  qabot_savedb();
+}
+
+void qabot_adduser(const char* authname, flag_t flags, time_t created) {
+  qab_user* u;
+
+  if ((u = qabot_getuser(authname)))
+    return;
+
+  u = (qab_user*)malloc(sizeof(qab_user));
+  strncpy(u->authname, authname, ACCOUNTLEN);
+  u->authname[ACCOUNTLEN] = '\0';
+  u->flags = flags;
+  u->created = created;
+
+  u->prev = 0;
+  u->next = qabot_users;
+  if (qabot_users)
+    qabot_users->prev = u;
+  qabot_users = u;
+}
+
+void qabot_deluser(const char* authname) {
+  qab_user* u = qabot_getuser(authname);
+
+  if (!u)
+    return;
+
+  qabot_squelchuser(u);
+}
+
+void qabot_squelchuser(qab_user* user) {
+  if (user->next)
+    user->next->prev = user->prev;
+  if (user->prev)
+    user->prev->next = user->next;
+  else
+    qabot_users = user->next;
+
+  free(user);
+}
+
+qab_user* qabot_getuser(const char* authname) {
+  qab_user* u;
+
+  for (u = qabot_users; u; u = u->next)
+    if (!ircd_strcmp(u->authname, authname))
+      return u;
+
+  return 0;
+}