(*************************************************** Ant Movie Catalog importation script www.antp.be/software/moviecatalog/ [Infos] Authors=Legrad , GNBusetto & Bad4u Title=DVDmovies (AR) Description= Site=www.dvdmovies.com.ar Language=ES Version=1.10 Requires=3.5.0 Comments= License= GetInfo=1 [Options] ***************************************************) program DVDmovies; var MovieName: string; MovieURL: string; //------------------------------------------------------------------ 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,MovieTitle1, MovieDate, MovieID, Movie: string; BeginPos, EndPos: Integer; BeginPoss, EndPoss: Integer; begin strPage := GetPage('http://www.dvdmovies.com.ar'); strPage := GetPage(Address); BeginPos := Pos('Su búsqueda...', strPage); if(BeginPos > -1)then begin PickTreeClear; Delete(strPage, 1, BeginPos); BeginPos := Pos('',strPage); EndPoss := Pos(' ', strPage); MovieTitle := Copy(strPage,BeginPoss, EndPoss); HTMLDecode(MovieTitle); MovieTitle := TextBetween(MovieTitle ,'"_self">', ' '); MovieTitle := AnsiLowerCase(MovieTitle); MovieTitle := AnsiUpFirstLetter(MovieTitle); /// PickTreeAdd(MovieTitle, MovieAddr); BeginPos := Pos('', 'Protagonistas:
', Page, 0); if LineNr <> -1 then begin Item := copy(Page.Text, pos('Protagonistas:
',Page.Text), length(Page.Text)); Item := TextBetween (Item, '"Medio">', '
'); Item := StringReplace(Item , '
', ', '); Item := Trim(Item ); DeleteTags(Item); HTMLDecode(Item); Posinic := length(Item); Delete(Item, Posinic -7 , Posinic); SetField(fieldActors, Trim (Item)); end; // director LineNr := FindLine('Director:', Page, 0); if LineNr <> -1 then begin Item := copy(Page.Text, pos('Director:',Page.Text), length(Page.Text)); Item := TextBetween (Item, '"Medio">', '
'); Item := StringReplace(Item , '', ', '); Item := Trim(Item ); DeleteTags(Item); HTMLDecode(Item); Posinic := length(Item); Delete(Item, Posinic -7 , Posinic); SetField(fieldDirector, Trim (Item)); end; // Productor LineNr := FindLine('Producida por ', Page, 0); if LineNr <> -1 then begin Item := copy(Page.Text, pos('Producida por ',Page.Text), length(Page.Text)); Item := TextBetween (Item, 'Producida por ', '.'); Item := StringReplace(Item , '/', ', '); Item := StringReplace(Item , #13#10, ''); Item := Trim(Item ); DeleteTags(Item); HTMLDecode(Item); SetField(fieldProducer, Trim (Item)); end; // Formato de video LineNr := FindLine('Video:', Page, 0); if LineNr <> -1 then begin Item := copy(Page.Text, pos('Video:',Page.Text), length(Page.Text)); Item := TextBetween (Item, 'Video:', 'Audio:'); Item := StringReplace(Item , #13#10, ''); DeleteTags(Item); HTMLDecode(Item); SetField(fieldVideoFormat, Trim (Item)); end; // Subtitulos LineNr := FindLine('Subt', Page, 0); if LineNr <> -1 then begin Item := copy(Page.Text, pos('Subt',Page.Text), length(Page.Text)); Item := TextBetween (Item, 'Subt', '

'); Item := StringReplace(Item , #13#10, ''); Item := StringReplace(Item , ' ', ', '); DeleteTags(Item); HTMLDecode(Item); Item := StringReplace(Item , 'ítulos:', ''); Posinic := length(Item); Delete(Item, Posinic -10 , Posinic); SetField(fieldSubtitles, Trim (Item)); end; // Lenguaje LineNr := FindLine('Audio: ', Page, 0); if LineNr <> -1 then begin Item := copy(Page.Text, pos('Audio:',Page.Text), length(Page.Text)); Item := TextBetween (Item, 'Audio:', '

'); Delete(Item, 1, 1); Item := StringReplace(Item , '
', ', '); Item := StringReplace(Item , #13#10, ''); DeleteTags(Item); Delete( Item, 1, 1); HTMLDecode(Item); SetField(fieldLanguages, 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: ', 'minutos'); SetField(fieldLength, Trim (Item)); end; //********************************************************************************** // Extras: Comments := ''; LineNr := FindLine('

Extras:
', Page, 0); if LineNr <> -1 then begin Item := copy(Page.Text, pos('

Extras:
',Page.Text), length(Page.Text)); Item := TextBetween (Item, '

Extras:
', ''); Item := StringReplace(Item , #13#10, ''); DeleteTags (Item); Item := Trim(Item); HTMLDecode(Item); Comments := Comments + 'Extras: ' + Item +#13#10; end; // Capitulos: LineNr := FindLine('Capítulos: ', Page, 0); if LineNr <> -1 then begin Item := copy(Page.Text, pos('Capítulos: ',Page.Text), length(Page.Text)); Item := TextBetween (Item, 'Capítulos: ', '
'); DeleteTags (Item); Item := Trim(Item); HTMLDecode(Item); Comments := Comments + 'Capítulos: ' + Item +#13#10; end; // Origen del producto LineNr := FindLine('Origen Producto:
', Page, 0); if LineNr <> -1 then begin Item := copy(Page.Text, pos('Origen Producto:
',Page.Text), length(Page.Text)); Item := TextBetween (Item, 'Origen Producto:
', ''); Item := StringReplace(Item , #13#10,''); DeleteTags (Item); Item := Trim(Item); HTMLDecode(Item); Comments := Comments + 'Origen del producto: '+Item + #13#10 ; end; // Lanzamiento LineNr := FindLine('Lanzamiento', Page, 0); if LineNr <> -1 then begin Item := copy(Page.Text, pos('Lanzamiento',Page.Text), length(Page.Text)); Item := TextBetween (Item, 'size="1">', ''); Item := StringReplace(Item , #13#10,''); DeleteTags (Item); Item := Trim(Item); HTMLDecode(Item); Comments := Comments + 'Lanzamiento: '+Item + #13#10 ; end; // Puntuación LineNr := FindLine('size="1">Puntaje', Page, 0); if LineNr <> -1 then begin Item := copy(Page.Text, pos('size="1">Puntaje',Page.Text), length(Page.Text)); Item := TextBetween (Item, 'size="1">Puntaje', '
', Page, 0); if LineNr <> -1 then begin Item := copy(Page.Text, pos('Contenido DVD:
',Page.Text), length(Page.Text)); Item := TextBetween (Item, 'Contenido DVD:
', '

'); Item := StringReplace(Item , #13#10,''); DeleteTags (Item); Item := Trim(Item); HTMLDecode(Item); Comments := Comments + 'Contenido del DVD: '+Item + #13#10 ; end; // Características LineNr := FindLine('Características:', Page, 0); if LineNr <> -1 then begin Item := copy(Page.Text, pos('Características:',Page.Text), length(Page.Text)); Item := TextBetween (Item, 'Características:', '

'); Item := StringReplace(Item , #13#10,''); DeleteTags (Item); Item := Trim(Item); HTMLDecode(Item); Comments := Comments + 'Características: '+Item + #13#10 ; end; SetField(fieldComments, Comments); // Caratula LineNr := FindLine('