I've asked before, and I now ask again...
Can someone P-L-E-A-S-E give me the code, so I can import every actor, instead of the few who are mentioned in the 'main details'.
I want the script to import the actors from 'combined deatails' (which includes every actor).
I asked this question before and the answer was given in the topic 'Another improvement...'
But now the code has been deleted and I need it again...
P-L-E-A-S-E help me....
[IMDb (Large pic)] I want ALL actors
At your request I've modified my previous script to extract all actors using the detailed IMDB page.
To do so you must change the
constant DetailedInfo at the begining of the script from FALSE to
TRUE.
Enjoy
To do so you must change the
constant DetailedInfo at the begining of the script from FALSE to
TRUE.
Code: Select all
// GETINFO SCRIPTING
// IMDB (US) import with large picture (usually from Amazon.com)
(***************************************************
* Movie importation script for: *
* IMDB (US), http://us.imdb.com *
* *
* (c) 2002 Antoine Potten antoine@buypin.com *
* Contributors : *
* Danny Falkov *
* Kai Blankenhorn *
* lboregard *
* Ork <ork@everydayangels.net> *
* Trekkie <Asimov@hotmail.com> *
* *
* For use with Ant Movie Catalog 3.4.0 *
* www.ant.be.tf/moviecatalog ··· www.buypin.com *
* *
* The source code of the script can be used in *
* another program only if full credits to *
* script author and a link to Ant Movie Catalog *
* website are given in the About box or in *
* the documentation of the program *
***************************************************)
program IMDb;
const
ExternalPictures = False;
{ True: Pictures will be stored as external files in the folder of the
catalog
False: Pictures will be stored inside the catalog (only for .amc files) }
ManualPictureSelect = True;
{ True: If no Title Match found a picture selection window appears
False: Revert to IMDB picture }
ImportLongDescription = True;
{ True: Automatically import the longest description
False: Description selection window appears }
ImportLanguage = False,
{ True: Import value of Language field }
DetailedInfo = False;
{ True: Import Detailed Info Including All Actors }
var
MovieName: string;
TheMovieTitle: string;
TheMovieAddress: 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;
procedure AnalyzePage(Address: string);
var
Page: TStringList;
LineNr: Integer;
URL:String;
begin
Page := TStringList.Create;
Page.Text := GetPage(Address);
if pos('<TITLE>IMDb', Page.Text) = 0 then
begin
// URL
URL:='http://imdb.com/Title' + copy(Page.Text,pos('href="/Title?',Page.Text)+12, 8);
If DetailedInfo Then
Begin
URL:= 'http://imdb.com/Details' + copy(Page.Text,pos('href="/Details?',Page.Text)+14, 8);
Page.Text:=GetPage(URL);
End;
SetField(fieldURL,URL);
AnalyzeMoviePage(Page)
end else
begin
PickTreeClear;
LineNr := 0;
LineNr := FindLine('<H2><A NAME="top">Most popular searches</A></H2>', Page, LineNr);
if LineNr > -1 then
begin
PickTreeAdd('Most popular searches', '');
AddMoviesTitles(Page, LineNr);
end;
LineNr := FindLine('<H2><A NAME="mov">Movies</A></H2>', Page, LineNr);
if LineNr > -1 then
begin
PickTreeAdd('Movies', '');
AddMoviesTitles(Page, LineNr);
end;
LineNr := FindLine('<H2><A NAME="tvm">TV-Movies</A></H2>', Page, LineNr);
if LineNr > -1 then
begin
PickTreeAdd('TV-Movies', '');
AddMoviesTitles(Page, LineNr);
end;
LineNr := FindLine('<H2><A NAME="tvs">TV series</A></H2>', Page, LineNr);
if LineNr > -1 then
begin
PickTreeAdd('TV Series', '');
AddMoviesTitles(Page, LineNr);
end;
LineNr := FindLine('<H2><A NAME="vid">Made for video</A></H2>', Page, 0);
if LineNr > -1 then
begin
PickTreeAdd('Made for video', '');
AddMoviesTitles(Page, LineNr);
end;
//Sometimes, the IMDb sends a title in Most Popular Searches
// and the same title in Movies.
//TheMovieAddress and TheMovieTitle are used to choose directly
// that one movie instead of asking the user.
if TheMovieAddress = '' then
begin
if PickTreeExec(Address) then
AnalyzePage(Address);
end
else
AnalyzePage(TheMovieAddress);
end;
Page.Free;
end;
function FindValue(BeginTag, EndTag: string; Page: TStringList; var LineNr: Integer; var Line: string): string;
var
BeginPos, EndPos: Integer;
Value: string;
begin
Result := '';
Value := '';
BeginPos := Pos(BeginTag, Line);
if BeginPos > 0 then
begin
BeginPos := BeginPos + Length(BeginTag);
if BeginTag = EndTag then
begin
Delete(Line,1,BeginPos-1);
BeginPos := 1;
end;
EndPos := pos(EndTag, Line);
while ((EndPos = 0) and (LineNr < Page.Count-1 )) do
begin
Value := Value + copy(Line, BeginPos, Length(Line) - BeginPos);
// Next Line
BeginPos := 1;
LineNr := LineNr + 1;
Line := Page.GetString(LineNr);
if Value = '' then
Exit;
EndPos := Pos(EndTag, Line);
end;
Value := Value + copy(Line, BeginPos, EndPos - BeginPos);
end;
Result := Value;
end;
procedure AnalyzeMoviePage(Page: TStringList);
var
Line, Value, Value2, FullValue: string;
LineNr, BeginPos, EndPos,EndTable: Integer;
AllTitles: TStringList;
begin
AllTitles := TStringList.Create;
// Original Title & Year
LineNr := FindLine('<title>', Page, 0);
Line := Page.GetString(LineNr);
if LineNr > -1 then
begin
BeginPos := pos('<title>', Line);
if BeginPos > 0 then
BeginPos := BeginPos + 7;
EndPos := pos('(', Line);
if EndPos = 0 then
EndPos := Length(Line);
Value := copy(Line, BeginPos, EndPos - BeginPos - 1);
HTMLDecode(Value);
SetField(fieldOriginalTitle, Value);
// IMDB original Title
AllTitles.Add(Value);
// IMDB Corrected Title
Value:=TransformIMDBTitle(Value);
AllTitles.Add(Value);
BeginPos := pos('(', Line) + 1;
if BeginPos > 0 then
begin
EndPos := pos(')', Line);
Value := copy(Line, BeginPos, EndPos - BeginPos);
SetField(fieldYear, Value);
end;
end;
// Rating
LineNr := FindLine('User Rating:', Page, 0);
if LineNr > -1 then
begin
Line := Page.GetString(LineNr + 4);
if Pos('/10', Line) > 0 then
begin
BeginPos := pos('<b>', Line) + 3;
Value := IntToStr(Round(StrToInt(StrGet(Line, BeginPos), 0) + (StrToInt(StrGet(Line, BeginPos + 2), 0) / 10)));
SetField(fieldRating, Value);
end;
end;
// Language
LineNr := FindLine('Language:', Page, 0);
if LineNr > -1 then
begin
Line := Page.GetString(LineNr + 1);
BeginPos := pos('/">', Line) + 3;
EndPos := pos('</a>', Line);
if EndPos = 0 then
EndPos := Length(Line);
Value := copy(Line, BeginPos, EndPos - BeginPos);
if ImportLanguage then
SetField(fieldLanguages, Value);
end;
GetMoviePicture(Value, Page, AllTitles);
AllTitles.Free;
// Director
LineNr := FindLine('Directed by', Page, 0);
if LineNr > -1 then
begin
FullValue := '';
Line := Page.GetString(LineNr + 1);
repeat
BeginPos := pos('">', Line) + 2;
EndPos := pos('</a>', Line);
Value := copy(Line, BeginPos, EndPos - BeginPos);
if (Value <> '(more)') and (Value <> '') then
begin
if FullValue <> '' then
FullValue := FullValue + ', ';
FullValue := FullValue + Value;
end;
Delete(Line, 1, EndPos);
until Pos('</a>', Line) = 0;
HTMLDecode(FullValue);
SetField(fieldDirector, FullValue);
end;
// Actors
LineNr := FindLine('ast overview', Page, 0);
if LineNr = -1 then
LineNr := FindLine('redited cast', Page, 0);
if LineNr = -1 then
LineNr := FindLine('credits order', Page, 0);
if LineNr > -1 then
begin
FullValue := '';
Line := Page.GetString(LineNr);
repeat
BeginPos := Pos('<td valign="top">', Line);
EndTable:=Pos('</table>',Line);
if (BeginPos > 0) and (BeginPos < EndTable) then
begin
Delete(Line, 1, BeginPos);
Line := copy(Line, 25, Length(Line));
BeginPos := pos('">', Line) + 2;
EndPos := pos('</a>', Line);
if EndPos = 0 then
EndPos := Pos('</td>', Line);
Value := copy(Line, BeginPos, EndPos - BeginPos);
if (Value <> '(more)') and (Value <> '') then
begin
BeginPos := pos('.... </td><td valign="top">', Line);
if BeginPos > 0 then
begin
if DetailedInfo and (Pos('Quotes?',Line) > 0 ) and
(Pos('Quotes?',Line) - BeginPos < 40) Then
BeginPos:=Pos('Quotes?',Line) + 16
Else
BeginPos := BeginPos + 27;
EndPos := pos('</td></tr>', Line);
Value2 := copy(Line, BeginPos, EndPos - BeginPos);
HTMLRemoveTags(Value2);
if Value2 <> '' then
begin
Value := Value + ' (as ' + Value2 + ')';
end;
end;
if FullValue <> '' then
FullValue := FullValue + ', ';
FullValue := FullValue + Value;
end;
EndPos := Pos('</td></tr>', Line);
Delete(Line, 1, EndPos);
end else
begin
Line := '';
end;
until Line = '';
HTMLDecode(FullValue);
SetField(fieldActors, FullValue);
end;
//Country
LineNr := FindLine('Country:', Page, 0);
if LineNr > -1 then
begin
Line := Page.GetString(LineNr + 1);
BeginPos := pos('/">', Line) + 3;
EndPos := pos('</a>', Line);
Value := copy(Line, BeginPos, EndPos - BeginPos);
HTMLDecode(Value);
SetField(fieldCountry, Value);
end;
//Category
LineNr := FindLine('Genre:', Page, 0);
if LineNr > -1 then
begin
Line := Page.GetString(LineNr + 1);
BeginPos := pos('/">', Line) + 3;
EndPos := pos('</a>', Line);
Value := copy(Line, BeginPos, EndPos - BeginPos);
HTMLDecode(Value);
SetField(fieldCategory, Value);
end;
//Description
LineNr := FindLine('Plot Summary:', Page, 0);
if LineNr < 1 then
LineNr := FindLine('Plot Outline:', Page, 0);
if LineNr > -1 then
begin
Line := Page.GetString(LineNr);
BeginPos := pos('</b>', Line) + 5;
EndPos := pos('<a href', Line);
if EndPos < 1 then
Line := Line + Page.GetString(LineNr+1);
EndPos := pos('<a href="/Plot?', Line);
if EndPos < 1 then
EndPos := pos('<br><br>', Line);
if EndPos < 1 then
EndPos := Length(Line);
PickListClear;
Value := copy(Line, BeginPos, EndPos - BeginPos);
HTMLDecode(Value);
PickListAdd(Value);
BeginPos := pos('/Plot?', Line);
EndPos := pos('">(more)', Line);
if (BeginPos <> 0) and (EndPos <> 0) then
begin
Value := copy(Line, BeginPos, EndPos - BeginPos);
Value := GetDescriptions(Value);
end;
if not ImportLongDescription then
begin
Value := '';
if PickListExec('Select a description for "' + MovieName + '"', Value) then
SetField(fieldDescription, Value);
end
else
SetField(fieldDescription, Value);
end;
// Comments
LineNr := FindLine('<b>Summary:</b>', Page, 0);
if LineNr > -1 then
begin
Value := '';
repeat
LineNr := LineNr + 1;
Line := Page.GetString(LineNr);
EndPos := Pos('</blockquote>', Line);
if EndPos = 0 then
EndPos := Length(Line)
else
EndPos := EndPos - 2;
Value := Value + Copy(Line, 1, EndPos) + ' ';
until Pos('</blockquote>', Line) > 0;
HTMLDecode(Value);
Value := StringReplace(Value, '<br>', #13#10);
Value := StringReplace(Value, #13#10+' ', #13#10);
SetField(fieldComments, Value);
end;
// Length
LineNr := FindLine('Runtime:', Page, 0);
if LineNr > -1 then
begin
Line := Page.GetString(LineNr + 1);
EndPos := pos(' min', Line);
if EndPos = 0 then
EndPos := pos(' /', Line);
if EndPos = 0 then
EndPos := Length(Line);
if Pos(':', Line) < EndPos then
BeginPos := Pos(':', Line) + 1
else
BeginPos := 1;
Value := copy(Line, BeginPos, EndPos - BeginPos);
SetField(fieldLength, Value);
end;
DisplayResults;
end;
procedure GetMoviePicture(Language: string; Page, AllTitles: TStringList);
var
Line, Value, Value2, Aka, PictureAddress: string;
AmazonPage: TStringList;
FoundOnAmazon, PickTreeSelected, PictureAvailable: Boolean;
TitleRef, ImgRef, NoImage: string;
LineNr, BeginPos, EndPos, PickTreeCount, ParagraphIndex, Index, TitleLine, LastMatch: Integer;
begin
FoundOnAmazon := False;
// Find Alternate Titles for Movies which are not in English
Aka := '';
if Language <> 'English' Then
begin
LineNr:= FindLine('Also Known As',Page,0);
EndPos:=0;
if LineNr > -1 then
begin
Line := Page.GetString(LineNr);
repeat
Aka:=FindValue('<br>','<br>',Page,LineNr,Line);
if Aka <> '' then
begin
BeginPos:=1;
EndPos:=Pos('(',Line);
if EndPos = 0 then
EndPos := Length(Aka);
Value := copy(Aka, BeginPos, EndPos - BeginPos - 1);
Value:=TransFormIMDBTitle(Value);
AllTitles.Add(Value);
end;
until (Pos('Runtime',Line) > 0) or (Pos('MPAA',Line) > 0 );
end;
end;
TitleRef:='dvd>';
ImgRef:='dvd><img';
NoImage:='/icons/dvd-no-image.gif';
LineNr := FindLine('title="DVD available at Amazon.com"', Page, 0);
if LineNr = -1 then
begin
LineNr := FindLine('title="VHS available at Amazon.com"', Page, 0);
if LineNr > -1 then
begin
TitleRef:='video>';
ImgRef:='video><img';
NoImage:='/icons/video-no-image.gif';
end;
end;
if LineNr > -1 then
begin
Line := Page.GetString(LineNr);
BeginPos := Pos('href="', Line) + 5;
Delete(Line, 1, BeginPos);
EndPos := Pos('"', Line);
Value := Copy(Line, 1, EndPos - 1);
AmazonPage := TStringList.Create;
AmazonPage.Text := GetPage('http://us.imdb.com' + Value);
// Original Title
Value2 := AllTitles.GetString(0);
Value2 := TransFormIMDBTitle(Value2);
PickTreeClear;
PickTreeCount := 0;
PickTreeAdd('Available Titles for matching a picture to: ' + Value2, '');
ParagraphIndex := 1;
LineNr := 0;
LastMatch := -1;
TitleLine := -1;
repeat
LineNr := FindLine('<b>'+IntToStr(ParagraphIndex)+'.', AmazonPage, LineNr);
if LineNr > -1 then
begin
TitleLine:=LineNr;
Value:='';
PictureAvailable:=False;
repeat
TitleLine:=TitleLine +1;
Line:= AmazonPage.GetString(TitleLine);
BeginPos:=0;
if Pos(TitleRef,Line) > 0 then
begin
if Pos(ImgRef,Line) = 0 then
begin
for Index:=0 to AllTitles.Count -1 do
begin
Value2:=AllTitles.GetString(Index);
BeginPos:=Pos(Value2,Line);
if BeginPos > 0 then
Break;
end;
// Match not found
if BeginPos = 0 then
begin
BeginPos:=Pos(TitleRef,Line)+Length(TitleRef);
EndPos:=Pos('</a>',Line);
Value:=Copy(Line,BeginPos,EndPos-BeginPos);
end;
end
else
begin
PictureAvailable:=(Pos(NoImage,Line) = 0);
PictureAddress:=IntToStr(TitleLine);
end;
end;
if BeginPos > 0 then
Break;
until (Pos('</table>',Line ) > 0);
// Try to Find a Title Match
if Pos(Value2,Line) > 0 then
begin
// Compare Current Title to Original
BeginPos := Pos(TitleRef, Line) + Length(TitleRef) -1;
Delete(Line, 1, BeginPos);
EndPos:= Pos('(',Line);
if EndPos = 0 Then
EndPos := Pos('</a>', Line);
Value := Copy(Line, 1, EndPos - 1);
Value:= Trim(Value);
if Value = Value2 then
begin
if PictureAvailable then
LastMatch:=LineNr;
//Break
end;
end;
if PictureAvailable then
begin
PickTreeAdd(Value,PictureAddress);
PickTreeCount:=PickTreeCount+1;
end;
end;
ParagraphIndex:=ParagraphIndex+1;
until (LineNr = -1);
LineNr:=LastMatch;
if (LineNr = -1) then
begin
// Handle Amazon Page Redirection(s)
LineNr:= FindLine('You clicked on this item',AmazonPage,0);
if (LineNr = -1) then
LineNr:=FindLine('Customers who bought',AmazonPage,0);
// Display the Picture Selection Window
if (LineNr = -1) and ManualPictureSelect and (PickTreeCount > 0) then
begin
PickTreeSelected:=PickTreeExec(PictureAddress);
if PickTreeSelected then
LineNr:=StrToInt(PictureAddress,0);
end;
if (LineNr > -1 ) then
begin
LineNr := FindLine('src="http://images.amazon.com/images/P/',AmazonPage, LineNr);
if not PickTreeSelected then
TitleLine:= FindLine('/exec/obidos/ASIN/',AmazonPage, 0);
if (LineNr > TitleLine) then
LineNr:=-1;
if LineNr > -1 then
begin
Line := AmazonPage.GetString(LineNr);
BeginPos := Pos('src="http://images.amazon.com/images/P/', Line) + 4;
Delete(Line, 1, BeginPos);
EndPos := Pos('"', Line);
Value := Copy(Line, 1, EndPos - 1);
Value := StringReplace(Value, 'TZZZZZZZ', 'LZZZZZZZ');
Value := StringReplace(Value, 'THUMBZZZ', 'LZZZZZZZ');
GetPicture(Value, ExternalPictures);
FoundOnAmazon := True;
end;
end;
end
else
begin
LineNr := FindLine('http://images.amazon.com/images/P/', AmazonPage, LineNr);
if LineNr < TitleLine then
begin
Line := AmazonPage.GetString(LineNr);
BeginPos := Pos('src="', Line) + 4;
Delete(Line, 1, BeginPos);
EndPos := Pos('"', Line);
Value := Copy(Line, 1, EndPos - 1);
Value := StringReplace(Value, 'THUMBZZZ', 'LZZZZZZZ');
GetPicture(Value, ExternalPictures);
FoundOnAmazon := True;
end;
end;
AmazonPage.Free;
end;
if not FoundOnAmazon then
begin
{ not found on Amazon, so taking what's available directly on IMDB.
if we are lucky, a picture from amazon but directly linked in the page }
LineNr := FindLine('<img alt="cover" align="left" src="http://ia.imdb.com/media/imdb/', Page, 0);
if LineNr < 0 then
LineNr := FindLine('<img alt="cover" align="left" src="http://posters.imdb.com/', Page, 0);
if LineNr < 0 then
LineNr := FindLine('<img alt="cover" align="left" src="http://images.amazon.com/', Page, 0);
if LineNr > -1 then
begin
Line := Page.GetString(LineNr);
BeginPos := pos('src="', Line) + 4;
Delete(Line, 1, BeginPos);
EndPos := pos('"', Line);
Value := copy(Line, 1, EndPos - 1);
Value := StringReplace(Value, 'MZZZZZZZ', 'LZZZZZZZ'); // change URL to get the Large instead of Small image
GetPicture(Value, ExternalPictures);
end;
end;
end;
function TransformIMDBTitle(Title: string): string;
var
BeginPos, EndPos: Integer;
Value: string;
Words: array of string;
Articles: array of string;
Replace,Original: string;
Index, CommaCount: Integer;
Begin
// Original Title
Result:=Title;
Setarraylength(Words,11);
Words[0]:=' In ';
Words[1]:=' On ';
Words[2]:=' Of ';
Words[3]:=' As ';
Words[4]:=' The ';
Words[5]:=' At ';
Words[6]:=' And A ';
Words[7]:=' And ';
Words[8]:=' An ';
Words[9]:=' To ';
Words[10]:=' For ';
SetArrayLength(Articles,35);
Articles[0]:=' The';
Articles[1]:=' a';
Articles[2]:=' An';
Articles[3]:=' Le';
Articles[4]:=' L''';
Articles[5]:=' Les';
Articles[6]:=' Der';
Articles[7]:=' Das';
Articles[8]:=' Die';
Articles[9]:=' Des';
Articles[10]:=' Dem';
Articles[11]:=' Den';
Articles[12]:=' Ein';
Articles[13]:=' Eine';
Articles[14]:=' Einen';
Articles[15]:=' Einer';
Articles[16]:=' Eines';
Articles[17]:=' Einem';
Articles[18]:=' Il';
Articles[19]:=' Lo';
Articles[20]:=' La';
Articles[21]:=' I';
Articles[22]:=' Gli';
Articles[23]:=' Le';
Articles[24]:=' Uno';
Articles[25]:=' Una';
Articles[26]:=' Un''';
Articles[27]:=' O';
Articles[28]:=' Os';
Articles[29]:=' As';
Articles[30]:=' El';
Articles[31]:=' Los';
Articles[32]:=' Las';
Articles[33]:=' Unos';
Articles[34]:=' Unas';
// Count the Comma in The Title
CommaCount := 0;
EndPos := 0;
Value := Title;
repeat
BeginPos := Pos(',', Value);
if BeginPos > 0 then
begin
Delete(Value, 1, BeginPos);
CommaCount := CommaCount + 1;
EndPos := EndPos + BeginPos;
end;
until( Pos(',',Value) = 0);
// Compare the Article to a list of known ones
for Index := 0 to 34 do
begin
if Pos(Articles[Index], Value) <> 0 then
begin
CommaCount := 1;
BeginPos := EndPos;
Break;
end;
end;
if (BeginPos > 0) and (CommaCount = 1) then
begin
Value := Copy(Title, BeginPos + 1, Length(Title));
Value := Trim(Value);
Result := Value + ' ' + Copy(Title, 1, BeginPos - 1);
end;
BeginPos := Pos(': ', Result);
if BeginPos > 0 then
Result := StringReplace(Result, ': ', ' - ');
Result := AnsiMixedCase(Result, ' ');
for Index := 0 to 10 do
begin
if Pos(Words[Index],Result) <> 0 then
begin
Original := Words[Index];
Replace := AnsiLowerCase(Original);
Result := StringReplace(Result, Original, Replace);
end;
end;
Result := StringReplace(Result, ' - the ', ' - The ');
Result := Trim(Result);
end;
function GetDescriptions(Address: string):String;
var
Line, Value: string;
LineNr: Integer;
BeginPos, EndPos,Longest: Integer;
Page: TStringList;
begin
Result:='';
Longest:=0;
Page := TStringList.Create;
Page.Text := GetPage('http://us.imdb.com' + Address);
LineNr := FindLine('<p class="plotpar">', Page, 0);
while LineNr > -1 do
begin
Value := '';
repeat
Line := Page.GetString(LineNr);
BeginPos := pos('"plotpar">', Line);
if BeginPos > 0 then
BeginPos := BeginPos + 10
else
BeginPos := 1;
EndPos := pos('</p>', Line);
if EndPos < 1 then
EndPos := Length(Line) + 1;
if Value <> '' then
Value := Value + ' ';
Value := Value + copy(Line, BeginPos, EndPos - BeginPos);
LineNr := LineNr + 1;
until (pos('</p>', Line) > 0) or (LineNr = Page.Count);
HTMLDecode(Value);
PickListAdd(Value);
if Length(Value) > Longest then
begin
Result := Value;
Longest := Length(Value);
end;
LineNr := FindLine('<p class="plotpar">', Page, LineNr);
end;
Page.Free;
end;
procedure AddMoviesTitles(Page: TStringList; var LineNr: Integer);
var
Line: string;
MovieTitle, MovieAddress: string;
StartPos: Integer;
begin
repeat
LineNr := LineNr + 1;
Line := Page.GetString(LineNr);
StartPos := pos('="', Line);
if StartPos > 0 then
begin
Startpos := Startpos + 2;
MovieAddress := copy(Line, StartPos, pos('">', Line) - StartPos);
StartPos := pos('">', Line) + 2;
MovieTitle := copy(Line, StartPos, pos('</A>', Line) - StartPos);
HTMLDecode(Movietitle);
//Remove duplicates
if TheMovieTitle='' then
begin
TheMovieTitle:=MovieTitle;
TheMovieAddress:='http://us.imdb.com' + MovieAddress;
end
else
begin
if TheMovieTitle<>'*' then
if TheMovieTitle<>MovieTitle then
begin
TheMovieTitle:='*';
TheMovieAddress:='';
end;
end;
PickTreeAdd(MovieTitle, 'http://us.imdb.com' + MovieAddress);
end;
until pos('</OL>', Line) > 0;
end;
begin
if CheckVersion(3,4,0) then
begin
TheMovieTitle:='';
TheMovieAddress:='';
MovieName := GetField(fieldOriginalTitle);
if MovieName = '' then
MovieName := GetField(fieldTranslatedTitle);
if Input('IMDb Import', 'Enter the title of the movie:', MovieName) then
begin
// AnalyzePage('http://us.imdb.com/Tsearch?title='+UrlEncode(MovieName)+'&restrict=Movies+only');
AnalyzePage('http://us.imdb.com/Tsearch?title='+UrlEncode(MovieName));
end;
end
else
ShowMessage('This script requires a newer version of Ant Movie Catalog (at least the version 3.4.0)');
end.
Last edited by trekkie on 2003-05-02 16:00:22, edited 1 time in total.
Who's The Man?
You are!
Thanks alot!
Really appreciate that!
But there was one thing, that struck me as pretty wierd...
If you use this script and import the data for the movie 'Lord of the rings: Fellowship of the ring', you get all the actors... No problems with that...
But if you import the data for the movie 'A night at the Roxbury'...
The actors' characternames does not really match, and at the second half of the Actors-field, I get Link-tags in HTML-format.....
Any ideas on that??
You are!
Thanks alot!
Really appreciate that!
But there was one thing, that struck me as pretty wierd...
If you use this script and import the data for the movie 'Lord of the rings: Fellowship of the ring', you get all the actors... No problems with that...
But if you import the data for the movie 'A night at the Roxbury'...
The actors' characternames does not really match, and at the second half of the Actors-field, I get Link-tags in HTML-format.....
Any ideas on that??