Git

Antoine Jacquet [Fri, 18 Oct 2002 22:00:00 +0000 (00:00 +0200)]
* polish support (thank you Piotr Jarmuz)
* you can now ignore some users
* improved Makefile
* the # in channel name is not imposed anymore (to support "&channels")
* number of total days are now displayed

Makefile
README
irssistats.c
sample.nickfile.txt

index 1e9ff5b..a3eae00 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,2 +1,11 @@
 irssistats:irssistats.c
        gcc -o irssistats irssistats.c
+
+clean:
+       rm -f irssistats 
+
+install:irssistats
+       (test -d /usr/local/bin && cp irssistats /usr/local/bin) || (test -d /usr/bin && cp irssistats /usr/bin)
+
+uninstall:
+       rm -f /usr/local/bin/irssistats /usr/bin/irssistats
diff --git a/README b/README
index 01aaf4f..0a2c7be 100644 (file)
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-irssistats 0.4
+irssistats 0.41
 site: http://royale.zerezo.com/programmation/irssistats/
 mail: royale@zerezo.com
 
@@ -7,16 +7,19 @@ make
 cp pix/*.png /path/to/webdir/
 
 usage:
-cat /path/to/file.log | ./irssistats channel maintainer language theme [nickfile] > /path/to/webdir/index.html
+cat /path/to/file.log | ./irssistats \#channel maintainer language theme [nickfile] > /path/to/webdir/index.html
+(don't forget to escape the '#' in the channel name)
 
 nickfile:
 Since version 0.4 of irssistats, you can use a nickfile to specify nicks to join.
 Each line of the nickfile contains the final nick and a regular expression.
 Examples :
-  royale  ^[Rr]oyale  : join nicks starting with "Royale" or "royale" to the final nick "royale"
-  royale  ^antoine$   : also join the nick "antoine" to the final nick "royale"
-  djakette  [Dd]ja    : join any nick that contains "Dja" or "dja" to final nick "djakette"
+  royale  ^[Rr]oyale   : join nicks starting with "Royale" or "royale" to the final nick "royale"
+  royale  ^antoine$    : also join the nick "antoine" to the final nick "royale"
+  djakette  [Dd]ja     : join any nick that contains "Dja" or "dja" to final nick "djakette"
+  <NULL> ^bot\|royale$ : remove "bot|royale" from statistics
 The nickfile must not contain any comments.
+The <NULL> final nick will remove matching nicks from all statistics, except from "Some URLs" and "Some topics"...
 You can also take a look at the "sample.nickfile.txt" in this package.
 
 links:
index b7a855c..1ddd0cc 100644 (file)
@@ -1,4 +1,4 @@
-/* Usage: cat /path/to/file.log | ./irssistats channel maintainer language theme [nickfile] > /path/to/file.html */
+/* Usage: cat /path/to/file.log | ./irssistats \#channel maintainer language theme [nickfile] > /path/to/file.html */
 
 #include <stdio.h>
 #include <stdlib.h>
@@ -19,7 +19,7 @@
 #define MINWORDLENGTH 5
 
 /* irssistats */
-#define VERSION "0.4"
+#define VERSION "0.41"
 #define URL "http://royale.zerezo.com/programmation/irssistats/"
 
 /* Counters */
 char *counters[NBCOUNTERS]={"C_SMILE","C_FROWN","C_EXCLAM","C_QUESTION","C_ME","C_TOPIC","C_MODE","C_KICK","C_KICKED","C_URL","C_JOIN","C_NICK","C_MONOLOGUE"};
 
 /* Languages */
