version 0.51 v0.51
authorAntoine Jacquet <royale@zerezo.com>
Sat, 13 Dec 2003 23:00:00 +0000 (00:00 +0100)
committerAntoine Jacquet <royale@zerezo.com>
Sat, 13 Dec 2003 23:00:00 +0000 (00:00 +0100)
* bugfixes and polish language updated (thank you Jakub Jankowski)
* "CHARSET" is now a language parameter
* Internet Explorer specific bugfix in themes

README
data/blue.css
data/dark.css
data/default.css
data/grayscale.css
data/namour.css
data/pisg.css
data/zeduel.css
data/zerezo.css
irssistats.c
sample.configfile

diff --git a/README b/README
index ebba4e7..3e1adf0 100644 (file)
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-irssistats 0.5
+irssistats 0.51
 site: http://royale.zerezo.com/irssistats/
 mail: royale@zerezo.com
 
index 17166ee..8d5ff28 100644 (file)
@@ -73,6 +73,7 @@ body {
        margin: 0;
        padding: 0;
   border: 0;
+  font-size: 0;
 }
 
 #irssistats div.v1, #irssistats div.v2, #irssistats div.v3, #irssistats div.v4, #irssistats div.vm {
@@ -80,6 +81,7 @@ body {
        margin: 0;
        padding: 0;
        border: 0;
+  font-size: 0;
 }
 
 #irssistats div.h1 {
index eac24ba..0bf47ba 100644 (file)
@@ -75,6 +75,7 @@ body {
        margin: 0;
        padding: 0;
   border: 0;
+  font-size: 0;
 }
 
 #irssistats div.v1, #irssistats div.v2, #irssistats div.v3, #irssistats div.v4, #irssistats div.vm {
@@ -82,6 +83,7 @@ body {
        margin: 0;
        padding: 0;
        border: 0;
+  font-size: 0;
 }
 
 #irssistats div.h1 {
index 88a2b0d..b36f313 100644 (file)
@@ -65,6 +65,7 @@ body {
        margin: 0;
        padding: 0;
   border: 0;
+  font-size: 0;
 }
 
 #irssistats div.v1, #irssistats div.v2, #irssistats div.v3, #irssistats div.v4, #irssistats div.vm {
@@ -72,6 +73,7 @@ body {
        margin: 0;
        padding: 0;
        border: 0;
+  font-size: 0;
 }
 
 #irssistats div.h1 {
index 7131eaa..e739063 100644 (file)
@@ -88,6 +88,7 @@ body {
        margin: 0;
        padding: 0;
   border: 0;
+  font-size: 0;
 }
 
 #irssistats div.v1, #irssistats div.v2, #irssistats div.v3, #irssistats div.v4, #irssistats div.vm {
@@ -95,6 +96,7 @@ body {
        margin: 0;
        padding: 0;
        border: 0;
+  font-size: 0;
 }
 
 #irssistats div.h1, #irssistats div.v1 {
index b19ebcc..db74b22 100644 (file)
@@ -73,6 +73,7 @@ body {
        margin: 0;
        padding: 0;
   border: 0;
+  font-size: 0;
 }
 
 #irssistats div.v1, #irssistats div.v2, #irssistats div.v3, #irssistats div.v4, #irssistats div.vm {
@@ -80,6 +81,7 @@ body {
        margin: 0;
        padding: 0;
        border: 0;
+  font-size: 0;
 }
 
 #irssistats div.h1 {
index 211ab04..c306040 100644 (file)
@@ -116,6 +116,7 @@ body {
        margin: 0;
        padding: 0;
   border: 0;
+  font-size: 0;
 }
 
 #irssistats div.v1, #irssistats div.v2, #irssistats div.v3, #irssistats div.v4, #irssistats div.vm {
@@ -123,6 +124,7 @@ body {
        margin: 0;
        padding: 0;
        border: 0;
+  font-size: 0;
 }
 
 #irssistats div.h1 {
