{\rtf1\ansi\ansicpg1252\deff0\deflang1036{\fonttbl{\f0\fmodern\fprq1\fcharset0 Courier New;}{\f1\fmodern\fcharset0 Courier New;}}
{\colortbl ;\red0\green128\blue0;\red102\green102\blue102;\red128\green0\blue128;\red0\green0\blue0;\red255\green102\blue0;\red255\green0\blue0;\red0\green0\blue255;}
{\*\generator Msftedit 5.41.15.1507;}\viewkind4\uc1\pard\cf1\f0\fs20 // DESCRIPTION Organisez votre soir\'e9e en quelques cliques [Programme TV, Cin\'e9] entrez "Aide" pour obtenir les commandes\cf2\par
\cf1 // DATALANGUAGE FR\cf2\par
\cf1 // AUTHOR Cybox\cf2\par
\par
\cf3 MovieDatabaseValue\cf2 = "Votre Soiree"\par
\par
\cf1 // Commandes disponibles\cf2\par
\cf4 If\cf2 (\cf5 TitleToSearch\cf2 ~= "AIDE") or (\cf5 TitleToSearch\cf2 ~= "HELP") \cf4 Then\cf2\par
\tab\cf6 Info\cf2 ("Commande du script:" + CR + ...\par
\tab\tab "" + CR + ...\par
\tab\tab "[AIDE] ou [HELP] >>> Affiche les commandes disponibles" + CR + ...\par
\tab\tab "[TV] >>> Affiche le programme t\'e9l\'e9 de la soir\'e9e\cf1 " + CR + ...\par
\cf2\tab\tab "[..H..] >>> Affiche le programme t\'e9l\'e9 \'e0 l'heure indiqu\'e9e (ex: 21h00)\cf1 " + CR + ...\cf2\par
\tab\tab "[25.03] >>> Affiche le programme t\'e9l\'e9 de la date indiqu\'e9e (ex: le 25 mars)\cf1 " + CR + ...\cf2\par
\tab\tab "(Code postal, D\'e9partement, Nom du cin\'e9 ...) >>> Pour r\cf1 echercher un cin\'e9ma et afficher le programme\cf2 ") \cf1 // + CR + ...\cf2\par
\tab\tab\cf1 // "[CINE] >>> A l'affiche cette semaine dans votre cin\'e9ma")\cf2\par
\cf4\tab Return\par
End\par
\par
\cf1\par
\cf4 If\cf2 \cf5 TitleToSearch\cf2 ~= "TV" \cf4 Then\cf2\par
\tab\cf4 Goto\cf2 Soiree_tele\par
\cf4 End\cf2\par
\cf4 If\cf2 \cf5 TitleToSearch\cf2 ~= "CINE" \cf4 Then\cf2\par
\tab\cf4 Goto\cf2 Soiree_cine\par
\cf4 End\cf2\par
\par
Test1 is \cf4 String\cf2 = \cf5 TitleToSearch\cf2\par
Test2 is \cf4 String\cf2 = Test1\par
Taille is \cf4 Int \cf2 = \cf7 StringLength\cf2 ( \cf5 TitleToSearch\cf2 )\par
Taille_num is \cf4 Int \cf2 = \cf7 StringLength\cf2 ( \cf7 EliminateLetters\cf2 ( \cf5 T\cf2 est1 ))\par
\cf4 T\cf2 aille_let is \cf4 Int \cf2 = \cf7 StringLength\cf2 ( \cf7 EliminateNumbers\cf2 ( \cf5 T\cf2 est2 ))\cf4\par
L\cf2 etter3 is \cf4 String\cf2 = \cf7 StringMiddle\cf2 ( \cf5 TitleToSearch\cf2 , 3, 1)\par
Letter5 is \cf4 String\cf2 = \cf7 StringMiddle\cf2 ( \cf5 TitleToSearch\cf2 , 5, 1)\par
Letter8 is \cf4 String\cf2 = \cf7 StringMiddle\cf2 ( \cf5 TitleToSearch\cf2 , 8, 1)\par
\par
\cf1\par
\cf2 H\cf1 eure_TV is \cf4 Int \cf1 // = 2100\cf2\par
D\cf1 ate_TV is \cf4 String \cf1 // = 20060325\par
\cf2\par
\cf1 // V\'e9rification si TitleToSearch est de la forme "..H.." (heure) pour le programme TV\cf2\par
\cf4 If\cf2 Taille = 5 \cf4 Then\cf2\par
\tab\cf4 If\cf2 Taille_num = 4 \cf4 Then\cf2\par
\tab\tab\cf4 If\cf2 Letter3 ~= "H" \cf4 Then\cf2\par
\tab\tab\tab Heure_TV = \cf7 EliminateLetters\cf2 ( \cf5 TitleToSearch\cf2 )\par
\tab\tab\tab Date_TV = Datedujour\par
\tab\tab\tab\cf4 Goto\cf2 Plage_TV\par
\tab\tab\cf4 End\cf2\par
\tab\cf4 End\cf2\par
\cf4 End\cf2\par
\cf4\par
\cf1 // V\'e9rification si TitleToSearch est de la forme "jj.mm" (date) pour le programme TV\cf4\par
If\cf2 Taille = 5 \cf4 Then\cf2\par
\tab\cf4 If\cf2 Taille_num = 4 \cf4 Then\cf2\par
\tab\tab\cf4 If\cf2 Letter3 = "." \cf4 Then\cf2\par
\tab\tab\tab Heure_TV = "21"\par
\tab\tab\tab Date_TV = \cf7 StringLeft\cf2 ( Datedujour, 4) + \cf7 StringRight\cf2 ( \cf5 TitleToSearch\cf2 , 2) + \cf7 StringLeft\cf2 ( \cf5 TitleToSearch\cf2 , 2)\par
\tab\tab\tab\cf4 Goto\cf2 Plage_TV\par
\tab\tab\cf4 End\cf2\par
\tab\cf4 End\cf2\par
\cf4 End\cf2\par
\par
\par
\par
liste_cine:\par
\cf1 // Recherche des 40 premiers cin\'e9ma a lister\cf2\par
HtmlCode00 is \cf4 String\cf2 = \cf7 GetPage\cf2 ( "http://www.allocine.fr/recherche/?motcle=", \cf5 TitleToSearch\cf2 , "&f=3&rub=3&page=1" )\par
HtmlCode01 is \cf4 String\cf2 = \cf7 GetPage\cf2 ( "http://www.allocine.fr/recherche/?motcle=", \cf5 TitleToSearch\cf2 , "&f=3&rub=3&page=2" )\par
\f1 HtmlCode0 is \cf4 String\cf2 = HtmlCode00 + HtmlCode01\par
\par
Cine\cf0 _Delimiter\cf2 is \cf4 String\cf2 = \f0 "\cf1 ", "")\par
\cf2\tab Movie_Title = \cf7 StringRefine\cf2 (Movie_Title)\par
\tab Movie_Title = \cf7 StringReplace\cf2 (Movie_Title, CR, "")\par
\tab Movie_Title1 = \cf7 BetweenStrings\cf1 (M\cf2 ovie\cf1 _Title, "\cf2 " + \cf7 StringExtraction\cf2 (Movie_Title, 2, "
")\cf1\par
\cf2\tab Movie_Title2 = \cf7 BetweenStrings\cf2 (Movie_Title2, "
", "
")\par
\tab Movie_Title3 = "" + \cf7 StringExtraction\cf2 (Movie_Title, 3, "
")\cf1\par
\cf2\tab Movie_Title3 = \cf7 BetweenStrings\cf2 (Movie_Title3, "
") + ")"\fs18\par
\cf4 End\cf2\fs20\par
\cf1\par
\cf2\par
\cf1 // Extraction code html et recherche du nombre de films \'e0 l'affiche dans votre cin\'e9ma\cf2\par
HtmlCode = \cf7 BetweenStrings\cf2 ( HtmlCode, Delimiter_sortie, Delimiter_remove)\cf1\par
\cf2 Delimiter_Films is \cf4 String\cf2 = "", "
")\par
\tab Movie_Title = Movie_Title1 + " - " + Movie_Title2 + Movie_Title3\par
\tab\cf1 M\cf2 ovie\cf1 _Title = \cf7 FormatString\cf1 (M\cf2 ovie\cf1 _Title, "UC")\par
\cf2\tab\cf1 M\cf2 ovie\cf1 _Title = \cf7 FormatString\cf1 (M\cf2 ovie\cf1 _Title, "\cf2 WOA\cf1 ")\par
\cf2\tab\cf1 M\cf2 ovie\cf1 _Title = RemoveHTMLTags (M\cf2 ovie\cf1 _Title)\cf2\par
\tab Movie_URL = "http://www.allocine.fr/seance/salle_gen_csalle=" + M\cf1 ovie\cf2 _ID\cf1 + ".html"\cf2\par
\tab\cf4 If\cf2 (Movie_ID = "") OR (Movie_ID = \fs18 "\cf1\'04")\cf2 OR\fs20 (Movie_Title = "") OR (Movie_Title = \fs18 "\cf1\'04")\cf2 \cf4 Then\cf2\fs20\par
\tab\tab\cf4 Goto\cf2 Pas_Add\par
\tab\cf4 Else\cf2\tab\par
\tab\tab\cf7 AddMovieToList\cf2 (i, Movie_ID, Movie_Title, Movie_URL)\par
\cf4\tab End\cf1\par
P\cf2 as_Add:\cf1\par
\par
//MODE DEBUG : enlever les deux slash devant \cf6 Trace\cf1 pour tester la capture des titres\par
//\cf6 Trace\cf1 (Movie_ID, Movie_Title, Movie_URL)\par
\cf2\par
\cf4 End\cf2\par
\fs18\par
\cf1 // Ouverture de la liste des cin\'e9ma trouv\'e9s\par
\cf7\par
OpenMoviesList\cf1 ()\par
\par
\cf4\fs20 If\cf1 \cf3 MovieIDValue\cf1 = "" \cf4 Then\cf2\par
\cf1\tab\cf7 UserErrorMessage\cf1 ("Vous n'avez s\'e9lectionn\'e9 aucun C\cf2 in\'e9ma.\cf1 " + CR + CR +\cf2 \cf1 "Ou la liste \'e9tait vide o\cf2 u incompl\'e8te \cf1\'e0 cause de \cf2 v\cf1 otre Firewall.")\cf2\par
\tab\cf4 Return\cf2\par
\cf4 End\par
\cf2\fs18\par
\par
\cf1\fs20 // MODE DEBUG : Verify URL (must be deactivate in the final version of the script)\cf2\par
\cf1 // ShellExecute("http://www.allocine.fr/seance/salle_gen_csalle=" + Movie_ID + ".html")\fs18\par
\cf2\fs20\par
\par
Soiree_cine:\par
\cf1 // DEBUG : Verify URL (must be deactivate in the final version of the script)\cf2\par
\cf1 // ShellExecute("http://www.allocine.fr/")\cf2\par
\par
\cf1 // Extract the html code of the movies list\par
\cf2 Delimiter_sortie is \cf4 String\cf2 = ""\cf4\par
\cf7 D\cf2 elimiter_remove is \cf4 String\cf2 = "LIENS PROMOTIONNELS"\par
Delimiter_cine1 is \cf4 String\cf2 = "
") + ")"\par
\cf4\fs18\tab\cf2 Cinema = \cf7 StringReplace\cf2 (Cinema, ""\par
Delimiter_cine2 is \cf4 String\cf2 = "
"\par
\par
\par
\cf1 // CHOIX DE SON CINEMA: allez sur le site allocine.fr et recherchez votre cinema.\cf2\par
\cf1 // une fois la page de votre cin\'e9ma affich\'e9e, relev\'e9 la valeur "P...." situ\'e9e dans la barre d'adresse de votre navigateur,\par
// et reporter la dans la ligne en dessous \'e0 la place de "P0699"\par
// (exemple: "P0209" correspond au cin\'e9ma "Eden" \'e0 Cosne)\cf2\par
\cf4 If\cf2 \cf3 MovieURLValue\cf2 <> "" \cf4 Then\cf1\par
\tab HtmlCode is \cf4 String\cf1 = \cf7 GetPage(\cf1 \cf3 MovieURLValue\cf1 , "", "" )\cf2\par
\cf4 Else\cf2\par
\tab HtmlCode = \cf7 GetPage\cf2 ( \cf1 "http://www.allocine.fr/seance/salle_gen_csalle=" , "P06\cf2 99\cf1 " , ".html"\cf2 )\par
\cf4 End\cf2\par
\cf1\par
\cf4 If\cf2 HtmlCode = "" \cf4 Then\par
\cf2\tab\cf4 Switch\cf2 \cf4 Language\cf2\par
\tab\cf4 Case\cf2 3 \cf1 // English\cf2\par
\cf7\tab\cf2\tab\cf7 UserErrorMessage\cf2 ("This page has not been found")\par
\tab\cf4 Case\cf2 5 \cf1 // Fran\'e7ais\cf2\par
\tab\tab\cf7 UserErrorMessage\cf2 ("Cette page n'a \'e9t\'e9 trouv\'e9e")\par
\cf4\tab End\cf2\par
\tab\cf4 Return\cf2\par
\cf4 End\par
\par
\cf1 // Suppression des caract\'e8res suppl\'e9mentaires\cf4\par
\cf1 HtmlCode = Replace (HtmlCode , "000005DC" , "")\par
HtmlCode = Replace (HtmlCode , "000006C4" , "")\par
HtmlCode = Replace (HtmlCode , "000000E8" , "")\par
HtmlCode = Replace (HtmlCode , "00004000" , "")\cf2\par
\cf1 HtmlCode = Replace (HtmlCode , "\cf2 00000CA0\cf1 " , "")\par
HtmlCode = Replace (HtmlCode , "\cf2 00003B80\cf1 " , "")\par
\cf2\par
\cf1 // Extraction du nom du cinema et de l'adresse\par
\cf4 If\cf1 \cf7 StringLeft\cf2 (\cf3 MovieIDValue,\cf2 1)\cf1 = "C" \cf4 Then\cf2\par
\fs18\tab\fs20 Cinema is \cf4 String\cf2 = \cf7 BetweenStrings\cf2 (HtmlCode, Delimiter_cine1, "
") + " <<<" + CR + "\tab\tab (" + \cf7 BetweenStrings\cf2 (HtmlCode, Delimiter_cine2, "
", " - ")\cf4\par
Else\cf2\par
\tab\fs20 Cinema = \cf7 BetweenStrings\cf2 (HtmlCode, Delimiter_cine1, "") + " <<< (" + \cf7 BetweenStrings\cf2 (HtmlCode, Delimiter_cine2, ""\cf1\par
\cf2 Nb_Films is \cf4 Int \cf2 = \cf7 StringCounter\cf2 ( HtmlCode, Delimiter_Films )\par
\par
\par
\cf1 // D\'e9claration de variables\cf2\par
Html_Film, Horaires, H\cf1 tmlCode1,\cf2 HtmlCode2, HtmlCode3, HtmlCode4, HtmlCode5\cf1 \cf2 are\cf1 \cf4 String\cf2\par
\par
\par
\cf1 // mod\'e8le des pages \'e0 afficher (5 films par pages)\cf2\par
HtmlCode1 = " " + "A l'affiche cette semaine au cinema >>> " + Cinema\par
HtmlCode2 = HtmlCode1\par
HtmlCode3 = HtmlCode1\par
HtmlCode4 = HtmlCode1\par
HtmlCode5 = HtmlCode1\par
\par
\cf4\par
\cf1 // organisation des films \'e0 l'affiche de 1 \'e0 5\cf2\par
\cf4 For\cf2 i=2 to Nb_Films + 1\par
\tab\cf4 If\cf2 i > 6 \cf4 Then\cf2\par
\tab\tab\cf4 Goto\cf2 Page2\par
\tab\cf4 End\cf2\par
\tab Html_Film = Delimiter_Films + \cf7 StringExtraction\cf2 ( HtmlCode, i, Delimiter_Films)\par
\tab Horaires = \cf7 BetweenStrings\cf1 ( Html_Film, "\cf2
\cf2 "\cf1 )\cf2\par
\tab Html_Film = \cf7 StringReplace\cf2 ( Html_Film, ""\cf1 , "<\cf2 /h4>")\par
\tab Horaires = \cf7 StringReplace\cf2 ( Horaires, "
", "\tab ")\par
\tab Horaires = \cf7 RemoveHTMLTags\cf2 (Horaires)\par
\tab\cf1 Html_Film = \cf7 BetweenStrings\cf1 ( Html_Film, Delimiter_Films, "