-#define NBLANGUAGES 4
+#define NBLANGUAGES 5
 #define NBKEYS 38
 char *keys[NBLANGUAGES][NBKEYS+1][2]= /* first key used for language name and abbreviation */
 {
   { /* English language */
     { "English",      "en" },
-    { "HEADER",       "Statistics for #%s by %s" },
+    { "HEADER",       "Statistics for %s by %s" },
     { "LEGEND",       "Legend" },
     { "LASTDAYS",     "Lastdays statistics" },
     { "TOPHOURS",     "Hourly statistics" },
@@ -69,7 +69,7 @@ char *keys[NBLANGUAGES][NBKEYS+1][2]= /* first key used for language name and ab
     { "OCCURRENCES",  "occurrences" },
     { "BIGNUMBERS",   "Some big numbers..." },
     { "NUMBERS",      "numbers" },
-    { "TIME",         "%d lines parsed in %d seconds" },
+    { "TIME",         "%d lines (%d days) parsed in %d seconds" },
     { "FOOTER",       "Statistics generated by" },
     { "C_SMILE",      "is often happy :)" },
     { "C_FROWN",      "is often sad :(" },
@@ -87,7 +87,7 @@ char *keys[NBLANGUAGES][NBKEYS+1][2]= /* first key used for language name and ab
   },
   { /* French language */
     { "Français",     "fr" },
-    { "HEADER",       "Statistiques de #%s par %s" },
+    { "HEADER",       "Statistiques de %s par %s" },
     { "LEGEND",       "L&eacute;gende" },
     { "LASTDAYS",     "Statistiques des derniers jours" },
     { "TOPHOURS",     "Statistiques horaires" },
@@ -110,7 +110,7 @@ char *keys[NBLANGUAGES][NBKEYS+1][2]= /* first key used for language name and ab
     { "OCCURRENCES",  "occurrences" },
     { "BIGNUMBERS",   "Quelques grands nombres..." },
     { "NUMBERS",      "nombres" },
-    { "TIME",         "%d lignes trait&eacute;es en %d secondes" },
+    { "TIME",         "%d lignes (%d jours) trait&eacute;es en %d secondes" },
     { "FOOTER",       "Statistiques g&eacute;n&eacute;r&eacute;es par" },
     { "C_SMILE",      "est souvent heureux :)" },
     { "C_FROWN",      "est souvent triste :(" },
@@ -129,7 +129,7 @@ char *keys[NBLANGUAGES][NBKEYS+1][2]= /* first key used for language name and ab
   { /* German language */
     /* contributed by Valentin Gelhorn <valentin.gelhorn@web.de> */
     { "German",       "de" },
-    { "HEADER",       "Statistiken f&uuml;r #%s von %s" },
+    { "HEADER",       "Statistiken f&uuml;r %s von %s" },
     { "LEGEND",       "Legende" },
     { "LASTDAYS",     "Statistik der letzten Tage" },
     { "TOPHOURS",     "St&uuml;ndliche Statistik" },
@@ -152,7 +152,7 @@ char *keys[NBLANGUAGES][NBKEYS+1][2]= /* first key used for language name and ab
     { "OCCURRENCES",  "Vorkommen" },
     { "BIGNUMBERS",   "Ein paar grosse Zahlen" },
     { "NUMBERS",      "Zahlen" },
-    { "TIME",         "%d Zeilen analysiert in %d Sekunden" },
+    { "TIME",         "%d Zeilen (%d Tage) analysiert in %d Sekunden" },
     { "FOOTER",       "Statistiken wurden erstellt von" },
     { "C_SMILE",      "ist oft gl&uuml;klich :)" },
     { "C_FROWN",      "ist oft traurig :(" },
@@ -171,7 +171,7 @@ char *keys[NBLANGUAGES][NBKEYS+1][2]= /* first key used for language name and ab
   { /* Spanish language */
     /* contributed by Alex <ainaker@gmx.net> */
     { "Spanish",      "es" },
-    { "HEADER",       "Estad&iacute;sticas de #%s por %s" },
+    { "HEADER",       "Estad&iacute;sticas de %s por %s" },
     { "LEGEND",       "Leyenda" },
     { "LASTDAYS",     "Estad&iacute;sticas de los &uacute;ltimos d&iacute;as" },
     { "TOPHOURS",     "Estad&iacute;sticas por horas" },
@@ -194,7 +194,7 @@ char *keys[NBLANGUAGES][NBKEYS+1][2]= /* first key used for language name and ab
     { "OCCURRENCES",  "Frecuencia" },
     { "BIGNUMBERS",   "Algunos datos..." },
     { "NUMBERS",      "N&uacute;mero de veces" },
-    { "TIME",         "%d lineas procesadas en %d segundos" },
+    { "TIME",         "%d lineas (%d d&iacute;as) procesadas en %d segundos" },
     { "FOOTER",       "Estad&iacute;sticas generadas por" },
     { "C_SMILE",      "Suele estar fel&iacute;z :)" },
     { "C_FROWN",      "Suele estar triste :(" },
@@ -209,6 +209,48 @@ char *keys[NBLANGUAGES][NBKEYS+1][2]= /* first key used for language name and ab
     { "C_JOIN",       "No sabe si irse o quedarse" },
     { "C_NICK",       "Cambia mucho de nick" },
     { "C_MONOLOGUE",  "Habla solo" }
+  },
+  { /* Polish language */
+    /* contributed by Piotr Jarmuz <coreupper@yahoo.com> */
+    { "Polish",       "pl" },
+    { "HEADER",       "Statystyki dla %s przez %s" },
+    { "LEGEND",       "Legenda" },
+    { "LASTDAYS",     "Statystyki z ostatnich dni" },
+    { "TOPHOURS",     "Statystyki godzinne" },
+    { "TOPUSERS",     "Najaktywniejsi ludzie" },
+    { "OTHERS",       "Zostalo jeszcze %d nie sklasyfikowanych..." },
+    { "NBLINES",      "linie" },
+    { "NICK",         "nick" },
+    { "AVGLETTERS",   "litery/linie" },
+    { "HOURS",        "godziny" },
+    { "QUOTE",        "przypadkowa wiadomosc" },
+    { "TOPUSERSTIME", "Najaktywniejsi ludzie wedlug czasu dnia" },
+    { "RANDTOPICS",   "Pare tematow" },
+    { "CHANGEDBY",    "zmienione przez" },
+    { "NEWTOPIC",     "nowy temat" },
+    { "RANDURLS",     "Pare URL-i" },
+    { "POSTEDBY",     "wyslane przez" },
+    { "POSTEDURL",    "URL" },
+    { "TOPWORDS",     "Najczestsze slowa" },
+    { "WORD",         "slowo" },
+    { "OCCURRENCES",  "wystapienia" },
+    { "BIGNUMBERS",   "Pare wielkich liczb..." },
+    { "NUMBERS",      "liczby" },
+    { "TIME",         "%d linii (%d dni) sparsowanych w %d sekund" },
+    { "FOOTER",       "Statystyki wygenerowane przez" },
+    { "C_SMILE",      "jest czesto szczesliwy :)" },
+    { "C_FROWN",      "jest czesto smutny :(" },
+    { "C_EXCLAM",     "duzo krzyczy !" },
+    { "C_QUESTION",   "zadaje duzo pytan ?" },
+    { "C_ME",         "lubi /mnie polecenie" },
+    { "C_TOPIC",      "czesto zmienia temat" },
+    { "C_MODE",       "czesto zmienia tryb" },
+    { "C_KICK",       "lubi /kopac" },
+    { "C_KICKED",     "czesto go wykopuja" },
+    { "C_URL",        "wysyla duzo URL-i" },
+    { "C_JOIN",       "nie wie czy zostac czy wyjsc" },
+    { "C_NICK",       "czesto zmienia swojego nicka" },
+    { "C_MONOLOGUE",  "czesto mowi monologiem" }
   }
 };
 
