(***************************************************
Ant Movie Catalog importation script
www.antp.be/software/moviecatalog/
[Infos]
Authors=Claudio Rinaldi ( rinaldiclaudio@gmail.com )
Title=FilmScoop
Description=Get movie info from FilmScoop.it
Site=www.filmscoop.it
Language=IT
Version=1.0
Requires=3.5.1
Comments=
License=
GetInfo=1
[Options]
***************************************************)
program FilmScoopIT;
uses
Pivlib; // Pivello's scripts common library
const
UrlBase = 'http://www.filmscoop.it';
UrlRicerca = '&to=&r=&i=&n=&g=0&a=&o=Titolo&Submit=Cerca';
QueryBase = UrlBase + '/ricerca/risultati.asp?t=';
QueryFilm = UrlBase + '/film_al_cinema/';
ImagePath = UrlBase + '/locandine/';
cStartNumRis = 'Numero di risultati: <strong>'; // Result Number start Marker
cEndNumRis = '</strong> - Pagin'; // Result Number end Marker
cStartId = ' <a href="/film_al_cinema/'; // ID start marker
cEndId = '">'; // ID end marker
cStartTitle = '<h1 class="TitoloFilm"'; // Title start marker
cEndTitle = '</h1>'; // Title end marker
cStartTranslTitle = 'Titolo Originale</strong>: '; // Translated title start marker
cEndTranslTitle = '</h2>'; // Translated title end marker
cStartImg = '<img src="http://www.filmscoop.it/locandine/'; // Image start marker
cEndImg = '" alt'; // Image end marker
cStartDirector = 'Regia</strong>:'; // Director start marker
cStartCast = 'Interpreti</strong>:'; // Actor start marker
cStartCategory = 'Genere</strong>:'; // Catogory start marker
cEndCategory = '</a>'; // Category end marker
cStartDuration = 'Durata</strong>:'; // Duration start marker
cEndDuration = '<br />'; // Duration end marker
cStartCountry = 'Nazionalità</strong>:'; // Country start Marker
cEndCountry = ' '; // Country end marker
cStartYear = ' '; // Year start marker
cEndYear = '<br />'; // Year end marker
cStartDesc = '<p>'; // Description start marker
cEndDesc = '</p>'; // Description end marker
cStartTitleList = '<strong>'; // Title list start marker
cEndTitleList = '</strong>'; // Title list end marker
var
MovieUrl, MovieName, TranslatedStr, PageStr: string;
// -----------------------
// ANALYZE MOVIE DATA PAGE
// IN: none
// OUT: set Ant fields
// -----------------------
procedure AnalyzeMoviePage;
var
cImage,cValue : string;
begin
// Get packed title main page
PageStr := RemoveExtraChars(MovieUrl);
// TRANSLATED TITLE
cValue := GetValueEx(PageStr, cStartTitle, cEndTitle, true, true);
SetField(fieldTranslatedTitle, AnsiUpFirstLetter(AnsiLowerCase(cValue)));
PageStr := GetPageStr;
// FILM IMAGE
cImage := GetValueEx(PageStr, cStartImg, cEndImg, true, false);
PageStr := GetPageStr;
if cImage <> '' then
GetPicture(ImagePath + cImage);
// ORIGINAL TITLE
cValue := GetValueEx(PageStr, cStartTranslTitle, cEndTranslTitle,true,false);
SetField(fieldOriginalTitle, AnsiUpFirstLetter(AnsiLowerCase(cValue)));
PageStr := GetPageStr;
// DIRECTOR
SetField(fieldDirector, GetValueEx(PageStr, cStartDirector, cStartCast, false, false));
PageStr := GetPageStr;
// ACTORS
SetField(fieldActors, GetValueEx(PageStr, cStartCast, cStartDuration, false, false));
PageStr := GetPageStr;
// DURATION
SetField(fieldLength, GetValueEx(PageStr, cStartDuration, cEndDuration, true, false));
PageStr := GetPageStr;
// COUNTRY
SetField(fieldCountry, GetValueEx(PageStr, cStartCountry, cEndCountry, false, false));
PageStr := GetPageStr;
// YEAR
SetField(fieldYear, GetValueEx(PageStr, cStartYear, cEndYear, true, false));
PageStr := GetPageStr;
// CATEGORY
cValue := GetValueEx(PageStr, cStartCategory, cEndCategory, true, false);
SetField(fieldCategory, AnsiUpFirstLetter(AnsiLowerCase(cValue)));
PageStr := GetPageStr;
// DESCRIPTION
SetField(fieldDescription, GetValueEx(PageStr, cStartDesc, cEndDesc, true, false));
PageStr := GetPageStr;
// COMMENTS
// URL
SetField(fieldURL, MovieUrl);
end;
// ------------------------------------------------------------------
// FILL PICKTREE CONTROL WITH LINKS & TITLES or RETURN ONE PAGE LINK
// if OneFilm flag true return Film Id else populate PickTree
// IN: OneFilm flag (bool)
// OUT: one page ID (string)
// ------------------------------------------------------------------
function PopulatePickTree(OneFilm: boolean): string;
var
cFilmId,cFilmTitle: string;
StartPos,EndPos: integer;
begin
if OneFilm then begin
cFilmId := GetValueEx(PageStr,cStartId,cEndId,false,false);
result := QueryFilm + cFilmId;
end
else begin
PickTreeClear;
repeat
StartPos := pos(cStartId, PageStr);
if StartPos > 0 then begin
Delete(PageStr, 1, StartPos - 1);
cFilmId := GetValueEx(PageStr,cStartId,cEndId,true,false); // Get ID
cFilmTitle := GetValueEx(PageStr,cStartTitleList,cEndTitleList,true,false); // Get Title
PickTreeAdd(cFilmTitle, QueryFilm + cFilmId);
EndPos := pos(cStartId,PageStr);
Delete(PageStr, 1, EndPos);
end;
until(StartPos = 0);
result := '';
end
end;
// ---------------------------------
// ANALYZE FIRST SEARCH RESULT PAGE:
// IN: page Url (string)
// OUT: none
// ---------------------------------
procedure AnalyzeSearchPage(Url: string);
var
NumRisultati : string;
begin
PageStr := RemoveExtraChars(Url);
NumRisultati := GetValueEx(PageStr, cStartNumRis, cEndNumRis, true, false);
if ( (NumRisultati = '0') or (NumRisultati = '')) then
begin
ShowMessage('Title not found / Nessun film trovato.');
exit;
end
if NumRisultati = '1' then
MovieUrl := PopulatePickTree(true)
else
begin
PopulatePickTree(false);
if not PickTreeExec(MovieUrl) then // ..select one
exit;
end;
AnalyzeMoviePage;
end;
// --------------------------------------------------
// GET FIELD VALUES FROM PACKED PAGE
// IN: Start marker (String)
// End marker (string)
// Cut Start Marker (bool)
// Cut End Marker (bool)
// OUT: value (string)
// --------------------------------------------------
function GetValueEx(MyPageStr,cStartMarker,cEndMarker: string;bCutEnd,bAdjust: boolean): string;
var
StartPos: integer;
EndPos: integer;
Value: string;
begin
Value := '';
StartPos := pos(cStartMarker, MyPageStr);
if ( StartPos = 0 ) then exit; // Not found
Delete(MyPageStr, 1, StartPos -1);
StartPos := pos(cStartMarker, MyPageStr);
EndPos := pos(cEndMarker, MyPageStr);
if ( (StartPos > 0) and (EndPos > 0) ) then begin
StartPos := StartPos + length(cStartMarker);
Value := copy(MyPageStr, StartPos, EndPos-Startpos);
if bCutEnd then
EndPos := EndPos + length(cEndMarker);
Delete(MyPageStr, 1, EndPos -1);
if bAdjust then
Value := '<' + Value;
end;
TmpPageStr := MyPageStr;
HTMLRemoveTags(Value);
HTMLDecode(Value);
result := Trim(Value);
end;
// ----------
// MAIN:
// IN: none
// OUT: none
// ----------
begin
if CheckVersion(3,5,0) then
begin
TranslatedStr := GetField(fieldTranslatedTitle);
MovieName := GetField(fieldOriginalTitle);
if (TranslatedStr <> '') then
MovieName := TranslatedStr;
if(Input('MyMovies.It', 'Enter the title of the movie', MovieName)) then
begin
InitializePivLib;
MovieUrl := QueryBase + StringReplace(MovieName,' ','+') + UrlRicerca;
AnalyzeSearchPage(MovieUrl);
FinalizePivLib;
end;
end
else
ShowMessage('This script requires a newer version of Ant Movie Catalog (at least the version 3.5.0)');
end.
[REL][ITA] FilmScoop.it
[REL][ITA] FilmScoop.it
This is the script for www.filmscoop.it if anyone find a bug just mail me!
Filmscoop update its html months ago, this is a working version, please update your script
Merry christmas
Merry christmas
Code: Select all
program FilmScoopIT;
uses
Pivlib; // Pivello's scripts common library
const
UrlBase = 'http://www.filmscoop.it';
UrlRicerca = '&to=&r=&i=&n=&g=0&a=&o=Titolo&Submit=Cerca';
QueryBase = UrlBase + '/ricerca/risultati.asp?t=';
QueryFilm = UrlBase + '/film_al_cinema/';
ImagePath = UrlBase + '/locandine/';
cStartNumRis = 'Numero di risultati: <strong>'; // Result Number start Marker
cEndNumRis = '</strong> - Pagin'; // Result Number end Marker
cStartId = ' <a href="/film_al_cinema/'; // ID start marker
cEndId = '" rel="nofollow">'; // ID end marker
cStartTitle = '<h1 class="TitoloFilmUpper" style="clear:both;">'; // Title start marker
cEndTitle = '</h1>'; // Title end marker
cStartTranslTitle = '<h2><strong>Titolo Originale</strong>:'; // Translated title start marker
cEndTranslTitle = '</h2>'; // Translated title end marker
cStartImg = '<img src="http://www.filmscoop.it/locandine/'; // Image start marker
cEndImg = '" alt'; // Image end marker
cStartDirector = 'Regia</strong>:'; // Director start marker
cStartCast = 'Interpreti</strong>:'; // Actor start marker
cStartCategory = 'Genere</strong>:'; // Catogory start marker
cEndCategory = '</a>'; // Category end marker
cStartDuration = 'Durata</strong>:'; // Duration start marker
cEndDuration = '<br />'; // Duration end marker
cStartCountry = '<strong>Nazionalità</strong>: '; // Country start Marker
cEndCountry = '</a> <a'; // Country end marker
cStartYear = ' '; // Year start marker
cEndYear = '<br />'; // Year end marker
cStartDesc = '<p style="margin-top:0;margin-left:0;padding-top:0;padding-left:0;">'; // Description start marker
cEndDesc = '</p>'; // Description end marker
cStartTitleList = '<strong>'; // Title list start marker
cEndTitleList = '</strong>'; // Title list end marker
var
MovieUrl, MovieName, TranslatedStr, PageStr: string;
// -----------------------
// ANALYZE MOVIE DATA PAGE
// IN: none
// OUT: set Ant fields
// -----------------------
procedure AnalyzeMoviePage;
var
cImage,cValue,cValue2 : string;
begin
// Get packed title main page
PageStr := RemoveExtraChars(MovieUrl);
// TRANSLATED TITLE & YEAR
cValue := GetValueEx(PageStr, cStartTitle, cEndTitle, true, true);
cValue2 := AnsiUpFirstLetter(AnsiLowerCase(GetValueEx(' .' + cValue, '.', ' (', false, false)));
if cValue2 <> '' then
SetField(fieldTranslatedTitle, cValue2);
cValue := GetValueEx(cValue, ' (', ')', false, false);
if cValue <> '' then
SetField(fieldYear, cValue);
//PageStr := GetPageStr;
// FILM IMAGE
cImage := GetValueEx(PageStr, cStartImg, cEndImg, true, false);
if cImage <> '' then
GetPicture(ImagePath + cImage);
// ORIGINAL TITLE
cValue := GetValueEx(PageStr, cStartTranslTitle, cEndTranslTitle, true, true);
if cValue <> '' then
SetField(fieldOriginalTitle, AnsiUpFirstLetter(AnsiLowerCase(cValue)));
// DIRECTOR
cValue := GetValueEx(PageStr, cStartDirector, cStartCast, false, false);
if cValue <> '' then
SetField(fieldDirector, cValue);
// ACTORS
cValue := GetValueEx(PageStr, cStartCast, cStartDuration, false, false);
if cValue <> '' then
SetField(fieldActors, cValue);
// DURATION
// cValue := GetValueEx(PageStr, cStartDuration, cEndDuration, true, false);
// SetField(fieldLength, cValue);
// COUNTRY
cValue := GetValueEx(PageStr, cStartCountry, cEndCountry, false, false);
if cValue <> '' then
SetField(fieldCountry, cValue);
// CATEGORY
cValue := AnsiUpFirstLetter(AnsiLowerCase(GetValueEx(PageStr, cStartCategory, cEndCategory, true, false)));
if cValue <> '' then
SetField(fieldCategory, cValue);
// DESCRIPTION
cValue := GetValueEx(PageStr, cStartDesc, cEndDesc, true, false);
if cValue <> '' then
SetField(fieldDescription, cValue);
// COMMENTS
// URL
SetField(fieldURL, MovieUrl);
end;
// ------------------------------------------------------------------
// FILL PICKTREE CONTROL WITH LINKS & TITLES or RETURN ONE PAGE LINK
// if OneFilm flag true return Film Id else populate PickTree
// IN: OneFilm flag (bool)
// OUT: one page ID (string)
// ------------------------------------------------------------------
function PopulatePickTree(OneFilm: boolean): string;
var
cFilmId,cFilmTitle: string;
StartPos,EndPos: integer;
begin
if OneFilm then begin
cFilmId := GetValueEx(PageStr,cStartId,cEndId,false,false);
result := QueryFilm + cFilmId;
end
else begin
PickTreeClear;
repeat
StartPos := pos(cStartId, PageStr);
if StartPos > 0 then begin
Delete(PageStr, 1, StartPos - 1);
cFilmId := GetValueEx(PageStr,cStartId,cEndId,true,false); // Get ID
cFilmTitle := GetValueEx(PageStr,cStartTitleList,cEndTitleList,true,false); // Get Title
PickTreeAdd(cFilmTitle, QueryFilm + cFilmId);
EndPos := pos(cStartId,PageStr);
Delete(PageStr, 1, EndPos);
end;
until(StartPos = 0);
result := '';
end
end;
// ---------------------------------
// ANALYZE FIRST SEARCH RESULT PAGE:
// IN: page Url (string)
// OUT: none
// ---------------------------------
procedure AnalyzeSearchPage(Url: string);
var
NumRisultati : string;
begin
PageStr := RemoveExtraChars(Url);
NumRisultati := GetValueEx(PageStr, cStartNumRis, cEndNumRis, true, false);
if ( (NumRisultati = '0') or (NumRisultati = '')) then
begin
ShowMessage('Title not found / Nessun film trovato.');
exit;
end
if NumRisultati = '1' then
MovieUrl := PopulatePickTree(true)
else
begin
PopulatePickTree(false);
if not PickTreeExec(MovieUrl) then // ..select one
exit;
end;
AnalyzeMoviePage;
end;
// --------------------------------------------------
// GET FIELD VALUES FROM PACKED PAGE
// IN: Start marker (String)
// End marker (string)
// Cut Start Marker (bool)
// Cut End Marker (bool)
// OUT: value (string)
// --------------------------------------------------
function GetValueEx(MyPageStr,cStartMarker,cEndMarker: string;bCutEnd,bAdjust: boolean): string;
var
StartPos: integer;
EndPos: integer;
Value: string;
begin
Value := '';
StartPos := pos(cStartMarker, MyPageStr);
if ( StartPos = 0 ) then exit; // Not found
Delete(MyPageStr, 1, StartPos -1);
StartPos := pos(cStartMarker, MyPageStr);
EndPos := pos(cEndMarker, MyPageStr);
if ( (StartPos > 0) and (EndPos > 0) ) then begin
StartPos := StartPos + length(cStartMarker);
Value := copy(MyPageStr, StartPos, EndPos-Startpos);
if bCutEnd then
EndPos := EndPos + length(cEndMarker);
Delete(MyPageStr, 1, EndPos -1);
if bAdjust then
Value := '<' + Value;
end;
TmpPageStr := MyPageStr;
HTMLRemoveTags(Value);
HTMLDecode(Value);
result := Trim(Value);
end;
// ----------
// MAIN:
// IN: none
// OUT: none
// ----------
begin
if CheckVersion(3,5,0) then
begin
TranslatedStr := GetField(fieldTranslatedTitle);
MovieName := GetField(fieldOriginalTitle);
if (TranslatedStr <> '') then
MovieName := TranslatedStr;
if(Input('MyMovies.It', 'Enter the title of the movie', MovieName)) then
begin
InitializePivLib;
MovieUrl := QueryBase + StringReplace(MovieName,' ','+') + UrlRicerca;
AnalyzeSearchPage(MovieUrl);
FinalizePivLib;
end;
end
else
ShowMessage('This script requires a newer version of Ant Movie Catalog (at least the version 3.5.0)');
end.
Thanks, I updated it on the server
As you didn't include the header*, I simply changed the version from 1.0 to 1.1, but maybe you also wanted to include a name or nickname in the Author field?
(*) when you copy the script from AMC editor, it lacks the comment header that includes script properties and options.
Merry christmas to you too
As you didn't include the header*, I simply changed the version from 1.0 to 1.1, but maybe you also wanted to include a name or nickname in the Author field?
(*) when you copy the script from AMC editor, it lacks the comment header that includes script properties and options.
Merry christmas to you too