Page 1 of 1

Crear un nuevo script uniendo 2 existentes.

Posted: 2009-04-10 03:32:31
by zulu88
Buenas.

Quisiera saber como poder unir 2 script en 1 solo.

La cuestión es que yo uso el script de alpacine y affinity. Del 1º solo me quedo con la caratula y del 2º con todo lo demas.

Se puede modificar el script de affinity para que la caratula la adquiera de la pagina alpacine??

Muchas gracias.

FilmAffinity/Alpacine(ES)

Posted: 2009-04-12 19:42:57
by legrad
Este es un arreglo personal de dicho script espero que funcione, he probado 10 ó 12 peliculas y parece ir bien

Code: Select all

(***************************************************

Ant Movie Catalog importation script
www.antp.be/software/moviecatalog/

[Infos]
Authors=Legrad
Title=FilmAffinity/Alpacine(ES)
Description=
Site=www.FilmAffinity.com-www.alpacine.com
Language=ES
Version=1
Requires=3.5.0
Comments=
License=
GetInfo=1

[Options]

***************************************************)

(***************************************************)

program FilmAffinity;

var
  MovieName: string;
  MovieURL: string;
//---------------------------------------
function UpFirstLetterWord(texto:string):string;
var espaco:integer;
sst:string;
begin
texto:=AnsiUpFirstLetter(AnsiLowerCase(texto));
repeat
    espaco:=Pos(' ',texto);
    sst:=AnsiUpperCase(Copy(texto,espaco+1,1));