index 941b36e..6706b61 100644 (file)
@@ -73,6 +73,7 @@ body {
        margin: 0;
        padding: 0;
   border: 0;
+  font-size: 0;
 }
 
 #irssistats div.v1, #irssistats div.v2, #irssistats div.v3, #irssistats div.v4, #irssistats div.vm {
@@ -80,6 +81,7 @@ body {
        margin: 0;
        padding: 0;
        border: 0;
+  font-size: 0;
 }
 
 #irssistats div.h1 {
index d8d47a4..a34612b 100644 (file)
@@ -75,6 +75,7 @@ body {
        margin: 0;
        padding: 0;
   border: 0;
+  font-size: 0;
 }
 
 #irssistats div.v1, #irssistats div.v2, #irssistats div.v3, #irssistats div.v4, #irssistats div.vm {
@@ -82,6 +83,7 @@ body {
        margin: 0;
        padding: 0;
        border: 0;
+  font-size: 0;
 }
 
 #irssistats div.h1 {
index ae6b2a8..7b5d209 100644 (file)
@@ -20,7 +20,7 @@
 #define MINWORDLENGTH 5
 
 /* irssistats */
-#define VERSION "0.5"
+#define VERSION "0.51"
 #define URL "http://royale.zerezo.com/irssistats/"
 
 /* Counters */
