', Page, 0) > -1 then
begin
NextPage := Page.GetString(FindLine('
', Page, 0));
NextPage := StringReplace(NextPage, '&', '&');
NextPage := BaseAddress + TextBetween(NextPage, '
Next');
PickTreeMoreLink(NextPage);
end;
end;
if PickTreeExec(Address) then
AnalyzePage(Address);
end;
Page.Free;
end;
procedure AnalyzeMoviePage(Page: TStringList; Address: string);
var
Page2: TStringList;
ItemID, Line, Value, FullValue, MovieAddress: string;
LineNr: Integer;
begin
MovieAddress := TextAfter(Address, 'http://www.adultdvdempire.com');
// ItemID //
ItemID := TextBetween(Address, 'http://www.adultdvdempire.com/', '/');
// URL //
SetField(fieldURL, Address);
// Original Title //
Value := '';
Value := TextBetween(Page.Text, '', '
');
setField(fieldOriginalTitle,Value);
// Actors & Director //
Value := '';
FullValue := '';
LineNr := FindLine('', Page, 0);
while LineNr > -1 do
begin
Line := Page.GetString(LineNr+1);
Value := RemoveHTMLCrap(Line);
Line := Page.GetString(LineNr+5);
if Pos('Director', Line) > 0 then
setField(fieldDirector, Value);
if (Pos('Director', Line) <= 0) and (Pos('Writer', Line) <= 0) then
FullValue := FullValue + Value + #13#10;
LineNr := FindLine(' | ', Page, LineNr+1);
end;
setField(fieldActors, FullValue);
// Length //
Value := '';
if Pos('Length: ', Page.Text) > -1 then
begin
Value := TextBetween(Page.Text, ' Length:', ' ');
Value := IntToStr(StrToInt(TextBetween(Value, ' ', ' hrs.'),0) * 60 + StrToInt(TextBetween(Value, 'hrs. ', ' mins.'),0));
if Value <> '0' then
setField(fieldLength, Value);
end;
// Rating //
Value := '';
if Pos(' Overall Rating: ', Page.Text) > -1 then
begin
Value := TextBetween(Page.Text, ' Overall Rating: ', ' out of ');
HTMLRemoveTags(Value);
Value := FloatToStr((StrToFloat(IntToStr(Round((StrToFloat(Value)*2)*10))))/10);
if Value <> '0' then
setField(fieldRating, Value);
end;
// Year //
Value := '';
if Pos(Page.Text, ' Production Year: ') > -1 then
begin
Value := TextBetween(Page.Text, ' Production Year: ', ' ');
setField(fieldYear, Value);
end;
// use release date if production year is missing //
if (Value = '') and (Pos(Page.Text, ' Release Date: ') > -1) then
begin
Value := TextBetween(Page.Text, ' Release Date: ', ' ');
if Pos(Value, '/') > -1 then
Value := TextAfter(Value, '/');
if Pos(Value, '/') > -1 then
Value := TextAfter(Value, '/');
setField(fieldYear, Value);
end;
// Category //
Value := '';
if Pos('>Category:', Page.Text) > -1 then
begin
Value := TextBetween(Page.Text, 'Category: ', '');
HTMLRemoveTags(Value);
Value := FullTrim(Value);
setField(fieldCategory, Value);
end;
// Studio //
Value := '';
if Pos(' Studio: ', Page.Text) > -1 then
begin
Value := TextBetween(Page.Text, ' Studio: ', ' ');
HTMLRemoveTags(Value);
setField(fieldProducer, Value);
end;
if (Value = '') and (Pos('>Studios:', Page.Text) > -1) then
begin
Value := TextBetween(Page.Text, 'Studios: ', '');
HTMLRemoveTags(Value);
Value := FullTrim(Value);
setField(fieldProducer, Value);
end;
// Number of Discs //
Value := '';
if Pos(' Number of Discs: ', Page.Text) > -1 then
begin
Value := TextBetween(Page.Text, ' Number of Discs: ', ' ');
setField(fieldDisks, Value);
end;
// Description //
Value := '';
FullValue := '';
if Pos(' ', Page.Text) > 0 then
begin
Value := TextBetween(Page.Text, '', '');
if Pos('See the trailer for ');
Value := StringReplace(Value, 'See the trailer for ', '');
end;
Value := RemoveHTMLCrap(Value);
FullValue := '[ Synopsis ]' + #13#10 + #13#10 + Value + #13#10 + #13#10;
end;
// DVD Details //
Value := '';
if (GetOption('ImportDVDDetails') = 1) and (Pos(' |