version 0.75
[irssistats] / irssistats.c
index c4e9af2..ea31cee 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * irssistats version 0.73
+ * irssistats version 0.75
  *
  * This tool generates IRC stats based on irssi logs.
  * Usage: irssistats [/path/to/file.conf]
@@ -49,7 +49,7 @@
 #define MINWORDLENGTH 5
 
 /* irssistats */
-#define VERSION "0.73"
+#define VERSION "0.75"
 #define URL "http://royale.zerezo.com/irssistats/"
 
 /* Counters */
@@ -1097,6 +1097,8 @@ void parse_log(char *logfile)
             case '@':
             case '%':
             case '+':
+            case '&':
+            case '~':
             case ' ': 
               nickstart = timelen+2; 
               break;
@@ -1162,7 +1164,24 @@ void parse_log(char *logfile)
           if (message[j-1]==')') users[i].counters[D_SMILE]++;
           else if (message[j-1]=='(') users[i].counters[D_FROWN]++;
         }
-        if (rand()%users[i].lines==0) strncpy(users[i].quote,message,MAXQUOTELENGTH);
+        // Fetch a random message, messages between 25 and 70 chars are
+        // preferred (pisg-style, gets "better" quotes)
+        //
+        if (rand()%users[i].lines==0) {
+            
+            int len = strlen(message);
+            // if we have a "good" quote, use it
+            if ( len > 25 && len < 70 )
+            {
+                strncpy(users[i].quote,message,MAXQUOTELENGTH);
+            } else {
+                int len2 = strlen(users[i].quote);
+                if ( !(len2 > 25 && len2 < 70 )) {
+                    strncpy(users[i].quote,message,MAXQUOTELENGTH);
+                } 
+            }
+        } 
+
         if (strncmp("http://",message,7)==0)
         {
           users[i].counters[D_URL]++;
@@ -1810,7 +1829,6 @@ void parse_config(char *configfile)
 int main(int argc,char *argv[])
 {
   (void) setlocale(LC_ALL, "");
-  
   if ((users=malloc(maxusers*sizeof(struct user)))==NULL) { fprintf(stderr,"unable to malloc memory\n"); exit(1); }
   srand(debut=time(NULL));
   if (argc==1) parse_config(NULL);
@@ -1823,3 +1841,4 @@ int main(int argc,char *argv[])
   }
   return(0);
 }
+