@@ -42,11 +42,12 @@ char *counters[NBCOUNTERS]={"C_SMILE","C_FROWN","C_EXCLAM","C_QUESTION","C_ME","
 
 /* Languages */
 #define NBLANGUAGES 8
-#define NBKEYS 38
+#define NBKEYS 39
 char *keys[NBLANGUAGES][NBKEYS+1][2]= /* first key used for language name and abbreviation */
 {
   { /* English language */
     { "English",      "en" },
+    { "CHARSET",      "ISO-8859-1" },
     { "HEADER",       "Statistics for %s by %s" },
     { "LEGEND",       "Legend" },
     { "LASTDAYS",     "Lastdays statistics" },
@@ -88,6 +89,7 @@ char *keys[NBLANGUAGES][NBKEYS+1][2]= /* first key used for language name and ab
   },
   { /* French language */
     { "French",       "fr" },
+    { "CHARSET",      "ISO-8859-1" },
     { "HEADER",       "Statistiques de %s par %s" },
     { "LEGEND",       "L&eacute;gende" },
     { "LASTDAYS",     "Statistiques des derniers jours" },
@@ -130,6 +132,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" },
+    { "CHARSET",      "ISO-8859-1" },
     { "HEADER",       "Statistiken f&uuml;r %s von %s" },
     { "LEGEND",       "Legende" },
     { "LASTDAYS",     "Statistik der letzten Tage" },
@@ -172,6 +175,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" },
+    { "CHARSET",      "ISO-8859-1" },
     { "HEADER",       "Estad&iacute;sticas de %s por %s" },
     { "LEGEND",       "Leyenda" },
     { "LASTDAYS",     "Estad&iacute;sticas de los &uacute;ltimos d&iacute;as" },
@@ -213,49 +217,52 @@ char *keys[NBLANGUAGES][NBKEYS+1][2]= /* first key used for language name and ab
   },
   { /* Polish language */
     /* contributed by Piotr Jarmuz <coreupper@yahoo.com> */
+    /* updated by Jakub Jankowski <shasta@atn.pl> */
     { "Polish",       "pl" },
-    { "HEADER",       "Statystyki dla %s przez %s" },
+    { "CHARSET",      "ISO-8859-2" },
+    { "HEADER",       "Statystyki dla %s zebrane przez %s" },
     { "LEGEND",       "Legenda" },
     { "LASTDAYS",     "Statystyki z ostatnich dni" },
-    { "TOPHOURS",     "Statystyki godzinne" },
-    { "TOPUSERS",     "Najaktywniejsi ludzie" },
-    { "OTHERS",       "Zostalo jeszcze %d nie sklasyfikowanych..." },
-    { "NBLINES",      "linie" },
+    { "TOPHOURS",     "Statystyki godzinowe" },
+    { "TOPUSERS",     "Najaktywniejsi" },
+    { "OTHERS",       "Jest jeszcze %d nie sklasyfikowanych..." },
+    { "NBLINES",      "linii" },
     { "NICK",         "nick" },
-    { "AVGLETTERS",   "litery/linie" },
+    { "AVGLETTERS",   "liter/liniê" },
     { "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" },
+    { "QUOTE",        "losowa wypowied¼" },
+    { "TOPUSERSTIME", "Najaktywniejsi wed³ug pory dnia" },
+    { "RANDTOPICS",   "Kilka topików" },
+    { "CHANGEDBY",    "ustawiony przez" },
+    { "NEWTOPIC",     "topik" },
+    { "RANDURLS",     "Kilka URL-i" },
+    { "POSTEDBY",     "poda³(a)" },
     { "POSTEDURL",    "URL" },
-    { "TOPWORDS",     "Najczestsze slowa" },
-    { "WORD",         "slowo" },
-    { "OCCURRENCES",  "wystapienia" },
-    { "BIGNUMBERS",   "Pare wielkich liczb..." },
-    { "NUMBERS",      "liczby" },
-    { "TIME",         "%d linii (%d dni) sparsowanych w %d sekund" },
+    { "TOPWORDS",     "Najczê¶ciej wystêpuj±ce s³owa" },
+    { "WORD",         "s³owo" },
+    { "OCCURRENCES",  "wyst±pieñ" },
+    { "BIGNUMBERS",   "Kilka wielkopomnych liczb..." },
+    { "NUMBERS",      "kategorie" },
+    { "TIME",         "Dokonano analizy %d linii (obejmuj±cych %d dni) w czasie %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" }
+    { "C_SMILE",      "jest czêsto szczesliwy(a) :)" },
+    { "C_FROWN",      "jest czêsto smutny(a) :(" },
+    { "C_EXCLAM",     "czêsto KRZYCZY!" },
+    { "C_QUESTION",   "zadaje du¿o pytañ?" },
+    { "C_ME",         "lubi u¿ywaæ /me" },
+    { "C_TOPIC",      "czêsto zmienia topik" },
+    { "C_MODE",       "czêsto zmienia tryby kana³u" },
+    { "C_KICK",       "lubi kopaæ" },
+    { "C_KICKED",     "czêsto wykopywany(a)" },
+    { "C_URL",        "podaje du¿o URL-i" },
+    { "C_JOIN",       "nie wie czy zostaæ, czy wyj¶æ" },
+    { "C_NICK",       "czêsto zmienia nick" },
+    { "C_MONOLOGUE",  "uwielbia monologi" }
   },
   { /* Finnish language */
     /* contributed by Antti Huopana <ahuopana@ratol.fi> */
     { "Finnish",      "fi" },
+    { "CHARSET",      "ISO-8859-1" },
     { "HEADER",       "Kanavan %s tilastot - %s" },
     { "LEGEND",       "Merkkien selitykset" },
     { "LASTDAYS",     "Viime päivien tilastot" },
@@ -298,6 +305,7 @@ char *keys[NBLANGUAGES][NBKEYS+1][2]= /* first key used for language name and ab
   { /* Italian language */
     /* contributed by Coviello Giuseppe <giuseppecoviello@tin.it> <http://coviello.altervista.org> */
     { "Italian",      "it" },
+    { "CHARSET",      "ISO-8859-1" },
     { "HEADER",       "Statistiche per il canale %s di %s" },
     { "LEGEND",       "Legenda" },
     { "LASTDAYS",     "Statistiche degli ultimi giorni" },
@@ -340,6 +348,7 @@ char *keys[NBLANGUAGES][NBKEYS+1][2]= /* first key used for language name and ab
   { /* Dutch language */
     /* contributed by Jeroen Ubbink <crasp@blackbyte.nl> */
     { "Dutch",        "nl" },
+    { "CHARSET",      "ISO-8859-1" },
     { "HEADER",       "Statistieken voor %s door %s" },
     { "LEGEND",       "Legenda" },
     { "LASTDAYS",     "Statistieken van de laatste dagen" },
@@ -421,14 +430,14 @@ struct
   char nick[MAXNICKLENGTH];
   char url[MAXLINELENGTH];
   char shorturl[MAXQUOTELENGTH+1];
-} urls[5];
+} urls[NBURLS];
 int nburls=0;
 
 struct
 { 
   char nick[MAXNICKLENGTH];
   char topic[MAXQUOTELENGTH+1];
-} topics[5];
+} topics[NBTOPICS];
 int nbtopics=0;
 
 struct
