(*************************************************** Ant Movie Catalog importation script www.antp.be/software/moviecatalog/ [Infos] Authors=Epsilon, Antoine Potten Title=Cineguide / Cinebel Description=Cineguide / Cinebel - Dutch (BE) import Site=http://www.cineguide.be Language=NL Version=2.00 Requires=3.5.0 Comments= License=This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. | GetInfo=1 [Options] PictureKind=1|0|0=Small picture|1=Large picture Categories=1|0|0=Take only first category (genre)|1=Take all available values, separated by commas Release=1|0|0=Do not get release date|1=Store release date in comments Countries=0|0|0=Take only first country|1=Take all available values, separated by commas ***************************************************) program CINEGUIDE_NL; uses StringUtils1; var MovieName: string; procedure AnalyzePage(Address: string); var PageText: string; Block: string; ResultBlock: Integer; BeginPos, EndPos: Integer; ValueTitle, ValueAddress: string; begin PageText := GetPage(Address); // PageText := GetLocalPage(Address); if pos('', PageText) > 0 then begin SetField(fieldURL, Address); AnalyzeMoviePage(PageText) end else begin PickTreeClear; ResultBlock := Pos('', PageText); while ResultBlock > 0 do begin Delete(PageText, 1, ResultBlock + 35); EndPos := Pos('', PageText); PickTreeAdd(StringReplace(Copy(PageText, 1, EndPos - 1), #13#10 + ' ', ''), ''); BeginPos := EndPos; EndPos := Pos(' ', PageText); Block := Copy(PageText, BeginPos, EndPos - BeginPos); Delete(PageText, 1, EndPos); BeginPos := Pos('', Block); Delete(Block, 1, EndPos); BeginPos := Pos('', PageText); end; if PickTreeExec(Address) then AnalyzePage(Address); end; end; procedure AnalyzeMoviePage(PageText: string); var Value, FullValue: string; IntValue: Integer; BeginPos, EndPos: Integer; begin PageText := UTF8Decode(TextAfter(PageText, '')); // Original Title Value := TextBetween(PageText, '', ''); SetField(fieldOriginalTitle, Value); // Picture Value := TextBetween(PageText, #9'src="/portal/resources/movie/', '.jpg'); if Value <> '' then begin FullValue := StringReplace(StringReplace(Value, '/ma', '/ba'), '/a', '/ba'); if (GetOption('PictureKind') <> 1) or (Pos(FullValue, PageText) = 0) then GetPicture('http://www.cinebel.be/portal/resources/movie/' + Value + '.jpg') else GetPicture('http://www.cinebel.be/portal/resources/movie/' + FullValue + '.jpg'); end; PageText := TextAfter(PageText, ''); Value := FullTrim(TextBetween(PageText,' class="classique">', '')); PageText := RemainingText; if (GetOption('Countries') = 0) and (Pos(',', Value) > 0) then Value := TextBefore(Value, ',', ''); SetField(fieldCountry, FullTrim(Value)); Value := FullTrim(TextBetween(PageText, ' class="classique">', '')); PageText := RemainingText; SetField(fieldYear, FullTrim(Value)); Value := FullTrim(TextBetween(PageText, ' class="classique">', '')); PageText := RemainingText; if (GetOption('Categories') = 0) and (Pos(',', Value) > 0) then Value := TextBefore(Value, ',', ''); SetField(fieldCategory, Value); Value := FullTrim(TextBetween(PageText, ' class="classique">', '')); PageText := RemainingText; IntValue := StrToInt(TextBefore(Value, 'u', ''), 0) * 60 + StrToInt(TextBetween(Value, 'u', 'min'), 0); SetField(fieldLength, IntToStr(IntValue)); if GetOption('Release') > 0 then begin Value := FullTrim(TextBetween(PageText, ' class="classique">', '')); if Pos(#13#10, Value) = 0 then SetField(fieldComments, 'Release: ' + Value); end; Value := FullTrim(TextBetween(PageText, '
', '
')); SetField(fieldDescription, Value); PageText := TextAfter(PageText, '
'); Value := TextBetween(PageText, 'Regisseur:', ''); HTMLRemoveTags(Value); SetField(fieldDirector, FullTrim(Value)); PageText := TextAfter(TextBetween(PageText, 'Acteurs:', ''), ' '' do begin Value := TextBetween(PageText, '">', ''); PageText := RemainingText; if Value = '' then PageText := '' else begin if FullValue <> '' then FullValue := FullValue + ', '; FullValue := FullValue + Value; end; end; SetField(fieldActors, FullValue); end; begin if CheckVersion(3,5,0) then begin if StringUtils1_Version < 4 then begin ShowMessage('Old version of "stringutils1.pas", this script needs at least version 4'); Exit; end; MovieName := GetField(fieldOriginalTitle); if MovieName = '' then MovieName := GetField(fieldTranslatedTitle); if Input('Cineguide (Cinebel) Import', 'Enter the title (or the URL) of the movie:', MovieName) then begin if Pos('cinebel.be', MovieName) > 0 then AnalyzePage(MovieName) else AnalyzePage('http://www.cinebel.be/nl/srch.asp?mot='+UrlEncode(MovieName)); end; end else ShowMessage('This script requires a newer version of Ant Movie Catalog (at least the version 3.5.0)'); end.