/**************************************************** * Galerier * * (C) 2005 Jaime Anguiano Olarra * ****************************************************/ #include #include #include #include #include #include #define MAX_LINIEN 300 char* get_bilder (void); char* get_link (char* datei, char* url, char* name); void findet_bildere (char** texte); int main (int argc, char** argv) { char* linie; char** texte, **texte_anfang; FILE* fout; time_t* t; texte = texte_anfang = (char**) malloc (sizeof(char*) * MAX_LINIEN), t = (time_t*) malloc (sizeof(time_t)); if (fopen ("output.html", "r") != NULL) { printf ("Error: du hast schon ein andere output.html Datei!\nExiting...\n"); return -1; } printf ("Galerier rennen!...\n"), time (t); while (1) { linie = (char*) readline (": "); if (!strcmp(linie, "raus")) { printf ("Danke viel mal!\n"), free ((void*) linie), *texte = NULL; break; } if (!strcmp(linie, "help") || !strcmp(linie, "hilfe")) { printf ("man readline\n"); continue; } if (!strcmp(linie, "_bilder")) linie = get_bilder (); *texte++ = linie; } findet_bildere (texte); texte = texte_anfang; fout = fopen ("output.html", "w"); fputs ("", fout); fputs (asctime(localtime(t)), fout); fputs ("\n\nHeute: ", fout); fputs (asctime(localtime(t)), fout); while (*texte != NULL) fputs (strcat(*texte++,"
\n"), fout); fputs ("\n", fout); fflush (fout); fclose (fout); return 0; } char* get_bilder (void) { char* datei, *url, *link, *name; datei = readline ("Bilder Datei: "); url = readline ("Geht nach: "); name = readline ("Name: "); if ((name == NULL) || (strlen(name) < 2)) name = datei; return (link = get_link (datei, url, name)); } char* get_link (char* datei, char* url, char* name) { char* link; link = strdup (datei); link = (char*) realloc (link, 256); link = strcat (link, "
"), ""); return (link); } void findet_bildere (char** texte) { struct dirent **namelist; int n, ctr; char* l; ctr = 0; n = scandir (".", &namelist, 0, alphasort); if (n > 0) { while (ctr < n) { if (NULL != strstr(namelist[ctr]->d_name, ".jpg")) { *texte++ = get_link (namelist[ctr]->d_name, namelist[ctr]->d_name, namelist[ctr]->d_name); printf (": Was sagen wir fuer %s?", namelist[ctr]->d_name); while (1) { l = readline (": "); if (!strcmp(l, "raus")) break; *texte++ = l; } } ctr++; } } }