Pues eso, por donde empiezo?
El script del programa es de licencia abierta os paso un trozo aver si me podeis decir que lenguaje es, si lo puedo reaprovechar o si vale mas la pena empezar de cero
Muchas gracias
Código:
Si lo quereis entero ya os lo paso program FilmAffinity;
uses
StringUtils1;
const
BaseURL1 = 'http://www.filmaffinity.com';
CoverURL = 'http://www.caratulas.info/';
CoverURL1 = 'www.caratulas.info';
var
MovieName: string;
function TextBetweenOLD(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;
//------------------------------------------------------------------------------------
procedure AnalyzeCoversPage(Address: string; var CoverAdress: string);
var
strPage, MovieAddr, MovieTitle, MovieID: string;
BeginPos, EndPos, ContadorPrimeras: Integer;
Page: TStringList;
begin
strPage := GetPage(Address);
BeginPos := Pos('en el dominio <b>' + CoverURL1, strPage);
if BeginPos < 1 then
begin
SetField(fieldChecked, '');
if GetOption('AutoSelect') = 1 then exit;
ShowError('No se han encontrado resultados para ' + UpperCase(MovieName))
Page.Free
exit;
end
else
PickTreeClear;
PickTreeAdd('Carátulas de DVD para ' + UpperCase(MovieName), '');
Delete(strPage, 1, BeginPos);
BeginPos := Pos('href="' + CoverURL, strPage);
EndPos := 1;
while ((BeginPos > 0) and (EndPos > 0)) do
begin
Delete(strPage, 1, BeginPos);
EndPos := Pos('" onmousedown', strPage);
MovieId := Copy(strPage, + 32, EndPos - 32);
MovieAddr := CoverURL + MovieId;
BeginPos := Pos('.info/',strPage);
EndPos := Pos('.htm"', strPage);
MovieTitle := Copy(strPage, BeginPos, EndPos);
MovieTitle := TextBetweenOLD (MovieTitle , '.info/', 'jpg');
//FBrowser := TBrowser(RCaseOf(RequestHeader['HTTP_USER_AGENT'], ['MSIE', 'Firefox', 'Chrome', 'Safari', 'Opera', 'Konqueror'])+1);
MovieTitle := StringReplace(MovieTitle , 'musica/', '(MUSICA) ');
MovieTitle := StringReplace(MovieTitle , 'juegos/', '(JUEGOS) ');
MovieTitle := StringReplace(MovieTitle , '-', ' ' );
MovieTitle := StringReplace(MovieTitle , 'DVD', '(DVD)' );
MovieTitle := StringReplace(MovieTitle , 'Pc', '(PC)' );
MovieTitle := StringReplace(MovieTitle , 'Vcd', '(VCD)' );
MovieTitle := StringReplace(MovieTitle , 'Trasera', '(Trasera)' );
MovieTitle := StringReplace(MovieTitle , 'cd ', '(CD)' );
MovieTitle := StringReplace(MovieTitle , '/', '' );
MovieTitle := StringReplace(MovieTitle , 'Delantera', '(Delantera)' );
MovieTitle := StringReplace(MovieTitle , 'peliculas', '' );
MovieTitle := StringReplace(MovieTitle , 'Frontal', '(Frontal)' );
MovieTitle := StringReplace(MovieTitle , 'PS2', '(PS2)' );
MovieTitle := StringReplace(MovieTitle , 'Bso', '' );
MovieTitle := StringReplace(MovieTitle , 'The Album Del', '' );
MovieTitle := StringReplace(MovieTitle , 'Divx', '(DIVX)' );
MovieTitle := StringReplace(MovieTitle , 'BSO', '' );
MovieTitle := StringReplace(MovieTitle , 'B S O', '' );
MovieTitle := StringReplace(MovieTitle , 'Inlay', '(Interior)' );
MovieTitle := StringReplace(MovieTitle , 'Slim', '(Slim)' );
ContadorPrimeras:= ContadorPrimeras + 1;
if (Pos('(DVD)', MovieTitle) > 0) And (Pos('(Frontal)', MovieTitle) > 0) And (GetOption('AutoSelect') = 1) And (ContadorPrimeras < 8) then
begin
AnalyzeCoverPage(MovieAddr, CoverAdress);
exit;
end
else
begin
PickTreeAdd(MovieTitle, MovieAddr);
BeginPos := Pos('href="' + CoverURL, strPage);
if(Pos('</body>', strPage) < BeginPos) then
BeginPos := -1;
end;
end;
if PickTreeExec(Address) then
AnalyzeCoverPage(Address, CoverAdress);
end;
//------------------------------------------------------------------------------------
procedure AnalyzeCoverPage(Address: string; var CoverAdress: string);
var
Page: TStringList;
LineNr: Integer;
Item: string;
begin
CoverAdress:= Address + #13#10;
// SetField(fieldURL, Address);
Page := TStringList.Create;
Page.Text := GetPage(Address);
// Picture
LineNr := FindLine('<p><img src="/', Page, 0);
if LineNr <> -1 then
begin
Item := copy(Page.Text, pos('<p><img src="/',Page.Text), length(Page.Text));
Item := TextBetweenOLD (Item, 'src="/', '"');
Item := Trim(Item );
GetPicture (CoverURL + Item);
end;
end;
procedure AnalyzePage(Address: string);
var
Page: TStringList;
LineNr: Integer;
Line,Line2: string;
MovieTitle, MovieAddress: string;
begin
Page := TStringList.Create;
Page.Text := GetPage(Address);
PickTreeClear;
PickTreeAdd('Resultados en Filmaffinity para ' + UpperCase(MovieName), '');
// un solo resultado
LineNr := FindLine('<strong>1</strong> resultados.</div>', Page, 0);
if LineNr <> -1 then
begin
LineNr := FindLine('<b><a href="', Page, LineNr);
if LineNr <> -1 then
begin
Line := Page.GetString(LineNr);
Line2 := Line;
MovieAddress := TextBetweenOLD(Line, '<b><a href="', '">');
MovieTitle := Trim(TextBetweenOLD(Line2, '.html">', '<img src="'));
HTMLDecode(MovieTitle);
HTMLRemoveTags(MovieTitle);
if (MovieAddress <> '') AND (MovieTitle <> '') then
begin
MovieAddress := BaseURL1 + MovieAddress;
PickTreeAdd(MovieTitle, MovieAddress);
if GetOption('AutoSelect') = 0 then
if PickTreeExec(MovieAddress) then
AnalyzeMoviePage(MovieAddress);
if GetOption('AutoSelect') = 1 then
AnalyzeMoviePage(MovieAddress);
end
Page.Free;
exit;
end;
end;


