#define MINWORDLENGTH 5
/* irssistats */
-#define VERSION "0.5"
+#define VERSION "0.51"
#define URL "http://royale.zerezo.com/irssistats/"
/* Counters */
/* 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" },
},
{ /* French language */
{ "French", "fr" },
+ { "CHARSET", "ISO-8859-1" },
{ "HEADER", "Statistiques de %s par %s" },
{ "LEGEND", "Légende" },
{ "LASTDAYS", "Statistiques des derniers jours" },
{ /* German language */
/* contributed by Valentin Gelhorn <valentin.gelhorn@web.de> */
{ "German", "de" },
+ { "CHARSET", "ISO-8859-1" },
{ "HEADER", "Statistiken für %s von %s" },
{ "LEGEND", "Legende" },
{ "LASTDAYS", "Statistik der letzten Tage" },
{ /* Spanish language */
/* contributed by Alex <ainaker@gmx.net> */
{ "Spanish", "es" },
+ { "CHARSET", "ISO-8859-1" },
{ "HEADER", "Estadísticas de %s por %s" },
{ "LEGEND", "Leyenda" },
{ "LASTDAYS", "Estadísticas de los últimos días" },
},
{ /* 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" },
{ /* 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" },
{ /* 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" },
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
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;
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);
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");
}
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");
}