@@ -468,7 +510,7 @@ int main(int argc,char *argv[])
   
   if ((argc<5) || (argc>6))
   {
-    fprintf(stderr,"Usage: cat /path/to/file.log | ./irssistats channel maintainer language theme [nickfile] > /path/to/file.html\n\n");
+    fprintf(stderr,"Usage: cat /path/to/file.log | ./irssistats \\#channel maintainer language theme [nickfile] > /path/to/file.html\n\n");
     fprintf(stderr,"Version :\nirssistats %s\n\n",VERSION);
     fprintf(stderr,"Supported languages :\n");
     for (i=0;i<NBLANGUAGES;i++) fprintf(stderr,"%s = %s\n",keys[i][0][1],keys[i][0][0]);
@@ -670,6 +712,12 @@ int main(int argc,char *argv[])
       regfree(&preg);
     }
     fclose(fic);
+    /* "remove" the ignored nicks */
+    i=dichotomic("<NULL>");
+    users[i].lines=-1;
+    users[i].letters=-1;
+    for (j=0;j<4;j++) users[i].hours[j]=-1;
+    for (j=0;j<NBCOUNTERS;j++) users[i].counters[j]=-1;
   }
   
   /*** HTML ***/
@@ -813,7 +861,7 @@ int main(int argc,char *argv[])
   printf("</table>\n<br><br>\n\n");
   
   /* footer */
