Page 1 of 1
Script for -- Movie Poster Awards (http://www.impawards)
Posted: 2004-03-12 08:42:35
by bro
http://www.impawards.com/
This is a great site for movie posters... It would be great if someone made a script for AMC... Can't do it myself though...
anyone?
Posted: 2004-03-20 20:24:07
by micmic
I hope it works for you (spanish messages sorry)
Code: Select all
// GETINFO SCRIPTING
// IMP Awards v1.0 by micmic.ifs
program micmic;
var
MovieName: string;
const
BaseURL = 'http://www.impawards.com/cgi-bin/htsearch?method=or&words=';
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;
PosIni, PosFin: Integer;
Line, SubLine: string;
Title, DirURL: string;
txtTemp: string;
begin
Page := TStringList.Create;
Page.Text := GetPage(Address);
if Pos('IMP could not find any matches for', Page.Text) > 0 then
begin
ShowMessage('No se ha encontrado ningún artículo por título.');
end else
begin
PickTreeClear;
PickTreeAdd('Resultados de la búsqueda para "' + MovieName + '":', '');
// buscamos los resultados
LineNr := 0;
while LineNr < Page.Count do
begin
SubLine := Page.GetString(LineNr);
txtTemp := '<dl><dt><strong><a href="';
PosIni := pos(txtTemp, SubLine);
if PosIni > 0 then
begin
//ShowMessage(IntToStr(PosIni));
SubLine := Copy(SubLine, PosIni + Length(txtTemp), Length(SubLine));
txtTemp := '">';
PosFin := pos(txtTemp, SubLine);
DirURL := Copy(SubLine, 1, PosFin - 1);
SubLine := Copy(SubLine, PosFin + Length(txtTemp), Length(SubLine));
txtTemp := '</a>';
PosFin := pos(txtTemp, SubLine);
Title := Copy(SubLine, 1, PosFin - 1);
//ShowMessage(Title + '-->' + DirURL);
PickTreeAdd(Title, DirURL);
end;
LineNr := LineNr + 1;
end;
Page.Free;
if PickTreeExec(Address) then
AnalyzeMoviePage(Address);
end;
end;
procedure AnalyzeMoviePage(Address: string);
var
Page: TStringList;
PosIni, PosFin: Integer;
dirBase: string;
txtTemp: string;
ImgTMP: string;
begin
Page := TStringList.Create;
Page.Text := StringReplace(GetPage(Address), '<br>', #13#10);
//obtenemos directorio base
PosFin := 0;
dirBase := Address;
PosIni := pos('/', dirBase);
while PosIni > 0 do
begin
PosFin := PosFin + PosIni;
dirBase := Copy(dirBase, PosIni + 1, Length(DirBase));
PosIni := pos('/', dirBase);
end;
dirBase := Copy(Address, 1, PosFin);
//buscamos la imagen
txtTemp := '<img SRC="posters/';
PosIni := pos(txtTemp, Page.Text);
if PosIni > 0 then
begin
txtTemp := Copy(Page.Text, PosIni + Length(txtTemp), Length(txtTemp));
PosFin := pos('"', txtTemp);
ImgTMP := Copy(txtTemp, 1, PosFin - 1);
GetPicture(dirBase + 'posters/' + ImgTMP, False);
end;
Page.Free;
DisplayResults;
end;
// bmicmic: Bucle Principal
begin
if CheckVersion(3,4,0) then
begin
MovieName := GetField(fieldOriginalTitle);
if MovieName = '' then
MovieName := GetField(fieldTranslatedTitle);
Input('Importar de IMP Awards', 'Introduce el Titulo de la Pelicula:', MovieName);
AnalyzePage(BaseURL + UrlEncode(MovieName));
end else
ShowMessage('Este script necesita una versión superior de Ant Movie Catalog (al menos la version 3.4.0)');
end.
Posted: 2004-03-20 21:48:17
by antp
I will include an "englishized" version of your script in AMC
Posted: 2004-03-21 12:07:33
by micmic
ups... thanks... it's a pleasure
I try an english version with the next one
403 Forbiden
Posted: 2004-08-15 23:52:56
by HoeroArg
I get a 403 Forbiden error every time i try to get a poster from this site.
It worked once, the first time i used it and never worked again. Any ideas ?!?
This site is the BEST !!!
Posted: 2004-09-03 08:54:47
by kolia
It does produce 403 errors with some titles (e.g. The Singing Detective) but it does work again...
probably some script error...
Posted: 2004-09-03 09:25:44
by Guest
replace
Code: Select all
txtTemp := Copy(Page.Text, PosIni + Length(txtTemp), Length(txtTemp));
with
Code: Select all
txtTemp := Copy(Page.Text, PosIni + Length(txtTemp), 100);
with only 18 characters, the text wasn't enough to cover movies longer than 13 characters... now it should be O.K.
Posted: 2004-09-03 09:28:40
by kolia
that was me up there... I guess it took me long enough to figure this out for the system to log me out