(***************************************************
Ant Movie Catalog importation script
www.antp.be/software/moviecatalog/
[Infos]
Authors=Draco31.fr
Title=HKcinemagic
Description=
Site=http://www.hkcinemagic.com/
Language=EN,FR
Version=0.2 du 27/07/2010
Requires=3.5
Comments=Ce script nécessite le fichier ScorEpioNCommonScript.pas|.==.| : ' ( ( ( ( /\ | "==()))))): © ScorEpioN ©| ( ( ( ( \_/
License=This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. |
GetInfo=1
[Options]
Type de Lancement / Type of Launching=0|0|0=Demande le titre avant de lancer le script / Ask the title before launching script|1=Ne demande pas le titre avant de lancer le script / Do not ask the title before launching script|2=Lancement automatique sur l'adresse web / Automatic launching on the web url
Format du Titre / Format of the Title=3|3|0=Titre en minuscule / Title in tiny letters|1=Titre en majuscule / Title in capital letter|2=Première lettre du titre en majuscule / First letter of the title in capital letter|3=Première lettre de chaque mot du titre en majuscule / First letter of each word of the title in capital letter|4=Formatage identique au site d'origine / Formatting identical to the site of origin
Recherche sur le titre / Seek on the title=1|1|0=Traduit / Translated|1=Original
Affiche / Cover=0|0|0=Prend la petite Affiche / Get the small cover|1=Prend la grande affiche / Get the big cover
Langue / Language=1|1|0=English (Anglais)|1=Français (French)
Producteur / Producer=1|1|0=Producteur / Producer|1=Studio
Critique / Review=0|0|0=Aperçu / Preview|1=Complète / Full
***************************************************)
program HKcinemagic;
uses
ScorEpioNCommonScript;
const
VersionScript = '0.2 du 27/07/2010';
NomScript = 'HKcinemagic';
urlHKCMSearchGo = '&searchtype=1&gosearch=go';
timetosleep = 500;
var
Page : TStringList;
urlDomain, urlHKCMSearch, lang, MovieName, Titre, urlTitre, Line2, Resume, APage, CPage, Comments, NoResult, Result, ShortCast, Realisateur, Producteur, Pays, Studio, Genre, Duree, Review, Full_Review, Critique, Notes, Haut, Note1, Note2, WebError, EnterTitle : string;
PageOK, CxNote, compteur, premiereExecution, numTemp, lien_URL : Integer;
NoteC, NoteM, Note, NumPage: real;
listeResultat : TStringList;
//--OK--------------------------------------------------------------------------
// TROUVE LE N° DE LIGNE D'UNE INFO
//------------------------------------------------------------------------------
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;
//--OK--------------------------------------------------------------------------
// ANALYSE RESULTAT DE RECHERCHE
//------------------------------------------------------------------------------
procedure AnalyzeSearchPage(urlSearch: string);
var
Line, temp, params : string;
LineNr, choix : integer;
begin
Page.Text := GetPage(urlSearch);
choix := 0;
LineNr := 0;
PickTreeClear;
urlTitre := '';
Titre := '';
// Verif si redirection vers la fiche d'un film directement
if FindLine('images/site/icon_search.gif',Page,0) < 0 Then
begin
PageOK := 1;
AnalyzeMoviePage(urlSearch);
end
else
// Vérif qu'il y a bien un résultat
if (FindLine('Désolé votre recherche n''a retourné aucun résultat.',Page,0) > -1) or (FindLine('Sorry your search didn''t return any matches.',Page,0) > -1) Then
begin
// MonDebug('Page',Page.Text);
ShowInformation(NoResult+MovieName+'"');
end
else
begin
PickTreeAdd(Result+MovieName+'"','');
While FindLine('movie.asp?id=',Page,LineNr) > -1 Do
begin
LineNr := FindLine('movie.asp?id=',Page,LineNr);
Line := Page.GetString(LineNr);
TraiteInfo(Line);
PickTreeAdd(Titre,urlTitre);
LineNr := LineNr+1;
end;
if (PickTreeExec(urlTitre)) then
// Analyse la page du film selectionné
AnalyzeMoviePage(urlTitre);
end;
end;
//--OK--------------------------------------------------------------------------
// TRAITE L'INFO : SEPARE L'URL DU TITRE
//------------------------------------------------------------------------------
procedure TraiteInfo(infos: string);
var
temp1, temp2 : string;
begin
urlTitre := '';
Titre := '';
urlTitre := urlDomain+lang+'/movie.asp?id='+FindInfo(' 1 Then
begin
Sleep(timetosleep);
Page.Text := GetPage(url);
end;
// Stoque l'url ==> à voir pour PageOK = 1 (url de recherche)
// MonDebug('Page.Text',Page.Text);
LineNr := FindLine(ShortCast,Page,0);
if LineNr > -1 Then
begin
Line := Page.GetString(LineNr);
temp := urldomain+lang+'/movie.asp?id='+FindInfo('',Page,0);
Line := Page.GetString(LineNr);
HTMLDecode(Line);
HTMLRemoveTags(Line);
t1 := FindInfo('(',')',Line,'4');
if length(t1) = 4 Then
begin
SetField(Fieldyear,t1);
HTMLDecode(Line);
Delete(Line,length(Line)-5,6);
Line := StringReplace(Line,RC,'');
Line := StringReplace(Line,#9,'');
Line := StringReplace(Line,' ','');
Format(Line);
if GetOption('Recherche sur le titre / Seek on the title') = 0 Then
SetField(FieldTranslatedTitle,Line)
else
SetField(FieldOriginalTitle,Line);
t1 := '';
end
else
begin
t2 := Line;
Repeat
BeginPos := Pos('(',t2);
if BeginPos <> 0 Then
begin
t1 := FindInfo('(',')',t2,'4');
Delete(t2,BeginPos,length(t2)-BeginPos);
end
else
t2 := '';
until (length(t1) = 4) or (length(t2) = 0);
if t2 = '' Then
begin
Format(Line);
SetField(fieldOriginalTitle,Line);
end
else
begin
SetField(fieldyear,t1);
Format(Line);
Setfield(fieldOriginalTitle,StringReplace(Line,'('+t1+')','');
end;
t2 := '';
t1 := '';
end;
// Stoque l'image si necessaire
if CanSetPicture then
begin
LineNr2 := FindLine('',Line,'4');
if GetOption('Affiche / Cover') = 0 Then
GetPicture(temp)
else
begin
temp := urlDomain+lang+'/gallery.asp?fid='+FindInfo('',Line,'4');
t1 := GetPage(temp);
// MonDebug('t1',t1);
t2 := urlDomain+lang+'/images/movie/large/'+FindInfo(' -1 Then
begin
LineNr := LineNr2;
Line := Page.GetString(LineNr);
temp := FindInfo('
','
',Line,'4');
HTMLDecode(temp);
HTMLRemoveTags(temp);
Setfield(fielddirector,temp);
temp := '';
end;
// Prend le producteur
if GetOption('Producteur / Producer') = 0 Then
begin
LineNr2 := FindLine(Producteur,Page,LineNr);
if LineNr2 > -1 Then
begin
LineNr := LineNr2;
Line := Page.GetString(LineNr);
temp := FindInfo('
','
',Line,'4');
HTMLDecode(temp);
HTMLRemoveTags(temp);
Setfield(fieldproducer,temp);
temp := '';
end;
end;
// Prend le pays
LineNr2 := FindLine(Pays,Page,LineNr);
if LineNr2 > -1 Then
begin
LineNr := LineNr2+1;
Line := Page.GetString(LineNr);
temp := FindInfo('