/*

findadd.c


*/

#include <stdio.h>

#define YES 1
#define NO  0
#define URL "http://themes.netfx-2000.net/images/shots/wmaker/"

/* Grobal */
FILE *out, *out2;
char data[2000], keyword[180], getword[180], old[200][80];
int  sum;

main()
{
FILE *inp;
char command[80], buf[80], fname[40], htmlfile[40];

/* make list_jpg */

sprintf(command, "ls *.jpg>list_jpg");
system(command);
sprintf(fname, "list_jpg");
if((inp=fopen(fname, "r"))!=NULL){
    sum=0;
    while(fgets(buf,80,inp)!=NULL){
        buf[strlen(buf)-1]='\0';
        strcpy(old[sum++], buf);
        }
    fclose(inp);
    }
else{
    printf("Can't open <%s>.\n", fname);
    exit(0);
    }

sprintf(command, "ls *.html>list_htm");
system(command);
sprintf(fname, "list_htm");
if((inp=fopen(fname, "r"))==NULL){
    printf("Can't open <%s>.\n", fname);
    exit(0);
    }
    
sprintf(fname, "list_add");
if((out=fopen(fname, "w"))==NULL){
    printf("Can't open <%s>.\n", fname);
    exit(0);
    }

strcpy(keyword, "=\"../../images/shots/wmaker/");
while(fgets(htmlfile,40,inp)!=NULL){
    htmlfile[strlen(htmlfile)-1]='\0';
    find(htmlfile);
    }
sprintf(command, "cp list_htm list_old");
system(command);
}

find(char *listfile)
{
FILE *inp;
int  i, j, key;
char fname[80], link[80];

sprintf(fname, "%s",listfile);
if((inp=fopen(fname, "r"))==NULL){
    printf("%s was not downloaded.\n", listfile);
    return;
    }
while(fgets(data,2000,inp)!=NULL){
    if((i=search())>=0){
        for(i=i+strlen(keyword), j=0;;i++, j++){
            if(data[i]=='\"')
                break;
            link[j]=data[i];
            }
        link[j]='\0';
        key=NO;
        for(i=0; i<sum; i++){
            if(strcmp(link, old[i])==0){
                key=YES;
                break;
                }
            }
        if(key==NO)
            fprintf(out, "%s%s\n", URL, link);
        }
    unlink(fname);
    }
}

search()
{
int  i, j, key;
char buf[180];

strcpy(getword, keyword);

for(i=0; data[i]!='\n'; i++){
    key=YES;
    for(j=0; getword[j]!='\0'; j++){
        if(getword[j]=='?')
            getword[j]=data[i+j];
        if(getword[j]!=data[i+j]){
            key=NO; break;
            }
        }
    if(key==YES){
        getword[j]='\0';
        return i;
        }
    }
return -1;
}