home *** CD-ROM | disk | FTP | other *** search
/ Clickx 22 / Clickx 22.iso / DATA / amc_install.exe / {app} / Scripts / ScorEpioNCommonScript.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  2005-05-25  |  40.1 KB  |  1,072 lines

  1. unit ScorEpioNCommonScript;
  2. (*******************************************************************************************************************
  3. Partie commune α tous les scripts Θcris par ScorEpioN
  4.  
  5. execMenuMAJ(VersionScript,NomScript) : Menu permettant la mise α jour du script
  6. verifVersion(NomScript) : permet de vΘrifier et tΘlΘcharger la derniΦre version d'un script
  7. nameOfFile(NomScript) : retourne le nom du fuchier correspondant au script
  8. verifVersionScriptCommun(Line) : permet de vΘrifier si l'on a besoin d'une nouvelle version su script commun
  9. contactScorEpioN() : ouvre dans votre navigateur le topic de mes scripts sur le forum AMC.
  10. downloadScript(NomScript); : tΘlΘcharge la derniΦre version du script
  11. menuScorEpioN() : rajoute α la liste de rΘsultats les fonctions prΘcΘdentes
  12. execMenuScorEpioN(urlDomain, Address) : si le choix appartient α menuScorEpioN retourne vrai sinon retourne faux
  13. MonDebug(Name, Line : String) : permet crΘer un fichier (dans le repertoire des scripts) contenant une chaine de caractΦre
  14. DeleteTitle(field) : supprime le titre du champs si "en double"
  15. formatTitre(titre,option) : retourne le titre avec la casse choisie en option
  16. findInfo(Debut, Fin, Line, Option) : retourne la chaine de caractΦre entre "dΘbut" et "fin" avec/sans retour chariot
  17. supprSubString(Debut, Fin, Line) : retourne la chaine Line sans la sous chaine comprise entre debut et fin (inclus)
  18. coupeInfo(Debut, Fin, Condition, Line) : retourne la chaine jusqu'a ce que la sous-chaine comprise entre dΘbut et fin diffΘre de Condition
  19. deleteAsianChar(Value) : efface les caractΦres asiatique (attention doit s'ΘxΘcuter avant HTMLDecode)
  20. deleteTab(Value) : supprime les tablulations
  21. deleteMultiReturn(Value) : supprime les retours α la ligne multiple
  22. deleteEnd(Value, EndValue) : supprime une EndValue de Value si EndValue termine la chaine
  23. MonSetField(field,value) : Rentre les infos dans le catalogue si non nulles
  24. MonGetPicture(value: string) : RΘcupΘre l'image si value non nulle
  25. FormatFloat(value: String) : Retourne une chaine de caractΦre formater pour faire des calculs avec des float;
  26. supprQuote(title) : remplace les " par des ''
  27. cleanTitle(title) : retourne un titre nettoyΘ des tags, et extensions (supprExt(title, ext))
  28. transformCountry(country) : transforme les nationalitΘs en nom de pays dans le champs Pays
  29. supprimeLesAccents(NomFilm) : supprime les caractΦres accentuΘs
  30. initLesArticles() : crΘe la liste des articles
  31. supprimeLesArticles(NomFilm) : supprime les articles
  32. articleDebutTitre(title,Debut,Fin) : Remet les articles en dΘbut de titre
  33. conversionNR(NomFilm, Sens) : converti les chiffres romains en chiffre (et inversement) // Sens = 'RvN' ou 'NvR'
  34. recupTitreRecherche(option) : rΘcupΘre le titre original ou traduit suivant l'option
  35. titreDouble(option) : garde le titre voulue en option si titre en double
  36. moveComments() : mets le champs commentaire a la suite du champs description
  37. batch(Nom) : on donne le nom du site, et on lance le dialogue pour choisir la destination
  38. createLog() : crΘation du fichier de log
  39. AddToLog() : ajoute une ligne au fichier de log
  40. beforeUpdate() : ajoute au fichier de log les informations de la fiche avant mise α jour
  41. afterUpdate() : ajoute au fichier de log les informations de la fiche aprΦs mise α jour
  42.  
  43. *******************************************************************************************************************)
  44. const
  45.     FreeUrl = 'http://divouix.free.fr/AMC/';
  46.     VersionCommun = '17 du 25/05/2005';
  47.  
  48. var
  49.   log, script : TStringList;
  50.   fichierlog, adresselog, action : string;
  51.   newSC, newS, execlog : Boolean;
  52.   compteurMAJ : Integer;
  53.  
  54. //------------------------------------------------------------------------------
  55. // MENU DE MISE A JOUR
  56. //------------------------------------------------------------------------------
  57.  
  58. procedure execMenuMAJ(VersionScript,NomScript : String);
  59. begin
  60.   PickTreeClear;
  61.   PickTreeAdd('Menu de mise α jour', '');
  62.   PickTreeAdd('Verifier si vous avez la derniΦre version du script '+NomScript, 'version');
  63.   PickTreeAdd('Lister tous mes scripts', 'liste');
  64.   PickTreeAdd('Pour me contacter', 'contact');
  65.   PickTreeExec(action);
  66.   
  67.   if (action = 'version') then
  68.        verifVersion(NomScript,VersionScript)
  69.   else if (action = 'contact') then
  70.        contactScorEpioN()
  71.   else if (action = 'liste') then
  72.        listeScriptScorEpioN();
  73.  
  74. {
  75. // A mettre dans option
  76. Mise α jour=1|1|0=Oui|1=Non
  77.  
  78. // A mettre au dΘbut du programme principal
  79. if GetOption('Mise α jour') = 0 then
  80.     begin
  81.        execMenuMAJ(VersionScript,NomScript);
  82.        exit;
  83.     end;
  84. }
  85. end;
  86.  
  87. //------------------------------------------------------------------------------
  88. // VERIFIER LA VERSION DU SCRIPT
  89. //------------------------------------------------------------------------------
  90.  
  91. procedure verifVersion(NomScript, VersionCourante : String);
  92. var
  93.    Line, LineCommon, NewVersion, LeMessage, Larticle, NomFichier, ContenuScript : String;
  94.    BeginPos, EndPos : Integer;
  95. begin
  96.   newSC := False;  // Il n'y a pas de maj α faire.
  97.   newS := False;
  98.   LeMessage := '';
  99.   Larticle := 'la mise';
  100.   Line := GetPage(FreeUrl+'versions.txt');
  101.   LineCommon := Line;
  102.   BeginPos := pos(NomScript+' v', Line);
  103.   delete(Line,1, BeginPos+length(NomScript)+1);
  104.   EndPos := pos('.', Line);
  105.   NewVersion := copy(Line, 1, EndPos - 1);
  106.   // TEST LA PRESENCE DE NOUVELLES VERSIONS
  107.   if (verifVersionScriptCommun(LineCommon) = True) then
  108.     newSC := True;
  109.   if (nouvelleVersion(VersionCourante, NewVersion) = True) then
  110.     newS := True;
  111.   // EN FONCTION DES MAJ A FAIRE LES MESSAGES CHANGENT
  112.   if (newS = True) then
  113.     LeMessage := 'Il y a une nouvelle version du script '+NomScript+' : '+NewVersion+'.'+#13#10;
  114.   if (newSC = True) then
  115.     LeMessage := LeMessage+'Il y a une nouvelle version du script commun.';
  116.   if (newS = True) and (newSC = True) then
  117.     Larticle := 'les mises';
  118.   // AJOUTE L'AVERTISSEMENT
  119.   LeMessage := LeMessage+#13#10#13#10+'Cliquer sur ''''OUI'''' pour effectuer '+Larticle+' α jour dans le rΘpertoire :'+#13#10#13#10+''''+dirScripts+''''+#13#10#13#10+'Cliquer sur ''''NON'''' annuler.';
  120.   if (newS = False) and (newSC = False) then
  121.   begin
  122.     ShowInformation('Pas de mise α jour α effectuer.');
  123.   end else
  124.     if (ShowConfirmation(LeMessage) = True) then // TELECHARGE LES SCRIPTS
  125.     begin
  126.       if (newS = True) then
  127.         downloadScript(NomScript);
  128.       if (newSC = True) then
  129.         downloadScript('SCOREPIONCOMMONSCRIPT');
  130.     end else
  131.       exit;
  132. end;
  133.  
  134. //------------------------------------------------------------------------------
  135. // RETOURNE LE NOM DU FICHIER
  136. //------------------------------------------------------------------------------
  137.  
  138. function nameOfFile(NomScript : String) : String;
  139. var
  140.   Articles: array of string;
  141.   i: integer;
  142.   NomFichier, NomScriptTest  : String;
  143. begin
  144.   SetArrayLength(Articles,13);
  145.   Articles[0]:='ALLOCINE|Allocine%20(FR).ifs';
  146.   Articles[1]:='AMAZON.FR|Amazon%20(FR).ifs';
  147.   Articles[2]:='AMAZON.FR (IMAGE ONLY)|Amazon%20Image%20(FR).ifs';
  148.   Articles[3]:='ANIMEKA|Animeka%20(FR).ifs';
  149.   Articles[4]:='CINEMASIE|Cinemasie%20(FR).ifs';
  150.   Articles[5]:='ERREURS DE FILMS|Erreurs%20de%20films%20(FR).ifs';
  151.   Articles[6]:='NIHON-FR|Nihon%20(FR).ifs';
  152.   Articles[7]:='UPDATE FIELDS|Update%20Fields%20(FR-US).ifs';
  153.   Articles[8]:='SCOREPIONCOMMONSCRIPT|ScorEpioNCommonScript.pas';
  154.   Articles[9]:='CINEMOVIES|Cinemovies%20(FR).ifs';
  155.   Articles[10]:='YUSUKETEAM|Yusuketeam%20(FR).ifs';
  156.   Articles[11]:='DVDPOST|DVDPost%20(FR).ifs';
  157.   Articles[12]:='HTMLTOCHM|HtmlToChm.ifs';
  158.  
  159.   for i := 0 to GetArrayLength(articles)-1 do
  160.   begin
  161.     NomScriptTest := copy(Articles[i],0,pos('|',Articles[i])-1);
  162.     if NomScriptTest = NomScript then
  163.     begin
  164.       NomFichier := copy(Articles[i],pos('|',Articles[i])+1,length(Articles[i]));
  165.       Break;
  166.     end;
  167.   end;
  168.   result := NomFichier;
  169. end;
  170.  
  171. //------------------------------------------------------------------------------
  172. // INDIQUE SI UNE NOUVELLE VERSION DE ScorEpioNCommonScript EST DISPONIBLE
  173. //------------------------------------------------------------------------------
  174.  
  175. function verifVersionScriptCommun(Line : String) : Boolean;
  176. var
  177.    BeginPos : Integer;
  178. begin
  179.   BeginPos := pos('SCOREPIONCOMMONSCRIPT v', Line);
  180.   delete(Line,1, BeginPos+length('SCOREPIONCOMMONSCRIPT')+1);
  181.   result := nouvelleVersion(VersionCommun, Line);
  182. end;
  183.  
  184. //------------------------------------------------------------------------------
  185. // INDIQUE SI UNE NOUVELLE VERSION DE SCRIPT EST DISPONIBLE
  186. //------------------------------------------------------------------------------
  187.  
  188. function nouvelleVersion(versionC, versionN : String) : Boolean;
  189. begin
  190.   if (StrToInt(copy(versionN, 1, pos('du', versionN) - 2),2) > StrToInt(copy(versionC, 1, pos('du', versionC) - 2),2)) then
  191.   begin
  192.     result := True;
  193.   end else
  194.     result := False;
  195. end;
  196.  
  197. //------------------------------------------------------------------------------
  198. // OUVRE LA PAGE DU FORUM
  199. //------------------------------------------------------------------------------
  200. procedure contactScorEpioN();
  201. begin
  202.   Launch('http://forum.antp.be/phpbb2/viewtopic.php?t=1453', '');
  203. end;
  204.  
  205. //------------------------------------------------------------------------------
  206. // LISTE TOUS MES SCRIPTS
  207. //------------------------------------------------------------------------------
  208. procedure listeScriptScorEpioN();
  209. begin
  210.   showmessage(GetPage(FreeUrl+'versions.txt'));
  211. end;
  212.  
  213. //------------------------------------------------------------------------------
  214. // TELECHARGE LE SCRIPT
  215. //------------------------------------------------------------------------------
  216. procedure downloadScript(NomScript : String);
  217. var 
  218.   NomFichier, ContenuScript : String;
  219. begin
  220.   NomFichier := nameOfFile(NomScript);
  221.   Sleep(500);
  222.   ContenuScript := GetPage(FreeUrl+NomFichier);
  223.   script := TStringList.Create;
  224.   script.Add(ContenuScript);
  225.   NomFichier := StringReplace(NomFichier, '%20', ' ');
  226.   script.SaveToFile(dirScripts+NomFichier);
  227.   script.Free;
  228. end;
  229.  
  230. //------------------------------------------------------------------------------
  231. // AFFICHAGE DU MENU
  232. //------------------------------------------------------------------------------
  233. procedure menuScorEpioN();
  234. begin
  235.   PickTreeAdd(' ', '');
  236.   PickTreeAdd('Verifier si vous avez la derniΦre version (New version)', 'version');
  237.   PickTreeAdd('Lister tous mes scripts', 'liste');
  238.   PickTreeAdd('Pour me contacter', 'contact');
  239. end;
  240.  
  241. { Canevas α mettre dans le script pour menuScorEpioN si on n'utilise pas execMenuScorEpioN
  242.  
  243. if (Address = 'version') then
  244.         begin
  245.           verifVersion(NomScript,VersionScript);
  246.         end else if (Address = 'contact') then
  247.         begin
  248.           contactScorEpioN();
  249.         end else if (Address = 'liste') then
  250.         begin
  251.           listeScriptScorEpioN();
  252.         end else
  253. }
  254.  
  255. //------------------------------------------------------------------------------
  256. // FUNCTION POUR EXECUTER ACTION DU MENU ScorEpioN
  257. //------------------------------------------------------------------------------
  258.  
  259. function execMenuScorEpioN(urlDomain, Address : String) : Boolean;
  260. begin
  261.   if (pos(urlDomain, Address) = 0) then
  262.   begin
  263.     if (Address = 'version') then
  264.        verifVersion(NomScript,VersionScript)
  265.     else if (Address = 'contact') then
  266.        contactScorEpioN()
  267.     else if (Address = 'liste') then
  268.        listeScriptScorEpioN();
  269.     result := True;
  270.   end else
  271.     result := False;
  272. end;
  273.  
  274. { Canevas α mettre dans le script pour menuScorEpioN si on utilise execMenuScorEpioN
  275.  
  276. if execMenuScorEpioN(urlDomain, Address) = False then
  277.            AnalysePageFilm(Address);
  278. }
  279.  
  280. //------------------------------------------------------------------------------
  281. // PROCEDURE POUR AVOIR UN FICHIER DE DEBUG
  282. //------------------------------------------------------------------------------
  283. procedure MonDebug(Name, Line : String);
  284. var
  285.     debugFile : TStringList;
  286. begin
  287.     debugFile := TStringList.Create;
  288.     debugFile.Text := Line;
  289.     debugFile.SaveToFile(dirScripts+'DEBUG_'+Name+'.TXT');
  290.     debugFile.Free;
  291. end;
  292.  
  293. //------------------------------------------------------------------------------
  294. // SUPPRIME TITRE EN DOUBLE
  295. //------------------------------------------------------------------------------
  296. procedure DeleteTitle(field : Integer);
  297. begin
  298.     if Trim(AnsiUpperCase(GetField(fieldTranslatedTitle))) = Trim(AnsiUpperCase(GetField(fieldOriginalTitle))) then
  299.     begin
  300.       if (CanSetField(field)) then
  301.         SetField(field, '');
  302.     end;
  303. end;
  304.  
  305. //------------------------------------------------------------------------------
  306. // MET LE TITRE AU BON FORMAT
  307. //------------------------------------------------------------------------------
  308.  
  309. function formatTitre(titre : String; option : Integer) : string;
  310. begin
  311.   if (option = 0) then
  312.   begin
  313.      titre := AnsiLowerCase(titre);
  314.   end else if (option = 1) then
  315.   begin
  316.      titre := AnsiUpperCase(titre);
  317.   end else if (option = 2) then
  318.   begin
  319.      //titre := AnsiLowerCase(titre);
  320.      titre := AnsiUpFirstLetter(titre);
  321.   end else if (option = 3) then
  322.   begin
  323.      titre := AnsiLowerCase(titre);
  324.      titre := AnsiMixedCase(titre,' -''(');
  325.   end else if (option = 4) then
  326.   begin
  327.      titre := titre;
  328.   end;
  329.   titre := StringReplace(titre, 'Usa', 'USA');
  330.   result := titre;
  331. end;
  332.  
  333. //------------------------------------------------------------------------------
  334. // TROUVE LA CHAINE VOULUE
  335. //------------------------------------------------------------------------------
  336.  
  337. function findInfo(Debut, Fin, Line, Option : String) : string;
  338. var
  339.    infos : String;
  340.    BeginPos, EndPos : Integer;
  341. begin
  342.    infos := '';
  343.    BeginPos := pos(Debut, Line);
  344.    if BeginPos > 0 then
  345.    begin
  346.     delete(Line, 1, BeginPos+length(Debut)-1);
  347.     EndPos := pos(Fin, Line);
  348.     infos := copy(Line,0,EndPos-1);
  349.     if option = '-1' then                              // Pour garder les sauts de ligne
  350.     begin
  351.       infos := StringReplace(infos, '<BR>', #13#10);
  352.       infos := StringReplace(infos, '<br>', #13#10);
  353.       infos := StringReplace(infos, '–', '-');
  354.       HTMLRemoveTags(infos);
  355.       infos := deleteAsianChar(infos);
  356.       HTMLDecode(infos);
  357.     end else
  358.     if option = '0' then                               // Pour supprimer les sauts de ligne
  359.     begin
  360.       HTMLRemoveTags(infos);
  361.       infos := deleteAsianChar(infos);
  362.       HTMLDecode(infos);
  363.       infos := StringReplace(infos, #13#10, '');
  364.     end else
  365.     if option = '1' then                               // Pour supprimer les sauts de ligne et ne pas enlever les balises
  366.     begin
  367.       infos := deleteAsianChar(infos);
  368.       HTMLDecode(infos);
  369.       infos := StringReplace(infos, #13#10, '');
  370.     end else
  371.     if option = '2' then                               // Pour supprimer les sauts de ligne
  372.     begin
  373.       HTMLRemoveTags(infos);
  374.       HTMLDecode(infos);
  375.       infos := StringReplace(infos, #13#10, '');
  376.     end else
  377.     if option = '3' then                              // Pour garder les sauts de ligne et ne pas enlever les balises
  378.     begin
  379.       infos := StringReplace(infos, '<BR>', #13#10);
  380.       infos := StringReplace(infos, '<br>', #13#10);
  381.       infos := StringReplace(infos, '–', '-');
  382.       infos := deleteAsianChar(infos);
  383.       HTMLDecode(infos);
  384.     end else
  385.     if option = '4' then                               // Pour ne rien faire
  386.     begin
  387.       result := infos;
  388.     end;
  389.    end;
  390.    result := Trim(infos);
  391. end;
  392.  
  393. //------------------------------------------------------------------------------
  394. // SUPPRIME UNE SOUS CHAINE
  395. //------------------------------------------------------------------------------
  396.  
  397. function supprSubString(Debut, Fin, Line : String) : string;
  398. var
  399.    infos : String;
  400. begin
  401.    infos := findInfo(Debut, Fin, Line, '4');
  402.    Line := StringReplace(Line,Debut+infos+Fin,'');
  403.    result := Line;
  404. end;
  405.  
  406. //------------------------------------------------------------------------------
  407. // COUPE UNE CHAINE SI UN CRITERE N'EST PAS RESPECTE
  408. //------------------------------------------------------------------------------
  409.  
  410. function coupeInfo(Debut, Fin, Condition, Line : String) : string;
  411. var
  412.    infos, lacondition : String;
  413.    BeginPos, EndPos, FinalPos : Integer;
  414. begin
  415.    infos := Line;
  416.    BeginPos := pos(Debut, infos);
  417.    if BeginPos > 0 then
  418.    begin
  419.     FinalPos := 0;
  420.     repeat
  421.       BeginPos := pos(Debut, infos);
  422.       delete(infos, 1, BeginPos+length(Debut)-1);
  423.       FinalPos := FinalPos+BeginPos+length(Debut)-1;
  424.       EndPos := pos(Fin, infos);
  425.       lacondition := copy(infos,0,EndPos-1);
  426.       delete(infos, 1, EndPos+length(Fin)-1);
  427.     until (lacondition <> Condition);
  428.     infos := copy(Line,0,FinalPos-1);
  429.    end;
  430.    HTMLRemoveTags(infos);
  431.    result := Trim(infos);
  432. end;
  433.  
  434. //------------------------------------------------------------------------------
  435. // SUPPRESSION DES CARACTERES ASIATIQUES
  436. //------------------------------------------------------------------------------
  437.  
  438. function deleteAsianChar(Value : string) : String;
  439. begin
  440.   repeat
  441.       Value:= StringReplace(Value, '&#'+findInfo('&#', ';', Value,'0')+';', '');
  442.   until (pos('&#',Value) = 0);
  443.   result := Value;
  444. end;
  445.  
  446. //------------------------------------------------------------------------------
  447. // SUPPRESSION DES TABLULATIONS
  448. //------------------------------------------------------------------------------
  449.  
  450. function deleteTab(Value : string) : String;
  451. begin
  452.   repeat
  453.       Value:= StringReplace(Value, '    ', '');
  454.   until (pos('    ',Value) = 0);
  455.   result := Value;
  456. end;
  457.  
  458. //------------------------------------------------------------------------------
  459. // SUPPRESSION DES RETOURS A LA LIGNE MULTIPLES
  460. //------------------------------------------------------------------------------
  461.  
  462. function deleteMultiReturn(Value : string) : String;
  463. begin
  464.   repeat
  465.       Value:= StringReplace(Value, #13#10#13#10, '');
  466.   until (pos(#13#10#13#10,Value) = 0);
  467.   result := Value;
  468. end;
  469.  
  470. //------------------------------------------------------------------------------
  471. // SUPPRIME UNE SOUS CHAINE D'UNE CHAINE SI TERMINE LA CHAINE
  472. //------------------------------------------------------------------------------
  473.  
  474. function deleteEnd(Value, EndValue : String) : String;
  475. begin
  476.   if copy(Value,length(Value)-length(EndValue)+1,length(Value)) = EndValue then
  477.         Value := copy(Value,1,length(Value)-length(EndValue));
  478.   result := Value;
  479. end;
  480.  
  481. //------------------------------------------------------------------------------
  482. // STOCKE LA VALEUR DANS LE CHAMP SP╔CIFI╔ SI LA VALEUR EST NON NULLE
  483. //------------------------------------------------------------------------------
  484.  
  485. procedure MonSetField(field: Integer; value: string);
  486. begin
  487. if value <> '' then
  488.   SetField(field,supprQuote(value));
  489. end;
  490.  
  491. //------------------------------------------------------------------------------
  492. // STOCKE L'IMAGE SI LA VALEUR EST NON NULLE
  493. //------------------------------------------------------------------------------
  494.  
  495. procedure MonGetPicture(value: string);
  496. begin
  497. if value <> '' then
  498.   GetPicture(value);
  499. end;
  500.  
  501. //------------------------------------------------------------------------------
  502. // STOCKE LA VALEUR DANS LE CHAMP SP╔CIFI╔ SI LA VALEUR EST NON NULLE
  503. //------------------------------------------------------------------------------
  504.  
  505. function FormatFloat(value: String) : String;
  506. begin
  507. value := StringReplace(value, ',', '.');
  508. if pos('.',value) = 0 then
  509.   value := value+'.0';
  510. result := value;
  511. end;
  512.  
  513. //------------------------------------------------------------------------------
  514. // REMPLACE " par ''
  515. //------------------------------------------------------------------------------
  516.  
  517. function supprQuote(title : String) : String;
  518. begin
  519.   result := StringReplace(title, '"', '''''');
  520. end;
  521.  
  522. //------------------------------------------------------------------------------
  523. // NETTOIE LE TITRE DU FICHIER POUR AVOIR LE TITRE DE FILM
  524. //------------------------------------------------------------------------------
  525.  
  526. function supprExt(title, ext : String) : String; // Supprime l'extension et ce qui suit
  527. var
  528.   i : Integer;
  529. begin
  530.   i := pos(ext,title);
  531.   if i <> 0 then
  532.     title := copy(title,1,i-1);
  533.   result := title;
  534. end;
  535.  
  536. function supprChemin(title : String) : String; // Supprime les chemins fichiers (C:\...)
  537. var
  538.   i : Integer;
  539. begin
  540.   i := pos('\',title);
  541.   if i = 3 then
  542.   begin
  543.     while i <> 0 do
  544.     begin
  545.       title := copy(title,i+1,length(title)-1);
  546.       i := pos('\',title);
  547.     end;
  548.   end;
  549.   result := title;
  550. end;
  551.  
  552. function cleanTitle(title : String) : string;
  553. var
  554.   i,j, fin : Integer;
  555.   temp : String;
  556.  
  557. begin
  558.   title := AnsiUpperCase(title);
  559.  
  560.   if title <> '' then
  561.   begin
  562.   title := supprChemin(title);
  563. // Nettoie les tags fichiers, merci Atmosfear pour les tags
  564.   title := supprExt(title, '.DVD');
  565.   title := supprExt(title, '.DIVX');
  566.   title := supprExt(title, '.FREN');
  567.   title := supprExt(title, '.GERM');
  568.   title := supprExt(title, '.INT');
  569.   title := supprExt(title, '.LIM');
  570.   title := supprExt(title, '.PROP');
  571.   title := supprExt(title, '.REPACK');
  572.   title := supprExt(title, '.PROP');
  573.   title := supprExt(title, '.SUBB');
  574.   title := supprExt(title, '.UNSUB');
  575.   title := supprExt(title, '.WS');
  576.   title := supprExt(title, '.XVID');
  577.   title := supprExt(title, '.AC3');
  578.   title := supprExt(title, '.UNRAT');
  579.   title := supprExt(title, '.AVI');
  580.   title := supprExt(title, '.OGM');
  581.   title := supprExt(title, '.MKV');
  582.   title := supprExt(title, '.WMV');
  583.   title := supprExt(title, '.MPG');
  584.   title := supprExt(title, '.MPEG');
  585.   title := StringReplace(title, '. ', '><');
  586.   title := StringReplace(title, '.', ' ');
  587.   title := StringReplace(title, ',', ' ');
  588.   title := StringReplace(title, '_', ' ');
  589.   title := StringReplace(title, ':', '');
  590.   title := StringReplace(title, '-', ' ');
  591.   title := StringReplace(title, '  ', ' ');
  592.   title := StringReplace(title, '><', '. ');
  593.  
  594.    i := 0;
  595. // Nettoie les tags de team
  596.    if (pos('(',title) <> 0) then
  597.    begin
  598.      i := pos('(',title);
  599.      temp := copy(title,0,i-1);
  600.      j := pos(')',title);
  601.      fin := Length(title);
  602.      title := temp + copy(title,j+1,fin);
  603.    end;
  604.  
  605.    if (pos('[',title) <> 0) then
  606.    begin
  607.      i := pos('[',title);
  608.      temp := copy(title,1,i-1);
  609.      j := pos(']',title);
  610.      fin := Length(title);
  611.      title := temp + copy(title,j+1,fin);
  612.    end;
  613.   end;
  614.   title := Trim(title);
  615.   title := AnsiLowerCase(title);
  616.   title := formatTitre(title ,GetOption('Format du Titre'));
  617.   if (GetOption('Format du Titre') = -1) then
  618.     title := formatTitre(title ,GetOption('Casse Choisie'));
  619.   result := title;
  620. end;
  621.  
  622. //------------------------------------------------------------------------------
  623. // TRANSFORME NATIONALITE EN PAYS
  624. //------------------------------------------------------------------------------
  625.  
  626. function transformCountry(country : String) : string;
  627. begin
  628.   country := AnsiLowerCase(country);
  629.   // Liste des nationalitΘs trouvΘe sur moviecovers
  630.   country := StringReplace(country, 'afghan', 'Afghanistan');
  631.   country := StringReplace(country, 'albanais', 'Albanie');
  632.   country := StringReplace(country, 'algΘrien', 'AlgΘrie');
  633.   country := StringReplace(country, 'allemand', 'Allemagne');
  634.   country := StringReplace(country, 'amΘricain', 'USA');
  635.   country := StringReplace(country, 'argentin', 'Argentine');
  636.   country := StringReplace(country, 'armΘnien', 'ArmΘnie');
  637.   country := StringReplace(country, 'australien', 'Australie');
  638.   country := StringReplace(country, 'autrichien', 'Autriche');
  639.   country := StringReplace(country, 'bangladais', 'Bangladesh');
  640.   country := StringReplace(country, 'belge', 'Belgique');
  641.   country := StringReplace(country, 'beninois', 'Benin');
  642.   country := StringReplace(country, 'bosniaque', 'Bosnie');
  643.   country := StringReplace(country, 'botswanais', 'Botswana');
  644.   country := StringReplace(country, 'bouthanais', 'Bouthan');
  645.   country := StringReplace(country, 'brΘsilien', 'BrΘsil');
  646.   country := StringReplace(country, 'britannique', 'Grande-Bretagne');
  647.   country := StringReplace(country, 'bulgare', 'Bulgarie');
  648.   country := StringReplace(country, 'burkinabΦ', 'Burkina Faso');
  649.   country := StringReplace(country, 'cambodgien', 'Cambodge');
  650.   country := StringReplace(country, 'camerounais', 'Cameroun');
  651.   country := StringReplace(country, 'canadien', 'Canada');
  652.   country := StringReplace(country, 'chilien', 'Chili');
  653.   country := StringReplace(country, 'chinois', 'Chine');
  654.   country := StringReplace(country, 'colombien', 'Colombie');
  655.   country := StringReplace(country, 'congolais', 'Congo');
  656.   country := StringReplace(country, 'cubain', 'Cuba');
  657.   country := StringReplace(country, 'danois', 'Danemark');
  658.   country := StringReplace(country, 'ecossais', 'Ecosse');
  659.   country := StringReplace(country, 'egyptien', 'Egypte');
  660.   country := StringReplace(country, 'espagnol', 'Espagne');
  661.   country := StringReplace(country, 'estonien', 'Estonie');
  662.   country := StringReplace(country, 'europΘen', 'UE');
  663.   country := StringReplace(country, 'finlandais', 'Finlande');
  664.   country := StringReplace(country, 'franτais', 'France');
  665.   country := StringReplace(country, 'gabonais', 'Gabon');
  666.   country := StringReplace(country, 'georgien', 'GΘorgie');
  667.   country := StringReplace(country, 'grec', 'GrΦce');
  668.   country := StringReplace(country, 'guinΘen', 'GuinΘe');
  669.   country := StringReplace(country, 'ha∩tien', 'Ha∩ti');
  670.   country := StringReplace(country, 'hollandais', 'Pays-Bas');
  671.   country := StringReplace(country, 'hong-kongais', 'Hong-Kong');
  672.   country := StringReplace(country, 'hongrois', 'Hongrie');
  673.   country := StringReplace(country, 'indien', 'Inde');
  674.   country := StringReplace(country, 'indonΘsien', 'IndonΘsie');
  675.   country := StringReplace(country, 'irakien', 'Irak');
  676.   country := StringReplace(country, 'iranien', 'Iran');
  677.   country := StringReplace(country, 'irlandais', 'Irlande');
  678.   country := StringReplace(country, 'islandais', 'Islande');
  679.   country := StringReplace(country, 'israΘlien', 'Israδl');
  680.   country := StringReplace(country, 'italien', 'Italie');
  681.   country := StringReplace(country, 'ivoirien', 'C⌠te d''Ivoire');
  682.   country := StringReplace(country, 'jama∩cain', 'Jama∩que');
  683.   country := StringReplace(country, 'japonais', 'Japon');
  684.   country := StringReplace(country, 'kazakh', 'Kazakhstan');
  685.   country := StringReplace(country, 'kirghiz', 'Kirghizistan');
  686.   country := StringReplace(country, 'kurde', 'Kurdistan');
  687.   country := StringReplace(country, 'lettonien', 'Lettonie');
  688.   country := StringReplace(country, 'libanais', 'Liban');
  689.   country := StringReplace(country, 'liechtensteinois', 'Liechtenstein');
  690.   country := StringReplace(country, 'lituanien', 'Lituanie');
  691.   country := StringReplace(country, 'luxembourgeois', 'Luxembourg');
  692.   country := StringReplace(country, 'macΘdonien', 'MacΘdoine');
  693.   country := StringReplace(country, 'malaisien', 'Malaisie');
  694.   country := StringReplace(country, 'malien', 'Mali');
  695.   country := StringReplace(country, 'maltais', 'Malte');
  696.   country := StringReplace(country, 'marocain', 'Maroc');
  697.   country := StringReplace(country, 'mauritanien', 'Mauritanie');
  698.   country := StringReplace(country, 'mexicain', 'Mexique');
  699.   country := StringReplace(country, 'nΘo-zΘlandais', 'Nouvelle-ZΘlande');
  700.   country := StringReplace(country, 'nigΘrien', 'NigΘria');
  701.   country := StringReplace(country, 'nord-corΘen', 'CorΘe du Nord');
  702.   country := StringReplace(country, 'norvΘgien', 'NorvΘge');
  703.   country := StringReplace(country, 'pakistanais', 'Pakistan');
  704.   country := StringReplace(country, 'palestinien', 'Palestine');
  705.   country := StringReplace(country, 'pΘruvien', 'PΘrou');
  706.   country := StringReplace(country, 'philippiens', 'Philippine');
  707.   country := StringReplace(country, 'polonais', 'Pologne');
  708.   country := StringReplace(country, 'portugais', 'Portugal');
  709.   country := StringReplace(country, 'roumain', 'Roumanie');
  710.   country := StringReplace(country, 'russe', 'Russie');
  711.   country := StringReplace(country, 'sΘnΘgalais', 'SΘnΘgal');
  712.   country := StringReplace(country, 'serbe', 'Serbie');
  713.   country := StringReplace(country, 'serbo-croate', 'Serbie, Croatie');
  714.   country := StringReplace(country, 'singapourien', 'Singapour');
  715.   country := StringReplace(country, 'slovaque', 'Slovaquie');
  716.   country := StringReplace(country, 'soviΘtique', 'URSS');
  717.   country := StringReplace(country, 'sri-lankais', 'Sri-Lanka');
  718.   country := StringReplace(country, 'sud-africain', 'Afrique du Sud');
  719.   country := StringReplace(country, 'sud-corΘen', 'CorΘe du Sud');
  720.   country := StringReplace(country, 'suΘdois', 'SuΦde');
  721.   country := StringReplace(country, 'suisse', 'Suisse');
  722.   country := StringReplace(country, 'tadjik', 'Tadjikistan');
  723.   country := StringReplace(country, 'ta∩wanais', 'Ta∩wan');
  724.   country := StringReplace(country, 'tchadien', 'Tchad');
  725.   country := StringReplace(country, 'tchΦque', 'RΘpublique TchΦque');
  726.   country := StringReplace(country, 'tha∩landais', 'Tha∩lande');
  727.   country := StringReplace(country, 'tunisien', 'Tunisie');
  728.   country := StringReplace(country, 'turc', 'Turquie');
  729.   country := StringReplace(country, 'usa', 'USA');
  730.   country := StringReplace(country, 'ukranien', 'Ukraine');
  731.   country := StringReplace(country, 'uruguayen', 'Uruguay');
  732.   country := StringReplace(country, 'vΘnΘzuΘlien', 'VΘnΘzuΘla');
  733.   country := StringReplace(country, 'vietnamien', 'Vietnam');
  734.   country := StringReplace(country, 'yougoslave', 'Yougoslavie');
  735.   country := StringReplace(country, 'rΘpublique RΘpublique', 'RΘpublique');
  736.   country := formatTitre(country ,GetOption('Format du Titre'));
  737.   if (GetOption('Format du Titre') = -1) then
  738.     country := formatTitre(country ,GetOption('Casse Choisie'));
  739.   result := country;
  740. end;
  741.  
  742. //------------------------------------------------------------------------------
  743. // SUPPRIME LES ACCENTS
  744. //------------------------------------------------------------------------------
  745.  
  746. function supprimeLesAccents(NomFilm : String) : string;
  747. begin
  748.      NomFilm := AnsiLowerCase(NomFilm);
  749.      NomFilm := StringReplace(NomFilm, 'α', 'a');
  750.        NomFilm := StringReplace(NomFilm, 'ß', 'a');
  751.        NomFilm := StringReplace(NomFilm, 'Γ', 'a');
  752.        NomFilm := StringReplace(NomFilm, 'π', 'a');
  753.        NomFilm := StringReplace(NomFilm, 'Σ', 'a');
  754.        NomFilm := StringReplace(NomFilm, 'π', 'a');
  755.        NomFilm := StringReplace(NomFilm, 'Θ', 'e');
  756.        NomFilm := StringReplace(NomFilm, 'Φ', 'e');
  757.        NomFilm := StringReplace(NomFilm, 'δ', 'e');
  758.        NomFilm := StringReplace(NomFilm, 'Ω', 'e');
  759.        NomFilm := StringReplace(NomFilm, '∩', 'i');
  760.        NomFilm := StringReplace(NomFilm, 'ε', 'i');
  761.        NomFilm := StringReplace(NomFilm, '∞', 'i');
  762.        NomFilm := StringReplace(NomFilm, 'φ', 'i');
  763.        NomFilm := StringReplace(NomFilm, '⌠', 'o');
  764.        NomFilm := StringReplace(NomFilm, '÷', 'o');
  765.        NomFilm := StringReplace(NomFilm, '⌡', 'o');
  766.        NomFilm := StringReplace(NomFilm, '≥', 'o');
  767.        NomFilm := StringReplace(NomFilm, '≤', 'o');
  768.        NomFilm := StringReplace(NomFilm, 'ⁿ', 'u');
  769.        NomFilm := StringReplace(NomFilm, '√', 'u');
  770.        NomFilm := StringReplace(NomFilm, '·', 'u');
  771.        NomFilm := StringReplace(NomFilm, 'τ', 'c');
  772.        NomFilm := StringReplace(NomFilm, '±', 'n');
  773.      NomFilm := StringReplace(NomFilm, '⌠', 'o');
  774.      result := NomFilm;
  775. end;
  776.  
  777. //------------------------------------------------------------------------------
  778. // INITIALISE LA LISTE DES ARTICLES
  779. //------------------------------------------------------------------------------
  780.  
  781. function initLesArticles() : array of string;
  782. var
  783.   Articles: array of string;
  784.   i: integer;
  785. begin
  786.   SetArrayLength(Articles,32);
  787.   Articles[0]:='le ';
  788.   Articles[1]:='la ';
  789.   Articles[2]:='l''';        
  790.   Articles[3]:='l ';
  791.   Articles[4]:='les ';
  792.   Articles[5]:='des ';
  793.   Articles[6]:='un ';
  794.   Articles[7]:='une ';
  795.   Articles[8]:='the ';
  796.   Articles[9]:='a ';
  797.   Articles[10]:='an ';
  798.   Articles[11]:='der ';
  799.   Articles[12]:='das ';
  800.   Articles[13]:='die ';
  801.   Articles[14]:='dem ';
  802.   Articles[15]:='den ';
  803.   Articles[16]:='ein ';
  804.   Articles[17]:='eine ';
  805.   Articles[18]:='einen ';
  806.   Articles[19]:='einer ';
  807.   Articles[20]:='eines ';
  808.   Articles[21]:='einem ';
  809.   Articles[22]:='uno ';
  810.   Articles[23]:='una ';
  811.   Articles[24]:='el ';
  812.   Articles[25]:='los ';
  813.   Articles[26]:='las ';
  814.   Articles[27]:='unos ';
  815.   Articles[28]:='unas ';  
  816.   Articles[29]:='il ';
  817.   Articles[30]:='lo ';
  818.   Articles[31]:='i ';
  819.   result := Articles;
  820. end;
  821.  
  822. //------------------------------------------------------------------------------
  823. // SUPPRIME LES ARTICLES
  824. //------------------------------------------------------------------------------
  825.  
  826. function supprimeLesArticles(NomFilm : String) : string;
  827. var
  828.   Articles: array of string;
  829.   i: integer;
  830. begin
  831.   Articles := initLesArticles();
  832.   NomFilm := AnsiLowerCase(NomFilm);
  833. // supprimer les articles
  834.   for i := 0 to GetArrayLength(Articles)-1 do
  835.   begin
  836.     if Pos(Articles[i], NomFilm) = 1 then
  837.     begin
  838.       NomFilm := Copy(NomFilm, Length(Articles[i])+1, length(NomFilm));
  839.       Break;
  840.     end;
  841.   end;
  842.   result := NomFilm;
  843. end;
  844.  
  845. //------------------------------------------------------------------------------
  846. // REMET LES ARTICLES EN DEBUT DE TITRE
  847. //------------------------------------------------------------------------------
  848.  
  849. function articleDebutTitre(title,Debut,Fin : String) : String;
  850. var
  851.   Articles: array of string;
  852.   i: integer;
  853. begin
  854.   title := AnsiLowerCase(title);
  855.   Articles := initLesArticles();
  856.   for i := 0 to GetArrayLength(Articles)-1 do
  857.   begin
  858.     if Pos(Debut+trim(Articles[i])+Fin, title) <> 0 then
  859.     begin
  860.       title := Articles[i]+title;
  861.       title := StringReplace(title, Debut+trim(Articles[i])+Fin, '');
  862.       Break;
  863.     end;
  864.   end;
  865.   result := title;
  866. end;
  867.  
  868. //------------------------------------------------------------------------------
  869. // CONVERTI LES CHIFFRES ROMAINS EN NOMBRE ET INVERSEMENT
  870. //------------------------------------------------------------------------------
  871.  
  872. function conversionNR(NomFilm, Sens : String) : string; // Sens = RvN ou NvR
  873. var
  874.   nombresR, nombresN : array of string;
  875.   i: integer;
  876. begin
  877.   NomFilm := AnsiLowerCase(NomFilm);
  878.   NomFilm := NomFilm+' ';
  879.   SetArrayLength(nombresR,5);
  880.   nombresR[0]:=' i ';
  881.   nombresR[1]:=' ii ';
  882.   nombresR[2]:=' iii ';
  883.   nombresR[3]:=' iv ';
  884.   nombresR[4]:=' v ';
  885.   SetArrayLength(nombresN,5);
  886.   nombresN[0]:=' 1 ';
  887.   nombresN[1]:=' 2 ';
  888.   nombresN[2]:=' 3 ';
  889.   nombresN[3]:=' 4 ';
  890.   nombresN[4]:=' 5 ';
  891.  
  892.   if (Sens = 'RvN') then
  893.   begin
  894.     for i := 0 to GetArrayLength(nombresR)-1 do
  895.     begin
  896.       if Pos(nombresR[i], NomFilm) <> 0 then
  897.       begin
  898.         NomFilm := StringReplace(NomFilm, nombresR[i], nombresN[i]);
  899.         Break;
  900.       end;
  901.     end;
  902.   end else
  903.   if (Sens = 'NvR') then
  904.   begin
  905.     for i := 0 to GetArrayLength(nombresN)-1 do
  906.     begin
  907.       if Pos(nombresN[i], NomFilm) <> 0 then
  908.       begin
  909.         NomFilm := StringReplace(NomFilm, nombresN[i], nombresR[i]);
  910.         Break;
  911.       end;
  912.     end;
  913.   end;
  914.   NomFilm := Trim(NomFilm);
  915.   NomFilm := formatTitre(NomFilm ,GetOption('Format du Titre'));
  916.   if (GetOption('Format du Titre') = -1) then
  917.     NomFilm := formatTitre(NomFilm ,GetOption('Casse Choisie'));
  918.   result := NomFilm;
  919. end;
  920.  
  921. //------------------------------------------------------------------------------
  922. // RECHERCHE SUR LE TITRE ORIGINAL OU TRADUIT
  923. //------------------------------------------------------------------------------
  924.  
  925. function recupTitreRecherche(option : Integer) : string;
  926. var
  927.   NomFilm : String;
  928. begin
  929. if (option = 0) then
  930.     begin
  931.       NomFilm := GetField(fieldTranslatedTitle);
  932.       if NomFilm = '' then
  933.         NomFilm := GetField(fieldOriginalTitle);
  934.     end else
  935.     if (option = 1) then
  936.     begin
  937.       NomFilm := GetField(fieldOriginalTitle);
  938.       if NomFilm = '' then
  939.         NomFilm := GetField(fieldTranslatedTitle);
  940.     end;
  941.     NomFilm := cleanTitle(NomFilm);
  942.     result := NomFilm;
  943. end;
  944.  
  945. //------------------------------------------------------------------------------
  946. // AFFICHAGE DES TITRES SI ORIGINAL ET TRADUIT IDENTIQUE
  947. //------------------------------------------------------------------------------
  948.  
  949. procedure titreDouble(option : Integer);
  950. begin
  951.   if (option = 0) then
  952.   begin
  953.     exit;
  954.   end else if (option = 1) then
  955.   begin
  956.     if CanSetField(fieldTranslatedTitle) then
  957.       DeleteTitle(fieldTranslatedTitle);
  958.   end else if (option = 2) then
  959.   begin
  960.     if CanSetField(fieldOriginalTitle) then
  961.       DeleteTitle(fieldOriginalTitle);
  962.   end;
  963. end;
  964.  
  965. //------------------------------------------------------------------------------
  966. // FONCTION METS LE CHAMPS COMMENTAIRE A LA SUITE DU CHAMPS DESCRIPTION
  967. //------------------------------------------------------------------------------
  968. procedure moveComments();
  969. begin
  970.    SetField(fieldDescription,GetField(fieldDescription)+#13#10#13#10+GetField(fieldComments));
  971.    SetField(fieldComments,'');
  972. end;
  973.  
  974. //------------------------------------------------------------------------------
  975. // PROCEDURE D'ECRITURE D'UN FICHIER DE LOG
  976. //------------------------------------------------------------------------------
  977.  
  978. procedure batch(Nom : String); // DIALOGUE POUR DETERMINER LA DESTINATION (α utiliser au lancement du script)
  979. begin
  980.   execlog := True;
  981.   adresselog := GetStatic('path');
  982.   if adresselog = '' then
  983.   begin
  984.     SetStatic('path',dirScripts);
  985.     adresselog := GetStatic('path');
  986.   end;
  987.   fichierlog := 'BATCH-'+Nom+'.TXT';
  988.   if (ShowConfirmation('Le fichier de log se nomme : '+fichierlog+'.'+#13#10+'Le rΘpertoire de destination est : '+#13#10#13#10+adresselog+#13#10#13#10+'Cliquer sur ''''OUI'''' pour valider.'+#13#10+'Cliquer sur ''''NON'''' pour donner un nouveau chemin.') = True) then
  989.   begin
  990.     createLog();
  991.   end else
  992.   begin
  993.     if Input('Choix du path pour le fichier de log', 'Entrez le rΘpertoire de destination :', adresselog) then
  994.     begin
  995.       if (copy(adresselog,length(adresselog),length(adresselog)) <> '\') then
  996.         adresselog := adresselog+'\';
  997.       SetStatic('path',adresselog);
  998.       adresselog := GetStatic('path');
  999.       createLog();
  1000.     end else
  1001.     begin
  1002.       execlog := False;
  1003.       exit;
  1004.     end;
  1005.   end;
  1006. end;
  1007.  
  1008. procedure createLog(); // CREATION DU FICHIER DE LOG
  1009. begin
  1010.     log := TStringList.Create;
  1011.     log.Text := '*****************************************************************************';
  1012.     log.SaveToFile(adresselog+fichierlog);
  1013.     compteurMAJ := 0;
  1014. end;
  1015.  
  1016. procedure AddToLog(m: string); // AJOUTE UNE LIGNE AU FICHIER DE LOG
  1017. begin
  1018.     if execlog then
  1019.     begin
  1020.       log.Add(m);
  1021.       log.SaveToFile(adresselog+fichierlog);
  1022.     end;
  1023. end;
  1024.  
  1025. procedure beforeUpdate(); // AJOUTE LES INFOS AVANT MISE A JOUR (α utiliser avant de rΘcupΘrer des infos)
  1026. var
  1027.     chaine, lecompteurMAJ : String;    
  1028. begin
  1029.     if execlog then
  1030.     begin
  1031.       chaine := '';
  1032.       compteurMAJ := compteurMAJ+1;
  1033.       if compteurMAJ < 10 then
  1034.         lecompteurMAJ := '00'+IntToStr(compteurMAJ)
  1035.       else if compteurMAJ < 100 then
  1036.         lecompteurMAJ := '0'+IntToStr(compteurMAJ)
  1037.       else lecompteurMAJ := IntToStr(compteurMAJ);
  1038.  
  1039.       AddToLog('************************** Traitement n░ '+lecompteurMAJ+' ********************************');
  1040.       AddToLog('Informations avant mise α jour du film n░'+GetField(fieldNumber)+'.');
  1041.       chaine := 'Titre traduit : '+GetField(fieldTranslatedTitle)+' - Titre original : '+GetField(fieldOriginalTitle);
  1042.       AddToLog(chaine);
  1043.       chaine := 'RΘalisateur : '+GetField(fieldDirector)+' - AnnΘe : '+GetField(fieldYear);
  1044.       AddToLog(chaine);
  1045.       chaine := 'Adresse Web : '+GetField(fieldURL);
  1046.       AddToLog(chaine);
  1047.       chaine := '';
  1048.     end;
  1049. end;
  1050.  
  1051. procedure afterUpdate(); // AJOUTE LES INFOS APRES MISE A JOUR (α utiliser aprΦs la rΘcupΘration des infos)
  1052. var
  1053.     chaine : String;
  1054. begin
  1055.     if execlog then
  1056.     begin
  1057.       chaine := '';
  1058.       AddToLog('Informations aprΦs mise α jour');
  1059.       chaine := 'Titre traduit : '+GetField(fieldTranslatedTitle)+' - Titre original : '+GetField(fieldOriginalTitle);
  1060.       AddToLog(chaine);
  1061.       chaine := 'RΘalisateur : '+GetField(fieldDirector)+' - AnnΘe : '+GetField(fieldYear);
  1062.       AddToLog(chaine);
  1063.       chaine := 'Adresse Web  : '+GetField(fieldURL);
  1064.       AddToLog(chaine);
  1065.       AddToLog('*****************************************************************************');
  1066.       SetField(fieldChecked, 'x');
  1067.       chaine := '';
  1068.     end;
  1069. end;
  1070.  
  1071. end.
  1072.