[REL] Update FilmUP.it: added year of the Movie in Picklist
-
- Posts: 745
- Joined: 2007-04-28 05:46:43
- Location: Italy
[REL] Update FilmUP.it: added year of the Movie in Picklist
After a long while, I got the solution I was looking for and I show the year of every movie listed in the picklist.
Instructions added are between the marks 'Fulvio53s03'
Please notify me for errore.
By.
Instructions added are between the marks 'Fulvio53s03'
Please notify me for errore.
By.
Last edited by fulvio53s03 on 2010-08-12 05:34:15, edited 1 time in total.
Thanks. I added the "code" tags, but even with that the ident of the code is not there, I guess you copied it from the other topic where you posted it by mistake?
As I already removed the code from the "wrong" topic, can you edit the post to re-paste it with the indent (i.e. direct copy from the script itself)
As I already removed the code from the "wrong" topic, can you edit the post to re-paste it with the indent (i.e. direct copy from the script itself)
-
- Posts: 745
- Joined: 2007-04-28 05:46:43
- Location: Italy
Dear Antoine, you are right, as usual!
Let's try:
Code:
Bye.
Let's try:
Code:
Code: Select all
(***************************************************
Ant Movie Catalog importation script
www.antp.be/software/moviecatalog/
[Infos]
Authors=L. Francisco
Title=FilmUP
Description=Get movie info from LeoFilmUP.it and shows years il picklist (Fulvio53s03)
Site=http://filmup.leonardo.it
Language=IT
Version=1.0.2 - 16.09.2005
Requires=3.5.0
Comments=**Changes**|Pivello: query URL changed|Zandal: sistemato puntamento a COMMENTS|Pivello: Film site URL selectable instead of FilmUp page URL|dinolib: adapted to v.3.5.0 and little bugfix | ABNormal restarted...|14.04.2005: Fixed infinite loop if description field missing (Pivello)|16.09.2005: Look for new Main Actors data into page; if present select this instead of Cast data (P)|16.09.2005: Added ActorPlusCast option (P)|03.10.2005 ABNormal: Big Posters and Comments again|14.01.2006 ABNormal: Trailer URL
License=* 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 |
GetInfo=1
[Options]
AlternateURL=0|0|0=Use the FilmUP web site for FieldURL|1=Try to use ufficial movie web site for FieldURL
MezzoVoto=1|1|0=Integer Ratings|1=Ratings with ,5
ActorsPlusCast=0|0|0=Get Main Actors data (if present) otherwise get Cast field|1=Get Main Actors data (if present) and Cast data
TrailerURL=0|0|0=Normal URL page|1=Trailer URL page (if found)
***************************************************)
program LeonardoFilmUP;
uses
StringUtils1;
var
MovieName: string;
TheMovieAddress: string;
comm: String;
procedure AnalyzePage(Address: string);
var
Page: TStringList;
LineNr: integer;
BeginPos: integer;
begin
Page := TStringList.Create;
Page.Text := GetPage(Address);
LineNr := FindLine('Ordina risultati per', Page, 0);
if LineNr = -1 then
begin
SetField(fieldURL, Address);
AnalyzeMoviePage(Page);
end
else
begin
PickTreeClear;
AddMoviesTitles(Page);
if TheMovieAddress='' then
begin
if PickTreeExec(Address) then AnalyzePage(Address);
end
else
begin
SetField(fieldURL, TheMovieAddress);
Page.Text := GetPage(TheMovieAddress);
AnalyzeMoviePage(Page);
end;
end;
Page.Free;
end;
procedure AnalyzeMoviePage(Page: TStringList);
var
Line, PreviousLine, NomeHtml, sTemp: string;
LineNr,PrevLineNr, BeginPos, EndPos, Field: Integer;
IsMainActors: boolean;
begin
IsMainActors := false;
sTemp := '';
LineNr := FindLine('<font face="arial, helvetica" size="3"><b>', Page, 0);
if LineNr > -1 then
begin
//Translated Title
Line := Page.GetString(LineNr);
HTMLRemoveTags(Line);
SetField(fieldTranslatedTitle, Line);
repeat
//Look for next info
repeat
LineNr := LineNr + 1;
Line := Page.GetString(LineNr);
HTMLRemoveTags(Line);
until (Line<>'') or (LineNr > Page.Count);
// Test if 'Trama:' missing
if ((PreviousLine = 'Data di uscita: ')
or (PreviousLine = 'Uscita prevista: ')) and (Line <> 'Trama:') then
if (copy(Line,1,6)<>'Trama:') then
Line := 'Trama:' + Line;
PreviousLine := Line;
//Look for type of line
if Line = 'Titolo originale: ' then
Field := fieldOriginalTitle
else if Line = 'Regia: ' then
Field := fieldDirector
else if Line = 'Produzione: ' then
Field := fieldProducer
else if Line = 'Nazione: ' then
Field := fieldCountry
else if Line = 'Genere: ' then
Field := fieldCategory
else if Line = 'Anno: ' then
Field := fieldYear
else if Line = 'Durata: ' then
Field := fieldLength //Special case: get number only
else if Line = 'Sito ufficiale: ' then
Field := fieldURL
else if Line = 'Attori protagonisti: ' then
begin
Field := fieldActors;
IsMainActors := true;
end
else if Line = 'Cast: ' then
Field := fieldActors
else if Line = 'Trama:' then
Field := fieldDescription
else
Field := 0;
// I have to add this test, for sometimes the description
// is on the same line as the tag 'Trama'
if (copy(Line,1,6)='Trama:') and (length(Line)>6) then
begin
Field := fieldDescription;
Delete(Line,1,6);
HTMLDecode(Line);
end
else
begin
//Get values
LineNr := LineNr + 1;
Line := Page.GetString(LineNr);
HTMLRemoveTags(Line);
HTMLDecode(Line);
//Special case: Length
if Field = fieldLength then Line := copy(Line,1,length(Line)-1);
end;
//Alternative URL case
if (field = fieldURL) then
begin
if (Length(Line) = 0) or (GetOption('AlternateURL')=0) then // if WEB url missing or explicitly requested...
Line := GetField(fieldURL) // ...restore FilmUp URL
else
Line := 'http://'+Line;
end;
if Field<>0 then
begin
if Field = fieldActors then
begin
if IsMainActors then // Remember Main Actors (if present)
begin
sTemp := Line;
IsMainActors := false;
end
else
begin
if ((GetOption('ActorsPlusCast')=1) and (sTemp<>'')) then
Line := sTemp + ' Cast: ' + Line
else
if sTemp <> '' then
Line := sTemp;
SetField(Field,Line);
end;
end
else
SetField(Field,Line);
end;
until (Field=fieldDescription) or (LineNr > Page.Count);
end;
PrevLineNr := LineNr;
//Trailer
if GetOption('TrailerURL')=1 then begin
LineNr := FindLine('">Trailer</a>', Page, PrevLineNr);
if LineNr > -1 then
begin
Line := Page.GetString(LineNr);
if Pos('size="2"><a', Line) <> 0 then Delete(Line,1,pos('size="2"><a',Line));
//if Pos('DVD', Line) <> 0 then Delete(Line,1,pos('DVD',Line));
Delete(Line,1,pos('href="',Line)+5);
NomeHtml := Copy(Line,1,pos('"',Line)-1);
if (copy(NomeHtml,1,1)<>'/') then
begin
NomeHtml := '/' + NomeHtml;
end;
NomeHtml :='http://filmup.leonardo.it' + NomeHtml;
comm := textbetween(GetPage(NomeHtml),'<EMBED SRC="','"');
//HTMLRemoveTags(comm);
SetField(fieldURL,comm);
PrevLineNr := LineNr;
end;
end;
//Comments
LineNr := FindLine('">Recensione</a>', Page, PrevLineNr);
if LineNr > -1 then
begin
Line := Page.GetString(LineNr);
if Pos('Scheda', Line) <> 0 then Delete(Line,1,pos('Scheda',Line));
if Pos('DVD', Line) <> 0 then Delete(Line,1,pos('DVD',Line));
Delete(Line,1,pos('href="',Line)+5);
NomeHtml :=Copy(Line,1,pos('"',Line)-1);
if (copy(NomeHtml,1,1)<>'/') then
begin
NomeHtml := '/' + NomeHtml;
end;
comm := textbetween(GetPage(NomeHtml),'<font face="arial,helvetica" size="2"><b>','<a class="filmup" href="opinioni.htm">');
comm := textafter(comm,'</b><br>'+#13#10);
HTMLRemoveTags(comm);
SetField(fieldComments,comm);
PrevLineNr := LineNr;
end;
//Rating
LineNr := FindLine('">Opinioni</a>', Page, PrevLineNr);
if LineNr > -1 then
begin
Line := Page.GetString(LineNr);
Delete(Line,1,pos('Recensione',Line));
Delete(Line,1,pos('href="',Line)+5);
Line := GetLineFromOtherPage(Copy(Line,1,pos('"',Line)-1),'</b> - <img src="');
if Line <> '' then
begin
Line := Copy(Line,1,pos('</b> - <img src="',Line)-1);
if GetOption('MezzoVoto')=0 then
if pos('.',Line)>0 then Line := Copy(Line,1,pos('.',Line)-1);
SetField(fieldRating,Line);
end;
PrevLineNr := LineNr;
end;
//Picture
begin
LineNr := FindLine('<img src="locand', Page, PrevLineNr);
if LineNr > -1 then
begin
Line := Page.GetString(LineNr);
Delete(Line,1,pos('<img src="locand', Line)+9);
GetPicture('http://filmup.leonardo.it/'+Copy(Line,1,pos('"',Line)-1));
end;
end
LineNr := FindLine('href="posters/locp/', Page, PrevLineNr);
if LineNr > -1 then
begin
Line := Page.GetString(LineNr);
Delete(Line,1,pos('href="posters/locp/',Line)+5);
Line := GetLineFromOtherPage('http://filmup.leonardo.it/'+Copy(Line,1,pos('"',Line)-1),'<img src="../loc/500/');
if Line <> '' then
begin
Delete(Line,1,pos('<img src="../',Line)+12);
GetPicture('http://filmup.leonardo.it/posters/'+Copy(Line,1,pos('"',Line)-1));
end;
end;
//DisplayResults;
end;
function GetLineFromOtherPage(address: string; hint: string): string;
var
Page: TStringList;
LineNr: integer;
begin
Page := TStringList.Create;
Page.Text := GetPage(Address);
LineNr := FindLine(hint, Page, 0);
if LineNr > -1 then result := Page.GetString(LineNr);
Page.Free;
end;
procedure GetComments(address: string);
var
Page: TStringList;
BeginLine: integer;
EndLine: integer;
i: integer;
Line, Comments: string;
begin
Page := TStringList.Create;
Page.Text := GetPage(Address);
BeginLine := FindLine('RECENSIONI', Page, 0);
BeginLine := FindLine('<font face="arial,helvetica" size="2"><b>', Page, BeginLine);
EndLine := FindLine('<a href="opinioni.htm">Scrivi la tua recensione!</a></font><br><br>', Page, BeginLine);
for i:= BeginLine+1 to EndLine-1 do
begin
Line := Page.GetString(i);
Line := StringReplace(Line, '<br>', #13#10);
Line := StringReplace(Line, #13#10#32, #13#10);
HTMLRemoveTags(Line);
HTMLDecode(Line);
Comments := Comments + Line;
end;
SetField(fieldComments, Comments);
Page.Free;
end;
//
procedure AddMoviesTitles(Page: TStringList);
var
LineNr: Integer;
Line: string;
MovieTitle, MovieAddress, MovieAnno: string;
BeginPos, EndPos: Integer;
begin
LineNr := 0;
LineNr := FindLine('FilmUP - Scheda: ',Page,LineNr);
while LineNr > -1 do
begin
MovieAddress := 'http://filmup.leonardo.it/sc_' + TextBetween((Page.GetString(LineNr-1)), '_', '.') + '.htm';
Line := Page.GetString(LineNr);
MovieTitle := TextAfter(Page.GetString(LineNr), 'Scheda: ');
While pos ('<span', MovieTitle) > 0 Do begin
MovieTitle := TextBefore(MovieTitle, '<span', '') + TextAfter(MovieTitle, 'bold;">');
end;
While pos ('</span', MovieTitle) > 0 Do begin
MovieTitle := TextBefore(MovieTitle, '</span', '') + TextAfter(MovieTitle, '/span>');
end;
// Inizio Fulvio53s03
LineNr := FindLine('Anno: ',Page,LineNr);
Line := Page.GetString(LineNr);
// Showmessage ('Line ***' + Line + '***')
MovieAnno := TextAfter(Page.GetString(LineNr), 'Anno: ');
Showmessage ('MovieAnno ***' + MovieAnno + '***')
If pos ('Anno: ', Line) > 0 then
begin;
MovieAnno := TextBefore(MovieAnno, ' Genere: ', '') + TextAfter(MovieAnno, 'Anno: ');
// showmessage ('Anno***' + MovieAnno + '***');
end
else
MovieAnno := ' ';
// Fine Fulvio53s03
HTMLRemoveTags(MovieTitle);
HTMLDecode(Movietitle);
LineNr := FindLine('FilmUP - Scheda:',Page,LineNr+1);
MovieTitle := MovieTitle + ' [' + MovieAnno + ']';
PickTreeAdd(MovieTitle, MovieAddress);
if TheMovieAddress='*' then
TheMovieAddress := MovieAddress
else
TheMovieAddress := '';
end;
LineNr := FindLine('Successivo',Page,LineNr);
Line := Page.GetString(LineNr);
BeginPos := pos('HREF',Line);
if BeginPos>0 then
begin
Delete(Line,1,BeginPos + 5);
EndPos := pos('"',Line);
MovieAddress := copy(Line,1,EndPos-1);
PickTreeMoreLink(MovieAddress);
end;
if TheMovieAddress='*' then TheMovieAddress := '';
end;
//
// -----------------------------
// Questo è il main dello script
// -----------------------------
begin
if CheckVersion(3,5,0) then
begin
TheMovieAddress := '*';
MovieName := StringReplace(GetField(fieldTranslatedTitle), '.', ' ');
if MovieName = '' then
MovieName := StringReplace(GetField(fieldOriginalTitle), '.', ' ');
While pos ('[', MovieName) > 0 Do begin
MovieName := TextBefore(MovieName, '[', '') + TextAfter(MovieName, ']');
end;
if Input('FilmUP Import', 'Digita il titolo del film:', MovieName) then
begin
AnalyzePage('http://filmup.leonardo.it/cgi-bin/search.cgi?q='+UrlEncode(MovieName)+'&ul=%25%2Fsc_%25');
end;
end
else
ShowMessage('Questo script richiede una versione più nuova di Ant Movie Catalog (almeno la versione 3.5.0)');
end.
-
- Posts: 745
- Joined: 2007-04-28 05:46:43
- Location: Italy
you did not use the
Code: Select all
tag ;) I added it and removed code from first message then
-
- Posts: 745
- Joined: 2007-04-28 05:46:43
- Location: Italy
Where and how may I introduce the tag code?
maybe I must write exactly:
maybe I must write exactly:
Code: Select all
and not simply code
at the beginning of the script? Thanks.
i'm sorry, my english is not so good!!!
Here is the modified script...
Here is the modified script...
Code: Select all
(***************************************************
Ant Movie Catalog importation script
www.antp.be/software/moviecatalog/
[Infos]
Authors=L. Francisco
Title=FilmUP
Description=Get movie info from LeoFilmUP.it and shows years il picklist (Fulvio53s03)
Site=http://filmup.leonardo.it
Language=IT
Version=1.0.3 - 19.09.2005
Requires=3.5.0
Comments=**Changes**|Pivello: query URL changed|Zandal: sistemato puntamento a COMMENTS|Pivello: Film site URL selectable instead of FilmUp page URL|dinolib: adapted to v.3.5.0 and little bugfix | ABNormal restarted...|14.04.2005: Fixed infinite loop if description field missing (Pivello)|16.09.2005: Look for new Main Actors data into page; if present select this instead of Cast data (P)|16.09.2005: Added ActorPlusCast option (P)|03.10.2005 ABNormal: Big Posters and Comments again|14.01.2006 ABNormal: Trailer URL|16.09.2008 Fulvio53s03: shows years il picklist|19.09.2008 Gigibop: Comment ShowMessage (debug pourpose...)
License=* 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 |
GetInfo=1
[Options]
AlternateURL=0|0|0=Use the FilmUP web site for FieldURL|1=Try to use ufficial movie web site for FieldURL
MezzoVoto=1|1|0=Integer Ratings|1=Ratings with ,5
ActorsPlusCast=0|0|0=Get Main Actors data (if present) otherwise get Cast field|1=Get Main Actors data (if present) and Cast data
TrailerURL=0|0|0=Normal URL page|1=Trailer URL page (if found)
***************************************************)
program LeonardoFilmUP;
uses
StringUtils1;
var
MovieName: string;
TheMovieAddress: string;
comm: String;
procedure AnalyzePage(Address: string);
var
Page: TStringList;
LineNr: integer;
BeginPos: integer;
begin
Page := TStringList.Create;
Page.Text := GetPage(Address);
LineNr := FindLine('Ordina risultati per', Page, 0);
if LineNr = -1 then
begin
SetField(fieldURL, Address);
AnalyzeMoviePage(Page);
end
else
begin
PickTreeClear;
AddMoviesTitles(Page);
if TheMovieAddress='' then
begin
if PickTreeExec(Address) then AnalyzePage(Address);
end
else
begin
SetField(fieldURL, TheMovieAddress);
Page.Text := GetPage(TheMovieAddress);
AnalyzeMoviePage(Page);
end;
end;
Page.Free;
end;
procedure AnalyzeMoviePage(Page: TStringList);
var
Line, PreviousLine, NomeHtml, sTemp: string;
LineNr,PrevLineNr, BeginPos, EndPos, Field: Integer;
IsMainActors: boolean;
begin
IsMainActors := false;
sTemp := '';
LineNr := FindLine('<font face="arial, helvetica" size="3"><b>', Page, 0);
if LineNr > -1 then
begin
//Translated Title
Line := Page.GetString(LineNr);
HTMLRemoveTags(Line);
SetField(fieldTranslatedTitle, Line);
repeat
//Look for next info
repeat
LineNr := LineNr + 1;
Line := Page.GetString(LineNr);
HTMLRemoveTags(Line);
until (Line<>'') or (LineNr > Page.Count);
// Test if 'Trama:' missing
if ((PreviousLine = 'Data di uscita: ')
or (PreviousLine = 'Uscita prevista: ')) and (Line <> 'Trama:') then
if (copy(Line,1,6)<>'Trama:') then
Line := 'Trama:' + Line;
PreviousLine := Line;
//Look for type of line
if Line = 'Titolo originale: ' then
Field := fieldOriginalTitle
else if Line = 'Regia: ' then
Field := fieldDirector
else if Line = 'Produzione: ' then
Field := fieldProducer
else if Line = 'Nazione: ' then
Field := fieldCountry
else if Line = 'Genere: ' then
Field := fieldCategory
else if Line = 'Anno: ' then
Field := fieldYear
else if Line = 'Durata: ' then
Field := fieldLength //Special case: get number only
else if Line = 'Sito ufficiale: ' then
Field := fieldURL
else if Line = 'Attori protagonisti: ' then
begin
Field := fieldActors;
IsMainActors := true;
end
else if Line = 'Cast: ' then
Field := fieldActors
else if Line = 'Trama:' then
Field := fieldDescription
else
Field := 0;
// I have to add this test, for sometimes the description
// is on the same line as the tag 'Trama'
if (copy(Line,1,6)='Trama:') and (length(Line)>6) then
begin
Field := fieldDescription;
Delete(Line,1,6);
HTMLDecode(Line);
end
else
begin
//Get values
LineNr := LineNr + 1;
Line := Page.GetString(LineNr);
HTMLRemoveTags(Line);
HTMLDecode(Line);
//Special case: Length
if Field = fieldLength then Line := copy(Line,1,length(Line)-1);
end;
//Alternative URL case
if (field = fieldURL) then
begin
if (Length(Line) = 0) or (GetOption('AlternateURL')=0) then // if WEB url missing or explicitly requested...
Line := GetField(fieldURL) // ...restore FilmUp URL
else
Line := 'http://'+Line;
end;
if Field<>0 then
begin
if Field = fieldActors then
begin
if IsMainActors then // Remember Main Actors (if present)
begin
sTemp := Line;
IsMainActors := false;
end
else
begin
if ((GetOption('ActorsPlusCast')=1) and (sTemp<>'')) then
Line := sTemp + ' Cast: ' + Line
else
if sTemp <> '' then
Line := sTemp;
SetField(Field,Line);
end;
end
else
SetField(Field,Line);
end;
until (Field=fieldDescription) or (LineNr > Page.Count);
end;
PrevLineNr := LineNr;
//Trailer
if GetOption('TrailerURL')=1 then begin
LineNr := FindLine('">Trailer</a>', Page, PrevLineNr);
if LineNr > -1 then
begin
Line := Page.GetString(LineNr);
if Pos('size="2"><a', Line) <> 0 then Delete(Line,1,pos('size="2"><a',Line));
//if Pos('DVD', Line) <> 0 then Delete(Line,1,pos('DVD',Line));
Delete(Line,1,pos('href="',Line)+5);
NomeHtml := Copy(Line,1,pos('"',Line)-1);
if (copy(NomeHtml,1,1)<>'/') then
begin
NomeHtml := '/' + NomeHtml;
end;
NomeHtml :='http://filmup.leonardo.it' + NomeHtml;
comm := textbetween(GetPage(NomeHtml),'<EMBED SRC="','"');
//HTMLRemoveTags(comm);
SetField(fieldURL,comm);
PrevLineNr := LineNr;
end;
end;
//Comments
LineNr := FindLine('">Recensione</a>', Page, PrevLineNr);
if LineNr > -1 then
begin
Line := Page.GetString(LineNr);
if Pos('Scheda', Line) <> 0 then Delete(Line,1,pos('Scheda',Line));
if Pos('DVD', Line) <> 0 then Delete(Line,1,pos('DVD',Line));
Delete(Line,1,pos('href="',Line)+5);
NomeHtml :=Copy(Line,1,pos('"',Line)-1);
if (copy(NomeHtml,1,1)<>'/') then
begin
NomeHtml := '/' + NomeHtml;
end;
comm := textbetween(GetPage(NomeHtml),'<font face="arial,helvetica" size="2"><b>','<a class="filmup" href="opinioni.htm">');
comm := textafter(comm,'</b><br>'+#13#10);
HTMLRemoveTags(comm);
SetField(fieldComments,comm);
PrevLineNr := LineNr;
end;
//Rating
LineNr := FindLine('">Opinioni</a>', Page, PrevLineNr);
if LineNr > -1 then
begin
Line := Page.GetString(LineNr);
Delete(Line,1,pos('Recensione',Line));
Delete(Line,1,pos('href="',Line)+5);
Line := GetLineFromOtherPage(Copy(Line,1,pos('"',Line)-1),'</b> - <img src="');
if Line <> '' then
begin
Line := Copy(Line,1,pos('</b> - <img src="',Line)-1);
if GetOption('MezzoVoto')=0 then
if pos('.',Line)>0 then Line := Copy(Line,1,pos('.',Line)-1);
SetField(fieldRating,Line);
end;
PrevLineNr := LineNr;
end;
//Picture
begin
LineNr := FindLine('<img src="locand', Page, PrevLineNr);
if LineNr > -1 then
begin
Line := Page.GetString(LineNr);
Delete(Line,1,pos('<img src="locand', Line)+9);
GetPicture('http://filmup.leonardo.it/'+Copy(Line,1,pos('"',Line)-1));
end;
end
LineNr := FindLine('href="posters/locp/', Page, PrevLineNr);
if LineNr > -1 then
begin
Line := Page.GetString(LineNr);
Delete(Line,1,pos('href="posters/locp/',Line)+5);
Line := GetLineFromOtherPage('http://filmup.leonardo.it/'+Copy(Line,1,pos('"',Line)-1),'<img src="../loc/500/');
if Line <> '' then
begin
Delete(Line,1,pos('<img src="../',Line)+12);
GetPicture('http://filmup.leonardo.it/posters/'+Copy(Line,1,pos('"',Line)-1));
end;
end;
//DisplayResults;
end;
function GetLineFromOtherPage(address: string; hint: string): string;
var
Page: TStringList;
LineNr: integer;
begin
Page := TStringList.Create;
Page.Text := GetPage(Address);
LineNr := FindLine(hint, Page, 0);
if LineNr > -1 then result := Page.GetString(LineNr);
Page.Free;
end;
procedure GetComments(address: string);
var
Page: TStringList;
BeginLine: integer;
EndLine: integer;
i: integer;
Line, Comments: string;
begin
Page := TStringList.Create;
Page.Text := GetPage(Address);
BeginLine := FindLine('RECENSIONI', Page, 0);
BeginLine := FindLine('<font face="arial,helvetica" size="2"><b>', Page, BeginLine);
EndLine := FindLine('<a href="opinioni.htm">Scrivi la tua recensione!</a></font><br><br>', Page, BeginLine);
for i:= BeginLine+1 to EndLine-1 do
begin
Line := Page.GetString(i);
Line := StringReplace(Line, '<br>', #13#10);
Line := StringReplace(Line, #13#10#32, #13#10);
HTMLRemoveTags(Line);
HTMLDecode(Line);
Comments := Comments + Line;
end;
SetField(fieldComments, Comments);
Page.Free;
end;
//
procedure AddMoviesTitles(Page: TStringList);
var
LineNr: Integer;
Line: string;
MovieTitle, MovieAddress, MovieAnno: string;
BeginPos, EndPos: Integer;
begin
LineNr := 0;
LineNr := FindLine('FilmUP - Scheda: ',Page,LineNr);
while LineNr > -1 do
begin
MovieAddress := 'http://filmup.leonardo.it/sc_' + TextBetween((Page.GetString(LineNr-1)), '_', '.') + '.htm';
Line := Page.GetString(LineNr);
MovieTitle := TextAfter(Page.GetString(LineNr), 'Scheda: ');
While pos ('<span', MovieTitle) > 0 Do begin
MovieTitle := TextBefore(MovieTitle, '<span', '') + TextAfter(MovieTitle, 'bold;">');
end;
While pos ('</span', MovieTitle) > 0 Do begin
MovieTitle := TextBefore(MovieTitle, '</span', '') + TextAfter(MovieTitle, '/span>');
end;
// Inizio Fulvio53s03
LineNr := FindLine('Anno: ',Page,LineNr);
Line := Page.GetString(LineNr);
// Showmessage ('Line ***' + Line + '***')
MovieAnno := TextAfter(Page.GetString(LineNr), 'Anno: ');
// Showmessage ('MovieAnno ***' + MovieAnno + '***')
If pos ('Anno: ', Line) > 0 then
begin;
MovieAnno := TextBefore(MovieAnno, ' Genere: ', '') + TextAfter(MovieAnno, 'Anno: ');
// showmessage ('Anno***' + MovieAnno + '***');
end
else
MovieAnno := ' ';
// Fine Fulvio53s03
HTMLRemoveTags(MovieTitle);
HTMLDecode(Movietitle);
LineNr := FindLine('FilmUP - Scheda:',Page,LineNr+1);
MovieTitle := MovieTitle + ' [' + MovieAnno + ']';
PickTreeAdd(MovieTitle, MovieAddress);
if TheMovieAddress='*' then
TheMovieAddress := MovieAddress
else
TheMovieAddress := '';
end;
LineNr := FindLine('Successivo',Page,LineNr);
Line := Page.GetString(LineNr);
BeginPos := pos('HREF',Line);
if BeginPos>0 then
begin
Delete(Line,1,BeginPos + 5);
EndPos := pos('"',Line);
MovieAddress := copy(Line,1,EndPos-1);
PickTreeMoreLink(MovieAddress);
end;
if TheMovieAddress='*' then TheMovieAddress := '';
end;
//
// -----------------------------
// Questo è il main dello script
// -----------------------------
begin
if CheckVersion(3,5,0) then
begin
TheMovieAddress := '*';
MovieName := StringReplace(GetField(fieldTranslatedTitle), '.', ' ');
if MovieName = '' then
MovieName := StringReplace(GetField(fieldOriginalTitle), '.', ' ');
While pos ('[', MovieName) > 0 Do begin
MovieName := TextBefore(MovieName, '[', '') + TextAfter(MovieName, ']');
end;
if Input('FilmUP Import', 'Digita il titolo del film:', MovieName) then
begin
AnalyzePage('http://filmup.leonardo.it/cgi-bin/search.cgi?q='+UrlEncode(MovieName)+'&ul=%25%2Fsc_%25');
end;
end
else
ShowMessage('Questo script richiede una versione più nuova di Ant Movie Catalog (almeno la versione 3.5.0)');
end.
-
- Posts: 745
- Joined: 2007-04-28 05:46:43
- Location: Italy
add Poster flag feature
I have just add a flag to give to user the choice of choose the downloaded poster size
Add the Option "Poster"
= 0 => Download tiny Poster
= 1 => Download full-res Poster
[/code]
Add the Option "Poster"
= 0 => Download tiny Poster
= 1 => Download full-res Poster
Code: Select all
line 23
Poster=1|0|1=Download full-res Poster|0=Download tiny Poster
line 255 or 256
// start fmsgorb Code
if GetOption('Poster')=1 then
begin
LineNr := FindLine('href="posters/locp/', Page, PrevLineNr);
if LineNr > -1 then
begin
Line := Page.GetString(LineNr);
Delete(Line,1,pos('href="posters/locp/',Line)+5);
Line := GetLineFromOtherPage('http://filmup.leonardo.it/'+Copy(Line,1,pos('"',Line)-1),'<img src="../loc/500/');
if Line <> '' then
begin
Delete(Line,1,pos('<img src="../',Line)+12);
GetPicture('http://filmup.leonardo.it/posters/'+Copy(Line,1,pos('"',Line)-1));
end;
end;
end;
// end fmsgorb Code
-
- Posts: 745
- Joined: 2007-04-28 05:46:43
- Location: Italy
Well done!
.... but you know.... Italians do it better!
jokes apart, I think it would be better if you publish complete managed script.
I checked the script using the title 'Pelham' and it looks to always extract the full-size image (but the error could be mine.....)
Thanks!
Splendido, ma si sa..... Italians do it better! (meglio non tradurre....).
Schersi a parte, credo sarebbe meglio se si pubblicasse l'intero script che, provato col titolo 'Pelham', sembra funzionare ma estrae sempre e solo l'immagine ingrandita (ma può essere un mio errore....)
Grazie!
.... but you know.... Italians do it better!
jokes apart, I think it would be better if you publish complete managed script.
I checked the script using the title 'Pelham' and it looks to always extract the full-size image (but the error could be mine.....)
Thanks!
Splendido, ma si sa..... Italians do it better! (meglio non tradurre....).
Schersi a parte, credo sarebbe meglio se si pubblicasse l'intero script che, provato col titolo 'Pelham', sembra funzionare ma estrae sempre e solo l'immagine ingrandita (ma può essere un mio errore....)
Grazie!
yessssah
italians do it better!
here the complete script
italians do it better!
here the complete script
Code: Select all
(***************************************************
Ant Movie Catalog importation script
www.antp.be/software/moviecatalog/
[Infos]
Authors=L. Francisco, Pivello, Zandal, Fulvio53s03, ...
Title=FilmUP
Description=Get movie info from LeoFilmUP.it
Site=http://filmup.leonardo.it
Language=IT
Version=1.0.4 - 12.09.2008
Requires=3.5.0
Comments=**Changes**|Fulvio53s03: shows years in picklist|Pivello: query URL changed|Zandal: sistemato puntamento a COMMENTS|Pivello: Film site URL selectable instead of FilmUp page URL|dinolib: adapted to v.3.5.0 and little bugfix | ABNormal restarted...|14.04.2005: Fixed infinite loop if description field missing (Pivello)|16.09.2005: Look for new Main Actors data into page; if present select this instead of Cast data (P)|16.09.2005: Added ActorPlusCast option (P)|03.10.2005 ABNormal: Big Posters and Comments again|14.01.2006 ABNormal: Trailer URL
License=* 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 |
GetInfo=1
[Options]
AlternateURL=0|0|0=Use the FilmUP web site for FieldURL|1=Try to use ufficial movie web site for FieldURL
MezzoVoto=1|1|0=Integer Ratings|1=Ratings with ,5
ActorsPlusCast=0|0|0=Get Main Actors data (if present) otherwise get Cast field|1=Get Main Actors data (if present) and Cast data
TrailerURL=0|0|0=Normal URL page|1=Trailer URL page (if found)
Poster=0|0|1=Download full-res Poster|0=Download tiny Poster
***************************************************)
program LeonardoFilmUP;
uses
StringUtils1;
var
MovieName: string;
TheMovieAddress: string;
comm: String;
procedure AnalyzePage(Address: string);
var
Page: TStringList;
LineNr: integer;
BeginPos: integer;
begin
Page := TStringList.Create;
Page.Text := GetPage(Address);
LineNr := FindLine('Ordina risultati per', Page, 0);
if LineNr = -1 then
begin
SetField(fieldURL, Address);
AnalyzeMoviePage(Page);
end
else
begin
PickTreeClear;
AddMoviesTitles(Page);
if TheMovieAddress='' then
begin
if PickTreeExec(Address) then AnalyzePage(Address);
end
else
begin
SetField(fieldURL, TheMovieAddress);
Page.Text := GetPage(TheMovieAddress);
AnalyzeMoviePage(Page);
end;
end;
Page.Free;
end;
procedure AnalyzeMoviePage(Page: TStringList);
var
Line, PreviousLine, NomeHtml, sTemp: string;
LineNr,PrevLineNr, BeginPos, EndPos, Field: Integer;
IsMainActors: boolean;
begin
IsMainActors := false;
sTemp := '';
LineNr := FindLine('<font face="arial, helvetica" size="3"><b>', Page, 0);
if LineNr > -1 then
begin
//Translated Title
Line := Page.GetString(LineNr);
HTMLRemoveTags(Line);
SetField(fieldTranslatedTitle, Line);
repeat
//Look for next info
repeat
LineNr := LineNr + 1;
Line := Page.GetString(LineNr);
HTMLRemoveTags(Line);
until (Line<>'') or (LineNr > Page.Count);
// Test if 'Trama:' missing
if ((PreviousLine = 'Data di uscita: ')
or (PreviousLine = 'Uscita prevista: ')) and (Line <> 'Trama:') then
if (copy(Line,1,6)<>'Trama:') then
Line := 'Trama:' + Line;
PreviousLine := Line;
//Look for type of line
if Line = 'Titolo originale: ' then
Field := fieldOriginalTitle
else if Line = 'Regia: ' then
Field := fieldDirector
else if Line = 'Produzione: ' then
Field := fieldProducer
else if Line = 'Nazione: ' then
Field := fieldCountry
else if Line = 'Genere: ' then
Field := fieldCategory
else if Line = 'Anno: ' then
Field := fieldYear
else if Line = 'Durata: ' then
Field := fieldLength //Special case: get number only
else if Line = 'Sito ufficiale: ' then
Field := fieldURL
else if Line = 'Attori protagonisti: ' then
begin
Field := fieldActors;
IsMainActors := true;
end
else if Line = 'Cast: ' then
Field := fieldActors
else if Line = 'Trama:' then
Field := fieldDescription
else
Field := 0;
// I have to add this test, for sometimes the description
// is on the same line as the tag 'Trama'
if (copy(Line,1,6)='Trama:') and (length(Line)>6) then
begin
Field := fieldDescription;
Delete(Line,1,6);
HTMLDecode(Line);
end
else
begin
//Get values
LineNr := LineNr + 1;
Line := Page.GetString(LineNr);
HTMLRemoveTags(Line);
HTMLDecode(Line);
//Special case: Length
if Field = fieldLength then Line := copy(Line,1,length(Line)-1);
end;
//Alternative URL case
if (field = fieldURL) then
begin
if (Length(Line) = 0) or (GetOption('AlternateURL')=0) then // if WEB url missing or explicitly requested...
Line := GetField(fieldURL) // ...restore FilmUp URL
else
Line := 'http://'+Line;
end;
if Field<>0 then
begin
if Field = fieldActors then
begin
if IsMainActors then // Remember Main Actors (if present)
begin
sTemp := Line;
IsMainActors := false;
end
else
begin
if ((GetOption('ActorsPlusCast')=1) and (sTemp<>'')) then
Line := sTemp + ' Cast: ' + Line
else
if sTemp <> '' then
Line := sTemp;
SetField(Field,Line);
end;
end
else
SetField(Field,Line);
end;
until (Field=fieldDescription) or (LineNr > Page.Count);
end;
PrevLineNr := LineNr;
//Trailer
if GetOption('TrailerURL')=1 then begin
LineNr := FindLine('">Trailer</a>', Page, PrevLineNr);
if LineNr > -1 then
begin
Line := Page.GetString(LineNr);
if Pos('size="2"><a', Line) <> 0 then Delete(Line,1,pos('size="2"><a',Line));
//if Pos('DVD', Line) <> 0 then Delete(Line,1,pos('DVD',Line));
Delete(Line,1,pos('href="',Line)+5);
NomeHtml := Copy(Line,1,pos('"',Line)-1);
if (copy(NomeHtml,1,1)<>'/') then
begin
NomeHtml := '/' + NomeHtml;
end;
NomeHtml :='http://filmup.leonardo.it' + NomeHtml;
comm := textbetween(GetPage(NomeHtml),'<EMBED SRC="','"');
//HTMLRemoveTags(comm);
SetField(fieldURL,comm);
PrevLineNr := LineNr;
end;
end;
//Comments
LineNr := FindLine('">Recensione</a>', Page, PrevLineNr);
if LineNr > -1 then
begin
Line := Page.GetString(LineNr);
if Pos('Scheda', Line) <> 0 then Delete(Line,1,pos('Scheda',Line));
if Pos('DVD', Line) <> 0 then Delete(Line,1,pos('DVD',Line));
Delete(Line,1,pos('href="',Line)+5);
NomeHtml :=Copy(Line,1,pos('"',Line)-1);
if (copy(NomeHtml,1,1)<>'/') then
begin
NomeHtml := '/' + NomeHtml;
end;
comm := textbetween(GetPage(NomeHtml),'<font face="arial,helvetica" size="2"><b>','<a class="filmup" href="opinioni.htm">');
comm := textafter(comm,'</b><br>'+#13#10);
HTMLRemoveTags(comm);
SetField(fieldComments,comm);
PrevLineNr := LineNr;
end;
//Rating
LineNr := FindLine('">Opinioni</a>', Page, PrevLineNr);
if LineNr > -1 then
begin
Line := Page.GetString(LineNr);
Delete(Line,1,pos('Recensione',Line));
Delete(Line,1,pos('href="',Line)+5);
Line := GetLineFromOtherPage(Copy(Line,1,pos('"',Line)-1),'</b> - <img src="');
if Line <> '' then
begin
Line := Copy(Line,1,pos('</b> - <img src="',Line)-1);
if GetOption('MezzoVoto')=0 then
if pos('.',Line)>0 then Line := Copy(Line,1,pos('.',Line)-1);
SetField(fieldRating,Line);
end;
PrevLineNr := LineNr;
end;
//Picture
begin
LineNr := FindLine('<img src="locand', Page, PrevLineNr);
if LineNr > -1 then
begin
Line := Page.GetString(LineNr);
Delete(Line,1,pos('<img src="locand', Line)+9);
GetPicture('http://filmup.leonardo.it/'+Copy(Line,1,pos('"',Line)-1));
end;
end
// start fmsgorb Code
if GetOption('Poster')=1 then
begin
LineNr := FindLine('href="posters/locp/', Page, PrevLineNr);
if LineNr > -1 then
begin
Line := Page.GetString(LineNr);
Delete(Line,1,pos('href="posters/locp/',Line)+5);
Line := GetLineFromOtherPage('http://filmup.leonardo.it/'+Copy(Line,1,pos('"',Line)-1),'<img src="../loc/500/');
if Line <> '' then
begin
Delete(Line,1,pos('<img src="../',Line)+12);
GetPicture('http://filmup.leonardo.it/posters/'+Copy(Line,1,pos('"',Line)-1));
end;
end;
end;
// end fmsgorb Code
// DisplayResults;
end;
function GetLineFromOtherPage(address: string; hint: string): string;
var
Page: TStringList;
LineNr: integer;
begin
Page := TStringList.Create;
Page.Text := GetPage(Address);
LineNr := FindLine(hint, Page, 0);
if LineNr > -1 then result := Page.GetString(LineNr);
Page.Free;
end;
procedure GetComments(address: string);
var
Page: TStringList;
BeginLine: integer;
EndLine: integer;
i: integer;
Line, Comments: string;
begin
Page := TStringList.Create;
Page.Text := GetPage(Address);
BeginLine := FindLine('RECENSIONI', Page, 0);
BeginLine := FindLine('<font face="arial,helvetica" size="2"><b>', Page, BeginLine);
EndLine := FindLine('<a href="opinioni.htm">Scrivi la tua recensione!</a></font><br><br>', Page, BeginLine);
for i:= BeginLine+1 to EndLine-1 do
begin
Line := Page.GetString(i);
Line := StringReplace(Line, '<br>', #13#10);
Line := StringReplace(Line, #13#10#32, #13#10);
HTMLRemoveTags(Line);
HTMLDecode(Line);
Comments := Comments + Line;
end;
SetField(fieldComments, Comments);
Page.Free;
end;
//
procedure AddMoviesTitles(Page: TStringList);
var
LineNr: Integer;
Line: string;
MovieTitle, MovieAddress, MovieAnno: string;
BeginPos, EndPos: Integer;
begin
LineNr := 0;
LineNr := FindLine('FilmUP - Scheda: ',Page,LineNr);
while LineNr > -1 do
begin
MovieAddress := 'http://filmup.leonardo.it/sc_' + TextBetween((Page.GetString(LineNr-1)), '_', '.') + '.htm';
Line := Page.GetString(LineNr);
MovieTitle := TextAfter(Page.GetString(LineNr), 'Scheda: ');
While pos ('<span', MovieTitle) > 0 Do begin
MovieTitle := TextBefore(MovieTitle, '<span', '') + TextAfter(MovieTitle, 'bold;">');
end;
While pos ('</span', MovieTitle) > 0 Do begin
MovieTitle := TextBefore(MovieTitle, '</span', '') + TextAfter(MovieTitle, '/span>');
end;
// Inizio Fulvio53s03
LineNr := FindLine('Anno: ',Page,LineNr);
Line := Page.GetString(LineNr);
// Showmessage ('Line ***' + Line + '***')
MovieAnno := TextAfter(Page.GetString(LineNr), 'Anno: ');
// Showmessage ('MovieAnno ***' + MovieAnno + '***')
If pos ('Anno: ', Line) > 0 then
begin;
MovieAnno := TextBefore(MovieAnno, ' Genere: ', '') + TextAfter(MovieAnno, 'Anno: ');
// showmessage ('Anno***' + MovieAnno + '***');
end
else
MovieAnno := ' ';
// Fine Fulvio53s03
HTMLRemoveTags(MovieTitle);
HTMLDecode(Movietitle);
LineNr := FindLine('FilmUP - Scheda:',Page,LineNr+1);
MovieTitle := MovieTitle + ' [' + MovieAnno + ']';
PickTreeAdd(MovieTitle, MovieAddress);
if TheMovieAddress='*' then
TheMovieAddress := MovieAddress
else
TheMovieAddress := '';
end;
LineNr := FindLine('Successivo',Page,LineNr);
Line := Page.GetString(LineNr);
BeginPos := pos('HREF',Line);
if BeginPos>0 then
begin
Delete(Line,1,BeginPos + 5);
EndPos := pos('"',Line);
MovieAddress := copy(Line,1,EndPos-1);
PickTreeMoreLink(MovieAddress);
end;
if TheMovieAddress='*' then TheMovieAddress := '';
end;
//
// -----------------------------
// Questo è il main dello script
// -----------------------------
begin
if CheckVersion(3,5,0) then
begin
TheMovieAddress := '*';
MovieName := StringReplace(GetField(fieldTranslatedTitle), '.', ' ');
if MovieName = '' then
MovieName := StringReplace(GetField(fieldOriginalTitle), '.', ' ');
While pos ('[', MovieName) > 0 Do begin
MovieName := TextBefore(MovieName, '[', '') + TextAfter(MovieName, ']');
end;
if Input('FilmUP Import', 'Digita il titolo del film:', MovieName) then
begin
AnalyzePage('http://filmup.leonardo.it/cgi-bin/search.cgi?q='+UrlEncode(MovieName)+'&ul=%25%2Fsc_%25');
end;
end
else
ShowMessage('Questo script richiede una versione più nuova di Ant Movie Catalog (almeno la versione 3.5.0)');
end.
-
- Posts: 17
- Joined: 2009-07-16 11:08:39
The latest 1.0.5 have a wrong update date in the file:
And whit this latest version it's no more possibibly to pick the zoomed image of a cover........ the latest pick only a small cover......
Code: Select all
[Infos]
Authors=L. Francisco, Pivello, Zandal, Fulvio53s03, ...
Title=FilmUP
Description=Get movie info from LeoFilmUP.it
Site=http://filmup.leonardo.it
Language=IT
Version=1.0.5 - 04.11.2008
Requires=3.5.0
Comments=**Changes**|Fulvio53s03: shows years in picklist|Pivello: query URL changed|Zandal: sistemato puntamento a COMMENTS|Pivello: Film site URL selectable instead of FilmUp page URL|dinolib: adapted to v.3.5.0 and little bugfix | ABNormal restarted...|14.04.2005: Fixed infinite loop if description field missing (Pivello)|16.09.2005: Look for new Main Actors data into page; if present select this instead of Cast data (P)|16.09.2005: Added ActorPlusCast option (P)|03.10.2005 ABNormal: Big Posters and Comments again|14.01.2006 ABNormal: Trailer URL
License=* 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 |
GetInfo=1
-
- Posts: 17
- Joined: 2009-07-16 11:08:39