#include #include #define LF 10 #define CR 13 #define SOURCE "/home/jinsuk/WebDoc/AnimalPicturesArchive.com/animal/Keywords/han.dat" #define HTML_SOURCE "/home/jinsuk/WebDoc/AnimalPicturesArchive.com/animal/HTMLSrc/han_dic.html" #define HTML_DIR "/home/jinsuk/WebDoc/AnimalPicturesArchive.com/animal/Dic" #define THUMNAIL_DIR "/home/jinsuk/WebDoc/AnimalPicturesArchive.com/animal/PIX" /* this is for URL */ #define WEB_DIR "Dic" #define IMG_DIR "/animal/PIX" #define BUTTON_DIR "/img" #define SOUND_DIR "/animal/SOUND" #define MOVIE_DIR "/animal/AnimMovie" #define SEARCH_CGI "/animal/APAsrch3.cgi" typedef struct { char han[100]; char syn[100]; char eng[100]; char sci[100]; char dsc[65536]; char snd[1024]; char mov[1024]; } DATA; main() { FILE *fin; DATA dat; char line[256]; char buf[256]; int cnt; int i; if ( (fin = fopen(SOURCE, "r")) == NULL ) { printf("Can't open source file [%s]\n", SOURCE); exit(0); } dat.eng[0] = '\0'; dat.syn[0] = '\0'; dat.sci[0] = '\0'; dat.snd[0] = '\0'; dat.mov[0] = '\0'; dat.dsc[0] = '\0'; cnt = 0; while (fgets(line, 256, fin)) { if (!strncasecmp(line, "#Han=", 5)) { if (cnt > 0) { makeonehtml(dat); dat.eng[0] = '\0'; dat.syn[0] = '\0'; dat.sci[0] = '\0'; dat.snd[0] = '\0'; dat.mov[0] = '\0'; dat.dsc[0] = '\0'; strcpy(dat.han, line+5); trim(dat.han); } cnt++; } else if (!strncasecmp(line, "#Eng=", 5)) { strcpy(dat.eng, line+5); trim(dat.eng); } else if (!strncasecmp(line, "#Sci=", 5)) { strcpy(dat.sci, line+5); trim(dat.sci); } else if (!strncasecmp(line, "#Syn=", 5)) { strcpy(dat.syn, line+5); trim(dat.syn); } else if (!strncasecmp(line, "#mov=", 5)) { strcpy(dat.mov, line+5); trim(dat.mov); } else if (!strncasecmp(line, "#snd=", 5)) { strcpy(dat.snd, line+5); trim(dat.snd); } else if (!strncasecmp(line, "#dsc=", 5)) strcpy(dat.dsc, line+5); else if (!strncasecmp(line, "#Update=Y", 9)) 1; else if ( !strcmp(line, "\n") || !strcmp(line, " \n") || !strcmp(line, "\r\n") || !strcmp(line, " \n") ) strcat(dat.dsc, "