texto:=Copy(texto,1,espaco-1)+'/|\'+sst+Copy(texto,espaco+2,length(texto));
until Pos(' ',texto)=0;
texto := StringReplace(texto, '/|\', ' ');
if Copy(texto,1,1)=' ' then
  texto:=Copy(texto,2,length(texto));
result:=texto;
end;
//------------------------------------------------------------------------------------

function BorraComillas(var S: string): string;
var
   n,len, tag: Integer;
   c: char;
   t: String;
begin
   tag := 0;
   t := '';
   len := length(s);
   for n :=1 to len do
   begin
     c := Copy(s,n,1);
     if c = '''' then
        c := ' ';
        t := t + c;
   end
   s := t;
   result := t;
end;

//------------------------------------------------------------------

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;

//------------------------------------------------------------------------------------

function TextBetween(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;
//---------------------------------------------------------------------
function Caracter(str1: string) :string;
begin
          Str1 := StringReplace(Str1, 'á', 'á');
          Str1 := StringReplace(Str1, 'é', 'é');
          Str1 := StringReplace(Str1, 'í', 'í');
          Str1 := StringReplace(Str1, 'ó', 'ó');
          Str1 := StringReplace(Str1, 'ú', 'ú');
          Str1 := StringReplace(Str1, 'ü', 'ü');
          Str1 := StringReplace(Str1, 'ñ', 'ñ');
          Str1 := StringReplace(Str1, 'ÂÂ', '');
          Str1 := StringReplace(Str1, 'ÃÂ�', 'Á');
          Str1 := StringReplace(Str1, 'ô', 'ô');
          Str1 := StringReplace(Str1, 'ï', 'ï');
          str1 := StringReplace(str1, 'á' , 'à');
          str1 := StringReplace(str1, 'é' , 'é');
          str1 := StringReplace(str1, 'í',  'í');
          Str1 := StringReplace(Str1, 'ó', 'ó');
          str1 := StringReplace(str1, 'ú' , 'ú');
          str1 := StringReplace(str1, 'ñ' , 'ñ');
          str1 := StringReplace(str1, 'Ã�', 'Á');
          str1 := StringReplace(str1, 'É', 'É');
          str1 := StringReplace(str1, 'Ã�', 'Í');
          str1 := StringReplace(str1, 'Ó', 'Ó');
          str1 := StringReplace(str1, 'Ú', 'Ú');
          str1 := StringReplace(str1, 'Ñ', 'Ñ');
          str1 := StringReplace(str1, 'Â', '');


result := str1;
end;

//------------------------------------------------------------------------------------

function DeleteTags(var S: string): string;
var
   n,len, tag: Integer;
   c: char;
   t: String;
begin
   tag := 0;
   t := '';
   len := length(s);
   for n :=1 to len do
   begin
      c := Copy(s,n,1);
      if c = #9 then
         c := ' ';
      if(tag=1) then
      begin
         if(c='>') then tag := 0;
         continue;
      end
      else
      begin
         if(c='<') then
         begin
            tag := 1;
            continue;
         end;
         t := t + c;
      end;
   end
   s := t;
   result := t;
end;

//------------------------------------------------------------------------------------


procedure AnalyzePage(Address: string);
var
  strPage, MovieAddr, MovieTitle, MovieDate, MovieID, Movie: string;
  BeginPos, EndPos: Integer;
  BeginPoss, EndPoss: Integer;
begin
  strPage := GetPage(Address);
  BeginPos := Pos('Resultados por', strPage);
  if(BeginPos > -1)then
    begin
      PickTreeClear;
      Delete(strPage, 1, BeginPos);
      BeginPos := Pos('href="/es/film', strPage);
      EndPos := 1;
      while ((BeginPos > 0) and (EndPos > 0)) do
        begin
          Delete(strPage, 1, BeginPos);
          EndPos := Pos('.html', strPage);
          MovieId := Copy(strPage,+14, EndPos-14);
          MovieAddr := 'http://www.filmaffinity.com/es/film' + MovieId+'.html';
          BeginPoss := Pos('">',strPage);
          EndPoss := Pos('<img src=', strPage);
          MovieTitle := Copy(strPage,BeginPoss+2, EndPoss);
          MovieTitle := Caracter(MovieTitle);
          DeleteTags(MovieTitle);
          PickTreeAdd(MovieTitle, MovieAddr);
          BeginPos := Pos('href="/es/film', strPage);
          if(Pos('</body>', strPage) < BeginPos) then
           BeginPos := -1;
        end;
    end;
    PickTreeSort;
    PickTreeExec(Address)
    AnalyzeMoviePage(Address);
end;

//------------------------------------------------------------------------------------

procedure AnalyzeMoviePage(Address: string);
var
  Page: TStringList;
  LineNr: Integer;
  Line: string;
  Item: string;
  Comments: string;
  Actors: string;
  Directors: string;
  Description: string;
  Busca: integer;
  test: string;
begin
  Description := '';
  Page := TStringList.Create;
  Page.Text := GetPage(Address);
  test := Page.Text;
  // URL
  SetField(fieldURL, Address);




  // año
  LineNr := FindLine('<title>', Page, 0);
  if LineNr <> -1 then
  begin
    Line := Page.GetString(LineNr);
    Item := TextBetween (Line, '(', ')');
    DeleteTags (Item);
    Item  := AnsiUpFirstLetter(Item );
    HTMLDecode(Item);
    SetField(fieldYear, Trim (Item));
  end;
  
  // duracion
  LineNr := FindLine('<td valign="baseline" align="right" ><b>DURACIÓN</b></td>', Page, 0);
  if LineNr > 0 then
  begin
    Item := copy(Page.Text, pos('<table width="100%" border="0" cellpadding="0" cellspacing="0"><tr>',Page.Text), length(Page.Text));
    Item := TextBetween (Item, '<td>', 'min');
    Item := TextBetween (Item, '<td>', 'min');
    SetField(fieldLength, Trim (Item));

  end;
  
  // nacionalidad
  LineNr := FindLine('<b>PA', Page, 0);
  if LineNr > 0 then
  begin
    Item := copy(Page.Text, pos('<b>PA',Page.Text), length(Page.Text));
    Item := TextBetween (Item, 'title="', '"');
    DeleteTags (Item);
    SetField(fieldCountry, Trim (Item));
  end;
  
  // director
  LineNr := FindLine('<td valign="baseline" align="right" ><b>DIRECTOR</b></td>', Page, 0);
  if LineNr > 0 then
  begin
    Item := copy(Page.Text, pos('<td valign="baseline" align="right" ><b>DIRECTOR</b></td>',Page.Text), length(Page.Text));
    Item := TextBetween (Item, 'director&stext=', '</td>');
    Item := TextBetween (Item, '">', '</a>');
    DeleteTags (Item);
    SetField(fieldDirector, Trim (Item));
  end;
  
  // reparto
  LineNr := FindLine('<td valign="baseline" align="right" ><b>REPARTO</b></td>', Page, 0);
  if LineNr > 0 then
  begin
    Item := copy(Page.Text, pos('<td valign="baseline" align="right" ><b>REPARTO</b></td>',Page.Text), length(Page.Text));
    Item := TextBetween (Item, 'cast&stext=', '</tr>');
    Item := TextBetween (Item, '">', '</tr>');
    Item := StringReplace (Item, #13#10, '');
    DeleteTags (Item);
    SetField(fieldActors, Trim (Item));
  end;
 // productor
  LineNr := FindLine('<td valign="baseline" align="right" ><b>PRODUCTORA</b></td>', Page, 0);
  if LineNr > 0 then
  begin
    Item := copy(Page.Text, pos('<td valign="baseline" align="right" ><b>PRODUCTORA</b></td>',Page.Text), length(Page.Text));
    Item := TextBetween (Item, '<td  >', '</tr>');
    Item := StringReplace (Item, #13#10, '');
    DeleteTags (Item);
    SetField(fieldProducer, Trim (Item));
  end;
  
  // genero
  LineNr := FindLine('GÉNERO Y CRÍTICA', Page, 0);
  if LineNr > 0 then
  begin
    Item := copy(Page.Text, pos('Más información<',Page.Text), length(Page.Text));
    Item := TextBetween (Item, '<td valign="top">', '/');
    Item := StringReplace (Item, #13#10, '');
    Item := StringReplace (Item, '.', ',');
    DeleteTags (Item);
    SetField(fieldCategory, Trim (Item));
  end;
  
  // sinopsis
  LineNr := FindLine('<a style="font-size:7pt; color: #bb0000" href="/es/mobile.php">Más información</a>', Page, 0);
  if LineNr > 0 then
  begin
    Item := copy(Page.Text, pos('<a style="font-size:7pt; color: #bb0000" href="/es/mobile.php">Más información</a>',Page.Text), length(Page.Text));
    Item := TextBetween (Item, 'SINOPSIS:', '(FILMAFFINITY)<br />');
    Item := StringReplace (Item, #13#10, '');
    DeleteTags (Item);
    SetField(fieldDescription, Trim (Item));
  end;
  
  // calificacion
  LineNr := FindLine('<tr><td align="center"><img src="http://www.filmaffinity.com/imgs/movies/full/', Page, 0);
  if LineNr > 0 then
  begin
    Item := copy(Page.Text, pos('<tr><td align="center"><img src="http://www.filmaffinity.com/imgs/movies/full/',Page.Text), length(Page.Text));
    Item := TextBetween (Item, 'bold;">', '</td></tr>');
    Item := StringReplace (Item, #13#10, '');
    DeleteTags (Item);
    SetField(fieldRating, Trim (Item));
  end;
// Titulo Original
  LineNr := FindLine('ORIGINAL</b></td>', Page, 0);
  if LineNr > 0 then
  begin
    Item := copy(Page.Text, pos('ORIGINAL</b></td>',Page.Text), length(Page.Text));
    Item := TextBetween (Item, '<td ><b>', '</b></td>');
    DeleteTags (Item);
    SetField(fieldOriginalTitle, Trim (Item));
  end;
   // Titulo traducido
  LineNr := FindLine('<head>', Page, 0);
  if LineNr > 0 then
  begin
    Item := copy(Page.Text, pos('<head>',Page.Text), length(Page.Text));
    Item := TextBetween (Item, '<title>', '(');
  Item  := AnsiUpFirstLetter(Item );
  HTMLDecode(Item);
  SetField(fieldTranslatedTitle, Trim (Item));
 end;
//--------------------------------------------------------
Item := StringReplace (Item, ' ', '+');
Page.Text := GetPage('http://www.google.es/search?hl=es&as_qdr=all&q=%22'+(Item)+'%22+site%3Aalpacine.com&btnG=Buscar&meta=');
LineNr := FindLine('en el dominio <b>alpacine.com', Page, 0);
 if LineNr > 0 then
  begin
    Item := copy(Page.Text, pos('href="http://alpacine.com/pelicula/',Page.Text), length(Page.Text));
    Item := TextBetween (Item, 'href="http://alpacine.com/pelicula/', '"');
    Page.Text := GetPage('http://alpacine.com/pelicula/'+Item);
LineNr := FindLine('<img src="http://img.alpacine.com/carteles/', Page, 0);
  if LineNr > 0 then
  begin
    Item := copy(Page.Text, pos('<img src="http://img.alpacine.com/carteles/',Page.Text), length(Page.Text));
    Item := TextBetween (Item, '<img src="http://img.alpacine.com/carteles/', '-');
    GetPicture ('http://img.alpacine.com/carteles/'+(Item)+'.jpg');
 end;
 end;
  end;

//-------------------------------------------------------------------------

begin
  if (CheckVersion(3,5,0)=FALSE) then
    begin
      ShowMessage('Se requiere Ant Movie Catalog versión 3.5 o superior');
      exit;
    end;
  MovieName := GetField(fieldTranslatedTitle);
  if MovieName = '' then
    MovieName := GetField(fieldOriginalTitle);
  Input('FilmAffinity+Alpacine', 'Buscar:', MovieName);
  if(GetOption('Sin resultado') = 0) then
    Input('FilmAffinity+Alpacine', 'Buscar:', MovieName);
  AnalyzePage('http://www.filmaffinity.com/es/search.php?stext=' + UrlEncode(MovieName)  + '&stype=Title');
end.

Posted: 2009-04-12 21:50:21
by zulu88
Muchas graciasssss.


De momento va de fabula. Eres un crack



Saludos.