{\rtf1\ansi\ansicpg1252\deff0\deflang1036{\fonttbl{\f0\fmodern\fprq1\fcharset0 Courier New;}{\f1\fswiss\fprq2\fcharset0 Courier New;}{\f2\fswiss\fprq2\fcharset0 System;}{\f3\fswiss\fprq2\fcharset0 MS Shell Dlg;}} {\colortbl ;\red0\green128\blue0;\red102\green102\blue102;\red128\green0\blue128;\red0\green0\blue0;\red0\green0\blue255;\red255\green102\blue0;\red128\green128\blue128;\red0\green192\blue192;\red0\green128\blue128;\red255\green0\blue0;} \viewkind4\uc1\pard\cf1\f0\fs20 // DESCRIPTION "Rotten tomatoe" Interface \cf2\par \cf1 // DATALANGUAGE US\cf2\par \cf1 // AUTHOR MONYA\cf2\par \par \cf3 MovieDatabaseValue\cf2 = "\cf1 Rotten tomatoe\cf2 "\par \par \cf1 // Extract the html code of the Web page\cf2\par HtmlCode is \cf4 String\cf2 = \cf5 GetPage\cf2 ("http://www.rottentomatoes.com/search/full_search.php?search=" , \cf6 TitleToSearch\cf2 ,"")\par \cf4\par If\cf2 HtmlCode = "" \cf4 Then\par \cf2\tab\cf4 Switch\cf2 \cf4 Language\cf2\par \tab\cf4 Case\cf2 3 \cf1 // English\cf2\par \cf5\tab\cf2\tab\cf5 UserErrorMessage\cf2 ("This page has not been found")\par \tab\cf4 Case\cf2 5 \cf1 // Fran\'e7ais\cf2\par \tab\tab\cf5 UserErrorMessage\cf2 ("Cette page n'a pas \'e9t\'e9 trouv\'e9e")\par \cf4\tab End\cf2\par \tab\cf4 Return\cf2\par \cf4 End\cf2\par \par \cf1 // Compute the movies number in the HTML code\cf2\par Movies_Delimiter is \cf4 String\cf2 = "movie-link href=""/m/"\par Movies_Number is \cf4 Int \cf2 = \cf5 StringCounter\cf2 (HtmlCode, Movies_Delimiter)\par \cf4 If\cf2 Movies_Number = 0 \cf4 Then\par \cf2\tab\cf4 Switch\cf2 \cf4 Language\cf2\par \tab\cf4 Case\cf2 3 \cf1 // English\cf2\par \cf5\tab\cf2\tab\cf5 UserErrorMessage\cf2 ("No film was found")\par \tab\cf4 Case\cf2 5 \cf1 // Fran\'e7ais\cf2\par \tab\tab\cf5 UserErrorMessage\cf2 ("Aucun film n'a \'e9t\'e9 trouv\'e9")\par \cf4\tab End\cf2\par \tab\cf4 Return\cf2\par \cf4 End\cf2\par \par \cf1 // DEBUG : Verify the Movies Number (must be deactivate in the final version of the script)\cf2\par \cf1 // Info("Movies Number = " + Movies_Number)\cf2\par i is int\par one_movie,Movie_ID, Movie_Title, Movie_URL are \cf4 String\cf2\par \cf4 For\cf2 i=2 to Movies_Number + 1\par \tab one_movie=\cf5 StringExtraction\cf2 (HtmlCode, i, "movie-link href=""/m")\tab\par \cf1\tab Movie_ID=\cf5 BetweenStrings\cf1 (one_movie, "/", "/"">")\par \cf2\tab Movie_Title = \cf5 BetweenStrings\cf2 (one_movie, "\cf1 /"">\cf2 ", "")\par \cf1\tab Movie_Title = \cf5 StringRefine\cf1 (Movie_Title)\cf2\par \cf1\tab Movie_URL = "\cf2 http://www.rottentomatoes.com/m/\cf1 " + Movie_ID + "\cf2 /\cf1 "\par \cf2\tab\cf1 // Add the ID, the Title and the URL in the Movies List For choice\cf2\par \tab\cf5 AddMovieToList\cf2 (i, Movie_ID, Movie_Title, Movie_URL)\par \tab\cf1 // DEBUG : Verify ID, Title and URL (must be deactivate in the final version of the script)\cf2\par \tab\cf1 // Trace(Movie_ID, Movie_Title, Movie_URL)\cf2\par \cf4 End\cf2\par \cf5\f1\fs18 OpenMoviesList\cf4 ()\par \f0\fs20\par \cf0\b\f2\par \cf1\b0\f1\fs18 // The movies list returns the ID, the Title and the URL (\cf3 MovieIDValue\cf1 , \cf3 MovieTitleValue\cf1 , \cf3 MovieURLValue\cf1 )\cf7\par \cf1 // of the movie choosen by the user\cf7\par \cf4 If \cf3 MovieIDValue\cf4 = \cf3\f3 ""\cf4\f1 Then\par \tab Switch \cf8 Language\par \cf4\tab\tab Case \cf3 3\cf4 \cf1 // English\cf7\par \cf4\tab\tab\tab\cf5 UserErrorMessage\cf4 (\cf3\f3 "This film has not been found"\cf4\f1 )\par \tab\tab Case \cf3 5\cf4 \cf1 // Fran\'e7ais\cf7\par \cf4\tab\tab\tab\cf5 UserErrorMessage\cf4 (\cf3\f3 "Ce film n'a \'e9t\'e9 trouv\'e9"\cf4\f1 )\par \tab End\par \tab Return\par End\par \cf0\b\f2\fs20\par \cf1\b0\f1\fs18 // Extract the html code of the movie\cf7\par \cf1 HtmlCode\cf4 = \cf5 GetMovie\cf4 (\cf3\f3 "\cf2\f0\fs20 http://www.rottentomatoes.com/m/\cf3\f3\fs18 "\cf4\f1 , \cf3 MovieIDValue\cf4 , \cf3\f3 "/"\cf4\f1 )\par If \cf1 HtmlCode\cf4 = \cf3\f3 ""\cf4\f1 Then\par \tab Switch \cf8 Language\par \cf4\tab\tab Case \cf3 3\cf4 \cf1 // English\cf7\par \cf4\tab\tab\tab\cf5 UserErrorMessage\cf4 (\cf3\f3 "This page has not been found"\cf4\f1 )\par \tab\tab Case \cf3 5\cf4 \cf1 // Fran\'e7ais\cf7\par \cf4\tab\tab\tab\cf5 UserErrorMessage\cf4 (\cf3\f3 "Cette page n'a \'e9t\'e9 trouv\'e9e"\cf4\f1 )\par \tab End\par \tab Return\par End\par \cf0\b\f2\fs20\par \cf1\b0\f1\fs18 // Movie Year\cf7\par \cf3 MovieYearValue\cf1 =\cf5 BetweenStrings\cf1 (HtmlCode, \f3 """title"" align=""center"">

"\f1 , \f3 "

"\f1 )\par \cf3 MovieYearValue\cf1 =\cf5 BetweenStrings\cf1 (\cf3 MovieYearValue\cf1 , \f3 "("\f1 , \f3 ")"\f1 )\par \cf4 If\cf1 \cf5 StringLength\cf1 (\cf3 MovieYearValue\cf1 )= 1 \cf4 Then\par \cf2\tab\cf3 MovieYearValue\cf1 =""\cf2\par \cf4 End\par \cf0\b\f2\fs20\par \cf1\b0\f1\fs18 // Movie Duration\par \cf2 heure,min are int\par heure\cf1 =\cf5 BetweenStrings\cf1 (HtmlCode\cf4 , \cf3\f3 "RUNTIME
"\cf4\f1 , \cf3\f3 "\cf2\f1 hours\cf3\f3 "\cf1\f1 )\par \cf3 MovieDurationValue\cf4 =\cf5 FormatString\cf4 (\cf5 BetweenStrings\cf4 (\cf1 HtmlCode\cf4 , \cf3\f3 "RUNTIME
"\cf4\f1 , \cf3\f3 "
"\cf4\f1 ), \cf3\f3 "WOS"\cf4\f1 )\par \cf2 min \cf1 =\cf5 BetweenStrings\cf1 (\cf3 MovieDurationValue\cf4 , \cf3\f3 ","\cf4\f1 , \cf3\f3 "\cf2\f1 minutes\cf3\f3 "\cf1\f1 )\par \cf3 MovieDurationValue\cf2 =(heure*60)+min\par \cf4 If \cf5 StringLength\cf2 (\cf3 MovieDurationValue)\cf4 = \cf2 1\cf4 Then\par \cf3\tab MovieDurationValue=\cf2 ""\par \cf4 End\par \par \cf1 // Movie Family\cf7\par \cf3 MovieFamilyValue\cf4 = \cf5 BetweenStrings\cf4 (\cf1 HtmlCode\cf4 , \cf3\f3 "\cf2 GENRE\cf3 "\cf4\f1 , \cf3\f3 "/a>"\cf4\f1 )\par \cf3 MovieFamilyValue\cf4 = \cf5 BetweenStrings\cf4 (\cf3 MovieFamilyValue\cf4 , \cf3\f3 ""\cf2 "\cf3 >"\cf4\f1 , \cf3\f3 "<"\cf4\f1 )\par If \cf5 StringLength\cf2 (\cf3 MovieFamilyValue)\cf4 = \cf2 1\cf4 Then\par \cf3\tab MovieFamilyValue=\cf2 ""\par \cf4 End\par \cf1\par // Movie Image\cf7\par \cf3 MoviePictureValue\cf4 = \cf5 BetweenStrings\cf4 (\cf1 HtmlCode\cf4 , \cf3\f3 "\cf2 \cf3 "\cf4\f1 , \cf3\f3 "\cf2 width=""144""\cf3 "\cf4\f1 )\par \cf3 MoviePictureValue\cf4 \cf2 = \cf5 BetweenStrings\cf4 (\cf3 MoviePictureValue\cf4 , \cf3\f3 "\cf2\f1 \cf4 \cf2 1\cf4 Then\par \cf2\tab\cf9 AddElementToGallery\cf4 (\cf3 1\cf4 , \cf3\f3 "PICTURE"\cf4\f1 , \cf3 MoviePictureValue\cf4 )\par End\par \cf2\f0\fs20\par \cf1\fs18 // Movie \fs20 OFFICIAL SITE\cf2\par \cf3\f1\fs18 Movieo\cf2 fficialsite\cf3 Value\cf2 is \cf4 String\cf7\par \cf3 Movieo\cf2 fficialsite\cf3 Value\cf4 = \cf5 BetweenStrings\cf4 (\cf1 HtmlCode\cf4 , \cf3\f3 "\cf2\f0\fs20 OFFICIAL SITE\cf3\f3\fs18 "\cf4\f1 , \cf3\f3 "\cf2\f0\fs20 The Official\cf3\f3\fs18 "\cf4\f1 )\par \cf3 Movieo\cf2 fficialsite\cf3 Value\cf2 = \cf5 BetweenStrings\cf4 (\cf3 Movieo\cf2 fficialsite\cf3 Value\cf4 , \cf3\f3 "\cf2\f0\fs20 href=""\cf3\f3\fs18 "\cf4\f1 , \cf3\f3 "\cf2\f0\fs20 "" class\cf3\f3\fs18 "\cf4\f1 )\par \cf2\par \cf4 If \cf5 StringLength\cf2 (\cf3 Movieo\cf2 fficialsite\cf3 Value\cf4 \cf3 )\cf2 <>\cf4 \cf2 1\cf4 Then\par \cf2\tab\cf9 AddElementToGallery\cf4 (\cf3 1\cf4 , \cf3\f3 "W\cf2 EBPAGE\cf3 "\cf4\f1 , \cf3 Movieo\cf2 fficialsite\cf3 Value\cf4 )\par End\cf2\par \f0\fs20\par \par HtmlCode = \cf5 GetPage\cf2 ("\cf4\f1\fs18 http://www.rottentomatoes.com/m/\cf2\f0\fs20 " , \cf3\f1\fs18 MovieIDValue\cf2\f0\fs20 ,"\cf4\f1\fs18 /\cf2\f0\fs20 photos.php")\par Photo_Number is \cf4 Int \cf2 = \cf5 StringCounter\cf2 (HtmlCode, "")\par \cf4\f1\fs18 If\cf2 \f0\fs20 Photo_Number <> 0\cf4\f1\fs18\par Switch \cf8 Language\par \cf4\tab Case \cf3 3\cf4 \cf1 // English\par \cf2\tab\tab\cf4 If\cf2 \cf5 YesNo\cf2 ("There is " + \f0\fs20 Photo_Number + " pictures, do you want to import them ?")\cf4 Then\cf2\par \cf1\tab\cf2\tab\tab\cf1 // 15 Photos max per film -1 movie image\cf2\par \cf4\tab\cf2\tab\tab\cf4 If\cf2 Photo_Number > 14 \cf4 Then\cf2 Photo_Number = 14\par \tab\tab\cf4 Else\cf2\par \tab\tab\tab Photo_Number = 2\par \cf7\f1\fs18\tab\cf2\tab\cf4 End\cf7\par \cf4\par \tab Case \cf3 5\cf4 \cf1 // Fran\'e7ais\cf7\par \cf2\tab\tab\cf4 If\cf2 \cf5 YesNo\cf2 ("Il y a " + \f0\fs20 Photo_Number + " photos, voulez-vous les importer ?")\cf4 Then\cf2\par \cf1\tab\cf2\tab\tab\cf1 // 15 Photos max per film -1 movie image\cf2\par \cf4\tab\cf2\tab\tab\cf4 If\cf2 Photo_Number > 14 \cf4 Then\cf2 Photo_Number = 14\par \tab\tab\cf4 Else\cf2\par \tab\tab\tab Photo_Number=1\par \cf7\f1\fs18\tab\cf2\tab\cf4 End\cf7\par \cf4\par End\cf2\f0\fs20\par \cf4 For\cf2 i=2 to Photo_Number +1\par \tab one_photo \cf1 is \cf4 String\cf1 \cf2 =\cf5 StringExtraction\cf2 (HtmlCode , i, "")\par \tab one_photo=\cf5 BetweenStrings\cf2 (one_photo,\cf1 ""\f1 , \f3 "


"\f1 )\cf4\par \cf3 MovieSummaryValue\cf4 = \cf5 RemoveHTMLTags\cf2 (\cf5 FormatString\cf4 (\cf5 StringRefine\cf4 (\cf5 BetweenStrings\cf4 (\cf1 HtmlCode\cf4 , \cf3\f3 "span class=""movie-body-text"">"\cf4\f1 , \cf3\f3 "\cf2


\cf3 "\cf4\f1 )), \cf3\f3 "WOS"\cf4\f1 ))\par If \cf5 StringLength\cf2 (\cf3 MovieSummaryValue\cf4 \cf3 )\cf4 = \cf2 1\cf4 Then\par \cf3\tab MovieSummaryValue\cf4 \cf3 =\cf2 ""\par \cf4 End\par \cf2\f0\fs20\par HtmlCode = \cf5 GetPage\cf2 ("\cf4\f1\fs18 http://www.rottentomatoes.com/m/\cf2\f0\fs20 " , \cf3\f1\fs18 MovieIDValue\cf2\f0\fs20 ,"\cf4\f1\fs18 /\cf2 cast_crew.php\f0\fs20 ")\par \cf1\f1\fs18 // Movie Actors with Casting\cf7\par \cf1 Actors\cf4 is String\par \cf1 Actors\cf4 =\cf5 BetweenStrings\cf4 (\cf1 HtmlCode\cf4 , \cf3\f3 "movie-body-header"">CAST"\cf4\f1 , \cf3\f3 "\cf2 \cf3 "\cf4\f1 )\par \cf1 Actors_Number is \cf4 Int \cf1 = \cf5 StringCounter\cf1 (Actors, \f3 "\cf2 \cf3 15\cf4 Then \cf1 Actors_Number\cf4 = \cf3 15\par \cf4 For \cf1 i\cf4 = \cf3 1\cf4 TO \cf1 Actors_Number\cf3\par \cf4\tab\cf1 One_Actor\cf4 is String = \cf5 StringExtraction\cf4 (\cf1 Actors\cf4 , \cf1 i\cf4 , \cf3\f3 "

"\cf4\f1 )\par \tab\cf1 One_Actor\cf4 = \cf5 RemoveHTMLTags\cf2 (\cf1 One_Actor\cf4 )\cf2\par \cf4\tab\cf1 One_Actor\cf4 \cf2 =\cf5 StringRefine\cf2 (\cf5 FormatString\cf2 (\cf1 One_Actor\cf4 ,\cf2 "\cf3\f3 WOS"\cf4\f1 ))\cf2\par \cf1\tab\cf5 AddMovieActors\cf1 (One_Actor,\cf2 ""\cf1 )\cf4\par End\par \f0\fs20\par \cf1\par c\cf2 rew is \cf4 String\cf2\par \cf4 c\cf2 rew=\cf5 BetweenStrings\cf2 (HtmlCode, "

CREW", "")\par \cf1\par // Movie Screenwriters\cf2\par \cf1 Writers_Number is \cf4 Int \cf1 = \cf5 StringCounter\cf1 (crew, ">Screenwriter<")\cf2\par \cf10\par \cf1 // 3 Screenwriters max per film\cf2\par \cf4 If\cf1 Writers_Number > 3 \cf4 Then\cf1 Writers_Number = 3\cf2\par \cf4 For\cf1 i = 1 to Writers_Number\cf2\par \cf1\tab One_Writer is \cf4 String\cf1 = \cf5 StringExtraction\cf1 (crew, i, "Screenwriter<")\par \cf2\tab One_\cf1 Writer \cf2 = \cf5 StringRight\cf2 (One_\cf1 Writer \cf2 , 100)\par \cf1\tab One_Writer = \cf5 BetweenStrings\cf1 (One_Writer, "/"">", "\cf2
 \cf1 ")\par \tab\cf5 AddMovieWriters\cf1 (\cf5\f1\fs18 FormatString\cf1 (\cf5\f0\fs20 StringRefine\cf1 (One_Writer)\f1\fs18 ,"\f3 WOS"\f1 )\f0\fs20 )\cf2\par \cf4 End\cf2\par \cf4\par \cf1 // Movie Directors\par \cf2 Directors_Number is \cf4 Int \cf2 = \cf5 StringCounter\cf2 (crew, ">Director<")\par \par \cf1 // 3 Directors max per film\cf2\par \cf4 If\cf2 Directors_Number > 3 \cf4 Then\cf2 Directors_Number = 3\par \cf4 For\cf2 i = 1 to Directors_Number\par \tab One_Director is \cf4 String\cf2 =\cf5 StringExtraction\cf2 (crew, i, "Director<")\par \tab One_Director = \cf5 StringRight\cf2 (One_Director , 100)\par \cf1\tab One_\cf2 Director \cf1 = \cf5 BetweenStrings\cf1 (\cf2 One_Director\cf1 , "/"">", "\cf2  \cf1 ")\par \cf2\tab\cf5 AddMovieDirectors\cf2 (\cf5\f1\fs18 FormatString\cf2 (\cf5\f0\fs20 StringRefine\cf2 (One_Director)\cf4\f1\fs18 ,\cf2 "\cf3\f3 WOS"\cf4\f1 )\cf2\f0\fs20 )\par \cf4 End\cf2\par \cf4\par \cf1 // Movie Composers\cf2\par Composers_Number is \cf4 Int \cf2 = \cf5 StringCounter\cf2 (crew, ">Composer<")\par \par \cf1 // 3 Composers max per film\cf2\par \cf4 If\cf2 Composers_Number > 3 \cf4 Then\cf2 Composers_Number = 3\par \cf4 For\cf2 i = 1 to Composers_Number\par \tab One_Composer is \cf4 String\cf2 = \cf5 StringExtraction\cf2 (crew, i, "Composer<")\par \tab One_Composer = \cf5 StringRight\cf2 (One_Composer , 100)\par \tab One_Composer = \cf5 BetweenStrings\cf2 (One_Composer, \cf1 "/"">", "\cf2  \cf1 ")\cf2\par \tab\cf5 AddMovieComposers\cf2 (\cf5\f1\fs18 FormatString\cf2 (\cf5\f0\fs20 StringRefine\cf2 (One_Composer)\cf4\f1\fs18 ,\cf2 "\cf3\f3 WOS"\cf4\f1 )\cf2\f0\fs20 )\par \cf4 End\cf2\par \cf4\par \cf1\f1\fs18 CreateMovie()\cf4\par \cf0\b\f2\fs20\par \cf4\b0\f1\fs18 Switch \cf8 Language\par \cf4\tab Case \cf3 3\cf4 \cf1 // English\cf7\par \cf4\tab\tab\cf5 UserInformationMessage\cf4 (\cf3\f3 "The movie : "\cf4\f1 + \cf3 MovieTitleValue\cf4 + \cf3\f3 " has been created"\cf4\f1 )\par \tab Case \cf3 5\cf4 \cf1 // Fran\'e7ais\cf7\par \cf4\tab\tab\cf5 UserInformationMessage\cf4 (\cf3\f3 "Le film : "\cf4\f1 + \cf3 MovieTitleValue\cf4 + \cf3\f3 " a \'e9t\'e9 cr\'e9\'e9"\cf4\f1 )\par End\par \cf1\par \cf4\par \cf2\par \cf0\f0\par }