(*************************************************** Ant Movie Catalog importation script www.antp.be/software/moviecatalog/ [Infos] Authors=Legrad Title=Planeta Comic Description= Site=www.planetacomic.net Language=ES Version=1.0 Requires=3.5.0 Comments= License= GetInfo=1 [Options] ***************************************************) program PlanetaComic; var MovieName: string; MovieURL: string; //------------------------------------------------------------------------------------ function BorraComillas(var S: string): string; var n,len, tag: Integer; c: char; t: String; begin tag := 0; t := ''; len := length(s); for n :=1 to len do begin c := Copy(s,n,1); if c = '''' then c := ' '; t := t + c; end s := t; result := t; end; //------------------------------------------------------------------ function FindLine(Pattern: string; List: TStringList; StartAt: Integer): Integer; var i: Integer; begin Result := -1; if StartAt < 0 then StartAt := 0; for i := StartAt to List.Count-1 do if Pos(Pattern, List.GetString(i)) <> 0 then begin Result := i; Break; end; end; //------------------------------------------------------------------------------------ function TextBetween(var S: string; StartTag: string; EndTag: string): string; var InitialPos: Integer; begin InitialPos := Pos(StartTag, S); if InitialPos = 0 then result := '' else begin Delete(S, 1, InitialPos + Length(StartTag) - 1); InitialPos := Pos(EndTag, S); if InitialPos = 0 then result := S else begin result := copy(S, 1, InitialPos - 1); Delete(S, 1, InitialPos + 1); end; end; end; //------------------------------------------------------------------------------------ function DeleteTags(var S: string): string; var n,len, tag: Integer; c: char; t: String; begin tag := 0; t := ''; len := length(s); for n :=1 to len do begin c := Copy(s,n,1); if c = #9 then c := ' '; if(tag=1) then begin if(c='>') then tag := 0; continue; end else begin if(c='<') then begin tag := 1; continue; end; t := t + c; end; end s := t; result := t; end; //------------------------------------------------------------------------------------ procedure AnalyzePage(Address: string); var strPage, MovieAddr, MovieTitle, MovieDate, MovieID, Movie: string; BeginPos, EndPos: Integer; BeginPoss, EndPoss: Integer; begin strPage := GetPage(Address); BeginPos := Pos(' Resultados Búsqueda', strPage); if(BeginPos > -1)then begin PickTreeClear; Delete(strPage, 1, BeginPos); BeginPos := Pos('', strPage); MovieId := Copy(strPage,+28, EndPos-28); MovieAddr := 'http://www.planetacomic.net/dvd_detalle.asp?Id=' + MovieId; BeginPoss := Pos('&cat=',strPage); EndPoss := Pos('', strPage); MovieTitle := Copy(strPage,BeginPoss, EndPoss); MovieTitle := TextBetween(MovieTitle , '>', ' '); MovieTitle := AnsiUpFirstLetter(MovieTitle); DeleteTags(MovieTitle); PickTreeAdd(MovieTitle, MovieAddr); BeginPos := Pos(' 0 then begin Item := copy(Page.Text, pos('href="dvd_detalle.asp?Id=',Page.Text), length(Page.Text)); Item := TextBetween (Item, '">', ''); Item := StringReplace(Item , #13#10, ''); Item := StringReplace(Item , ' ', ''); DeleteTags (Item); Item := AnsiUpFirstLetter(Item ); Item := Trim(Item ); HTMLDecode(Item); SetField(fieldTranslatedTitle, Trim (Item)); end; // Titulo Original LineNr := FindLine('Título original:', Page, 0); if LineNr <> -1 then begin Line := Page.GetString(LineNr); Item := TextBetween (Line, 'Título original:', ''); DeleteTags (Item); Item := AnsiUpFirstLetter(Item ); HTMLDecode(Item); SetField(fieldOriginalTitle, Trim (Item)); end; // productor LineNr := FindLine('Productora: ', Page, 0); if LineNr <> -1 then begin Line := Page.GetString(LineNr); Item := TextBetween (Line, 'Productora: ', ''); DeleteTags (Item); Item := AnsiUpFirstLetter(Item ); HTMLDecode(Item); SetField(fieldProducer, Trim (Item)); end; // Categoria LineNr := FindLine('class="titulo">Género:', Page, 0); if LineNr > 0 then begin Item := copy(Page.Text, pos('class="titulo">Género:',Page.Text), length(Page.Text)); Item := TextBetween (Item, '/">', ''); Item := StringReplace(Item , #13#10, ''); Item := StringReplace(Item , ' ', ''); DeleteTags (Item); Item := AnsiUpFirstLetter(Item ); Item := Trim(Item ); HTMLDecode(Item); SetField(fieldCategory, Trim (Item)); end; // pais LineNr := FindLine('Nacionalidad:', Page, 0); if LineNr > 0 then begin Item := copy(Page.Text, pos('Nacionalidad:',Page.Text), length(Page.Text)); Item := TextBetween (Item, '', '
'); DeleteTags (Item); Item := AnsiUpFirstLetter(Item ); Item := Trim(Item ); HTMLDecode(Item); SetField(fieldCountry, Trim (Item)); end; // director LineNr := FindLine('Dirección: ', Page, 0); if LineNr > 0 then begin Item := copy(Page.Text, pos('Dirección: ',Page.Text), length(Page.Text)); Item := TextBetween (Item, 'Dirección: ', '
'); DeleteTags (Item); Item := AnsiUpFirstLetter(Item ); Item := Trim(Item ); HTMLDecode(Item); SetField(fieldDirector, Trim (Item)); end; // Duracion LineNr := FindLine('Duración:', Page, 0); if LineNr > 0 then begin Item := copy(Page.Text, pos('Duración:',Page.Text), length(Page.Text)); Item := TextBetween (Item, 'Duración:', 'min.'); Item := Trim(Item ); HTMLDecode(Item); SetField(fieldLength, Trim (Item)); end; // Calificación LineNr := FindLine('
', Page, 0); if LineNr > 0 then begin Item := copy(Page.Text, pos('
',Page.Text), length(Page.Text)); Item := TextBetween (Item, '
', '
'); Item := StringReplace(Item , #13#10, ''); Item := StringReplace(Item , ' ', ''); DeleteTags (Item); Item := Trim(Item ); HTMLDecode(Item); SetField(fieldRating, Trim (Item)); end; // Reparto LineNr := FindLine('Actuación: ', Page, 0); if LineNr > 0 then begin Item := copy(Page.Text, pos('Actuación: ',Page.Text), length(Page.Text)); Item := TextBetween (Item, 'Actuación: ', '
'); //Item := StringReplace(Item , ', ',#13#10); DeleteTags (Item); Item := AnsiUpFirstLetter(Item ); Item := Trim(Item ); HTMLDecode(Item); SetField(fieldActors, Trim (Item)); end; // sinopsis LineNr := FindLine('Información', Page, 0); if LineNr > 0 then begin Item := copy(Page.Text, pos('Información',Page.Text), length(Page.Text)); Item := TextBetween (Item, '

', ''); Item := StringReplace(Item , #13#10, ''); Item := StringReplace(Item , ' ', ''); DeleteTags (Item); Item := AnsiUpFirstLetter(Item ); Item := Trim(Item ); HTMLDecode(Item); SetField(fieldDescription, Trim (Item)); end; // comentarios LineNr := FindLine('class="titulo">Premios:', Page, 0); if LineNr > 0 then begin Item := copy(Page.Text, pos('class="titulo">Premios:',Page.Text), length(Page.Text)); Item := TextBetween (Item, 'class="cuerpo">', '