-  printf(L("TIME"),totallines,(int)(time(NULL)-debut));
+  printf(L("TIME"),totallines,days,(int)(time(NULL)-debut));
   printf("<br>\n%s <a href=\"%s\">irssistats %s</a>",L("FOOTER"),URL,VERSION);
   printf("\n\n</center>\n\n</body>\n\n</html>\n");
   
index 25d6d2d..67d92d3 100644 (file)
@@ -1,3 +1,5 @@
+<NULL> ^bot\|royale$\r
+\r
 royale ^royale\r
 royale ^antoine\r
 \r
@@ -7,16 +9,18 @@ sektor ^guillaume
 \r
 Skorn ^Skorn\r
 \r
-ed- ^ed\r
-ed- ^fionna\r
-ed- ^voyager\r
-ed- ^laurent\r
+ed ^ed\r
+ed ^fionna\r
+ed ^[Vv]oyager\r
+ed ^laurent\r
 \r
-Baloo ^Baloo\r
+eL^Cheator el\^cheator\r
 \r
-DocJ [Dd]oc[Jj]\r
+Baloo ^Baloo\r
 \r
 Connard ^Connard\r
+Connard ^Julien\r
+Connard ^LedZep\r
 \r
 Trash ^Trash\r
 \r
@@ -26,32 +30,35 @@ vinc ^vinc
 \r
 Clak ^Clak\r
 \r
-N4in N4in\r
-\r
 Kin ^Kin\r
 \r
-J377 J377\r
-\r
-SpetsnaZ ^SpetsnaZ\r
-SpetsnaZ Spets\r
-\r
-eXistenZ e[Xx]isten[Zz]\r
+eXistenZ ^e[Xx]isten[Zz]\r
 \r
 tit-namour ^tit\r
 \r
-Domitille Domi\r
-Domitille Domy\r
-Domitille Mimitille\r
+Domitille ^Domi\r
+Domitille ^Domy\r
+Domitille ^Mimitille\r
 \r
 Kalimero ^Jo\[zeRezo\]\r
 \r
-Djakette [Dd]jakette\r
+Djakette ^[Dd]jakette\r
 Djakette ^\[BTF\]Dja\r
 Djakette ^FonsD\|Dja\r
 Djakette ^dja\r
 \r
 piTi``kOrB` ^piTi``kOrB`\r
 \r
+DocJ ^[Dd]oc[Jj]\r
+\r
+SpetsnaZ ^SpetsnaZ\r
+SpetsnaZ Spets\r
+\r
 Clowny Clowny\r
 \r
-toul toul
\ No newline at end of file
+N4in N4in\r
+\r
+J377 J377\r
+\r
+toul toul\r
+toul ^\[BTF\]\r