@@ -469,6 +478,11 @@ void findwords(char *message)
       if (pos->next[(int)c]==NULL)
       {
         tmp=malloc(sizeof(struct letter));
+        if (tmp==NULL)
+        {
+          fprintf(stderr, "findwords(): malloc failure\n");
+          exit(1);
+        }
         tmp->nb=0;
         for (i=0;i<26;i++) tmp->next[i]=NULL;
         pos->next[(int)c]=tmp;
@@ -790,7 +804,7 @@ void gen_xhtml(char *xhtmlfile)
     fprintf(fic,"<!-- Generated by irssistats %s : %s -->\n\n",VERSION,URL);
     fprintf(fic,"<html>\n\n<head>\n<title>");
     fprintf(fic,L("HEADER"),channel,maintainer);
-    fprintf(fic,"</title>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\" />\n");
+    fprintf(fic,"</title>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=%s\" />\n",L("CHARSET"));
     if (refresh_time)
       fprintf(fic,"<meta http-equiv=\"Refresh\" content=\"%d\" />\n",refresh_time);
     fprintf(fic,"<link rel=\"stylesheet\" type=\"text/css\" href=\"%s.css\" />\n",theme);
@@ -818,7 +832,7 @@ void gen_xhtml(char *xhtmlfile)
   for (i=30;i>=0;i--) if (lastdays[i].lines>max) max=lastdays[i].lines;
   for (i=30;i>=0;i--)
   {
-    fprintf(fic,"<td align=\"center\" valign=\"bottom\"><small>%d</small>",lastdays[i].lines); /* width=\"15\" */
+    fprintf(fic,"<td align=\"center\" valign=\"bottom\"><small>%d</small>",lastdays[i].lines);
     for (j=0;j<4;j++) if (lastdays[i].hours[j]!=0) fprintf(fic,"<div class=\"v%d\" style=\"height:%dpx\"></div>",j+1,150*lastdays[i].hours[j]/max);
     fprintf(fic,"</td>\n");
   }
@@ -833,7 +847,7 @@ void gen_xhtml(char *xhtmlfile)
   for (i=0;i<24;i++) if (hours[i]>max) max=hours[i];
   for (i=0;i<24;i++)
   {
-    fprintf(fic,"<td align=\"center\" valign=\"bottom\"><small>%.1f%%</small>",lines!=0?(float)100*hours[i]/lines:0); /* width=\"15\" */
+    fprintf(fic,"<td align=\"center\" valign=\"bottom\"><small>%.1f%%</small>",lines!=0?(float)100*hours[i]/lines:0);
     if (hours[i]!=0) fprintf(fic,"<div class=\"v%d\" style=\"height:%dpx\"></div>",i/6+1,150*hours[i]/max);
     fprintf(fic,"</td>\n");
   }
index d618512..1051de4 100644 (file)
@@ -27,7 +27,7 @@ language : fr
 # Theme (colors) to use for the statistics
 # In fact this is the name of the CSS file to include.
 # This option has no effect if you use a custom header : you'll have to include the CSS yourself.
-theme : orange
+theme : default
 
 # Specifies the refresh time in seconds (0 to disable)
 # This option has no effect if you use a custom header : you'll have to include the refresh code yourself.