(*************************************************** Ant Movie Catalog importation script www.antp.be/software/moviecatalog/ [Infos] Authors=fulvio53s03 Title=35mm.it Description=Get movie info from 35mm.it Site=http://www.35mm.it Language=IT Version=13.10.2009 Requires=3.5.0 Comments=| License= GetInfo=1 [Options] ***************************************************) program New35mm; uses Stringutils1; const UrlBase = 'http://www.35mm.it'; // QueryBase = UrlBase + '/search/?string='; QueryFinale = UrlBase + '/film/scheda/popup/finale.jsp?idFilm='; var MovieUrl, FilmUrl: string; MovieName, OriginalStr, TranslatedStr, PageStr: string; UsePage, OldField, NewField: string; EndChar, StartChar: string; LgthUsePage, LengthRaw, StartPos, EndPos: integer; function MyTrim(Value: string):string; var ExitLoop: Boolean; NewField, OldField: String; OldLgthValue, NewLgthValue: integer; begin NewField := ' '; OldField := #9; value := StringReplace(Value, OldField, NewField); OldField := #10; value := StringReplace(Value, OldField, NewField); OldField := #13; value := StringReplace(Value, OldField, NewField); OldField := ' '; ExitLoop := False; OldLgthValue := length(Value); repeat value := StringReplace(Value, OldField, NewField); NewLgthValue := length(Value); if OldLgthValue = NewLgthValue then ExitLoop := True else OldLgthValue := NewLgthValue; until ExitLoop; Result := ''; HTMLRemoveTags(Value); Result := Value; end; // ----------------------- // ANALYZE MOVIE DATA PAGE // IN: none // OUT: set Ant fields // ----------------------- procedure AnalyzeMoviePage; var i, h, m: integer; Duration, Description, Cast, TempStr, TempImg, hh, mm: string; TempField, Prova: string; LgthImgName: integer; begin // Get packed title main page PageStr := Getpage(FilmUrl); PageStr := UTF8Decode(PageStr); // Get film image tempImg := textBetween(PageStr, '
', '
'); tempImg := textBetween(tempImg, '', ''); tempImg := textBetween(tempImg, 'cover', '<'); TempField := FullTrim(TempField); SetField(fieldCategory, TempField); // Duration field TempField := textBetween(PageStr, 'Durata:','min'); TempField := FullTrim(TempField); SetField(fieldLength, tempField); // Director Field Regia: TempField := textBetween(PageStr, 'Regia:',''); TempField := TextBetween(tempField, '">', '<'); TempField := FullTrim(TempField); SetField(fieldDirector, TempField); // YearField TempField := textBetween(PageStr, 'Anno di produzione:',''); TempField := FullTrim(TempField); SetField(fieldYear, TempField); // Producer Field TempField := textBetween(PageStr, 'Distribuzione:',''); TempField := TextBetween(tempField, '">', '<'); SetField(fieldProducer, TempField); // Movie URL field SetField(fieldURL, MovieUrl); // Description Field TempField := textBetween(PageStr, '
','
'); TempField := MyTrim(TempField); TempField := FullTrim(TempField); SetField(fieldDescription, TempField); // Comments Field TempField := textBetween(PageStr, 'Distribuzione:',''); TempField := textBetween(TempField, 'title="','">'); TempField := FullTrim(TempField); if Length(TempField) > 0 then TempField := 'Distribuzione: ' + TempField; SetField(fieldComments, TempField); // Actors Field StartChar := '
'; EndChar := '
'; UsePage := StartChar + TextBetween(PageStr, StartChar, EndChar) + EndChar; // UsePage := PageStr; StartPos := pos(StartChar, UsePage); repeat // UsePage := copy(UsePage, StartPos + 23, length(UsePage) - Startpos); StartChar := '
'; EndChar := ''; TempTitle := TextBetween(UsePage, Startchar, EndChar); PickTreeAdd(TempTitle, TempIdFilm); LengthFilm := length(StartChar) + length(TempTitle) + length(EndChar); Delete(UsePage, 1, lengthFilm); LengthRaw := length(UsePage); StartChar := '