"); else strcat(dat.dsc, line); } makeonehtml(dat); fclose(fin); } makeonehtml(d) DATA d; { FILE *fp, *fhtml; char buf[256]; char line[1024]; char *ptr; char *ptr2; int i; sprintf(buf, "%s/%s.html", HTML_DIR, d.han); if ( (fp = fopen(buf, "w")) == NULL ) { printf("[%s] ÆÄÀÏÀ» ¸¸µé ¼ö ¾ø½À´Ï´Ù.\n", buf); return (0); } if ( (fhtml = fopen(HTML_SOURCE, "r")) == NULL ) { printf("HTML SOURCE [%s] ÆÄÀÏÀ» ¸¸µé ¼ö ¾ø½À´Ï´Ù.\n", HTML_SOURCE); return(0); } while (fgets(line, 1024, fhtml)) { if ( (ptr=(char *)strstr(line, "__HAN_NAME_HERE__")) != NULL) { *ptr = '\0'; fprintf(fp, "%s%s%s", line, d.han, ptr+17); } else if ( (ptr=(char *)strstr(line, "__SYN_NAME_HERE__")) != NULL) { *ptr = '\0'; if (strlen(d.syn) > 0) fprintf(fp, "%s(%s)%s", line, d.syn, ptr+17); else fprintf(fp, "%s%s", line, d.syn, ptr+17); } else if ( (ptr=(char *)strstr(line, "__ENG_NAME_HERE__")) != NULL) { *ptr = '\0'; fprintf(fp, "%s", line); strcpy(buf, d.eng); ptr2 = (char *) strstr(buf, ","); if (ptr2 != NULL) { *ptr2 = '\0'; trim(buf); } if (buf[0] == '*') fprintf(fp, "%s", buf+1); else fprintf(fp, "%s", buf); fprintf(fp, "%s", ptr+17); } else if ( (ptr=(char *)strstr(line, "__ENG_LINK_HERE__")) != NULL) { *ptr = '\0'; fprintf(fp, "%s", line); strcpy(buf, d.eng); while ( ptr2 = (char *) strstr(buf, ",") ) { *ptr2 = '\0'; if (buf[0] == '*') fprintf(fp, "%s, \n", buf+1); else { for (i=0; i < strlen(buf); i++) if (buf[i] == ' ') buf[i] = '+'; fprintf(fp, "", SEARCH_CGI, buf); for (i=0; i < strlen(buf); i++) if (buf[i] == '+') buf[i] = ' '; fprintf(fp, "%s, \n", buf); } strcpy(buf, ptr2+1); trim(buf); } if (buf[0] == '*') fprintf(fp, "%s
\n", buf+1); else { for (i=0; i < strlen(buf); i++) if (buf[i] == ' ') buf[i] = '+'; fprintf(fp, "", SEARCH_CGI, buf); for (i=0; i < strlen(buf); i++) if (buf[i] == '+') buf[i] = ' '; fprintf(fp, "%s
\n", buf); } fprintf(fp, "%s", ptr+17); } else if ( (ptr=(char *)strstr(line, "__LATIN_NAME_HERE__")) != NULL) { *ptr = '\0'; fprintf(fp, "%s%s%s", line, d.sci, ptr+19); } else if ( (ptr=(char *)strstr(line, "__DESCRIPTION_HERE__")) != NULL) { *ptr = '\0'; fprintf(fp, "%s", line); PrintDescription(fp, d.dsc); fprintf(fp, "%s", ptr+20); } else if ( (ptr=(char *)strstr(line, "__SOUND_HERE__")) != NULL) { *ptr = '\0'; fprintf(fp, "%s", line); if (strlen(d.snd) > 0) { i = 1; strcpy(buf, d.snd); while ( (char *) ptr2 = (char *)strstr(buf, ",") ) { *ptr2 = '\0'; fprintf(fp, " %d ", SOUND_DIR, buf, BUTTON_DIR, i++); strcpy(buf, ptr2+1); trim(buf); } fprintf(fp, " %d ", SOUND_DIR, buf, BUTTON_DIR, i++); } fprintf(fp, "%s", ptr+14); } else if ( (ptr=(char *)strstr(line, "__MOVIE_HERE__")) != NULL) { *ptr = '\0'; fprintf(fp, "%s", line); if (strlen(d.mov) > 0) { i = 1; strcpy(buf, d.mov); while ( (char *) ptr2 = (char *)strstr(buf, ",") ) { *ptr2 = '\0'; fprintf(fp, " %d ", MOVIE_DIR, buf, BUTTON_DIR, i++); strcpy(buf, ptr2+1); trim(buf); } fprintf(fp, " %d ", MOVIE_DIR, buf, BUTTON_DIR, i++); } fprintf(fp, "%s", ptr+14); } else if ( (ptr=(char *)strstr(line, "__THUMBNAIL_IMAGE__")) != NULL) { *ptr = '\0'; fprintf(fp, "%s", line); strcpy(buf, d.eng); for (i=0; i < strlen(buf); i++) { if (buf[i] == ',') { buf[i] = '\0'; trim(buf); break; } else if (buf[i] == ' ') buf[i] = '+'; } if ( mkchkImageName(buf) ) /* buf contains + chars in the place of space */ fprintf(fp, "%s/%s alt=\"%s\"", IMG_DIR, buf, d.han); else fprintf(fp, "%s/no.gif alt=\"ÁغñµÈ±×¸² ¾øÀ½\"", BUTTON_DIR); fprintf(fp, "%s", ptr+19); } else if ( (ptr=(char *)strstr(line, "__FILE_NAME_HERE__")) != NULL) { *ptr = '\0'; fprintf(fp, "%s", line); fprintf(fp, "%s/%s.html", WEB_DIR, d.han); fprintf(fp, "%s", ptr+18); } else fprintf(fp, "%s", line); } fclose(fp); fclose(fhtml); } int PrintDescription(FILE *fp, char *s) { int i, len; len = strlen(s); if (len <=0) return 0; for (i = 0; i < len; i++) { if (s[i] == '[') fprintf(fp, "["); else if (s[i] == ']') fprintf(fp, "]"); else if (s[i] == 'p' && s[i-1] == '<' && s[i+1] == '>') fprintf(fp, "p align=justify"); else fputc(s[i], fp); } return 0; } int mkchkImageName(s) char *s; { int i; char *ptr; char buf[256]; trim(s); (int) s[0] = toupper((int) s[0]); for (i=0; i