{\rtf1\ansi\ansicpg1252\deff0\deflang1036{\fonttbl{\f0\fswiss\fprq2\fcharset0 Courier New;}{\f1\fswiss\fprq2\fcharset0 System;}{\f2\fswiss\fprq2\fcharset0 MS Shell Dlg;}{\f3\fmodern\fprq1\fcharset0 Courier New;}} {\colortbl ;\red0\green128\blue0;\red128\green128\blue128;\red128\green0\blue128;\red0\green0\blue0;\red0\green0\blue255;\red255\green102\blue0;\red0\green192\blue192;\red102\green102\blue102;\red0\green128\blue128;} {\*\generator Msftedit 5.41.15.1507;}\viewkind4\uc1\pard\cf1\f0\fs18 // DESCRIPTION IMDb Interface V3.1\cf2\par \cf1 // DATALANGUAGE US\cf2\par \cf1 // AUTHOR MVS\cf2\par \cf0\b\f1\fs20\par \cf3\b0\f0\fs18 MovieDatabaseValue\cf4 = \cf3\f2 "IMDb"\par \cf0\b\f1\fs20\par \cf1\b0\f0\fs18 // DEBUG : Verify URL (must be deactivate in the final version of the script)\cf2\par \cf1 // ShellExecute("http://www.imdb.com/find?q=" + TitleToSearch)\cf2\par \cf0\b\f1\fs20\par \cf1\b0\f0\fs18 // Extract the html code of the Web page\cf2\par \cf1 HtmlCode\cf4 is String = \cf5 GetPage\cf4 (\cf3\f2 "http://www.imdb.com/find?q="\cf4\f0 , \cf6 TitleToSearch\cf4 , \cf3\f2 ""\cf4\f0 )\par If \cf1 HtmlCode\cf4 = \cf3\f2 ""\cf4\f0 Then\par \tab Switch \cf7 Language\par \cf4\tab\tab Case \cf3 3\cf4 \cf1 // English\cf2\par \cf4\tab\tab\tab\cf5 UserErrorMessage\cf4 (\cf3\f2 "This page has not been found"\cf4\f0 )\par \tab\tab Case \cf3 5\cf4 \cf1 // Fran\'e7ais\cf2\par \cf4\tab\tab\tab\cf5 UserErrorMessage\cf4 (\cf3\f2 "Cette page n'a pas \'e9t\'e9 trouv\'e9e"\cf4\f0 )\par \tab End\par \tab Return\par End\par \cf0\b\f1\fs20\par \cf1\b0\f0\fs18 // Compute the movies number in the HTML code\cf2\par \cf1 // (a double quotes in a String must be doubled)\cf2\par \cf1 Movies_Delimiter\cf4 is String = \cf3\f2 ""\cf4\f0 )\par \tab\cf1 Movie_Title\cf4 = \cf5 BetweenStrings\cf4 (\cf1 Movie_Title\cf4 , \cf3\f2 """>"\cf4\f0 , \cf3\f2 "<"\cf4\f0 )\par \tab\cf1 Movie_Title\cf4 = \cf5 StringRefine\cf4 (\cf1 Movie_Title\cf4 )\par \tab\cf1 Movie_URL\cf4 = \cf3\f2 "http://www.imdb.com/title/tt"\cf4\f0 + \cf1 Movie_ID\cf4 + \cf3\f2 "/combined"\par \cf4\f0\tab\cf1 // Add the ID, the Title and the URL in the Movies List For choice\cf2\par \cf4\tab\cf5 AddMovieToList\cf4 (\cf1 i\cf4 , \cf1 Movie_ID\cf4 , \cf1 Movie_Title\cf4 , \cf1 Movie_URL\cf4 )\par \tab\cf1 // DEBUG : Verify ID, Title and URL (must be deactivate in the final version of the script)\cf2\par \cf4\tab\cf1 // Trace(Movie_ID, Movie_Title, Movie_URL)\cf2\par \cf4 End\par \cf0\b\f1\fs20\par \cf1\b0\f0\fs18 // Open the list of the movies\cf2\par \cf5 OpenMoviesList\cf4 ()\par \cf0\b\f1\fs20\par \cf1\b0\f0\fs18 // The movies list returns the ID, the Title and the URL (\cf3 MovieIDValue\cf1 , \cf3 MovieTitleValue\cf1 , \cf3 MovieURLValue\cf1 )\cf2\par \cf1 // of the movie choosen by the user\cf2\par \cf4 If \cf3 MovieIDValue\cf4 = \cf3\f2 ""\cf4\f0 Then\par \tab Switch \cf7 Language\par \cf4\tab\tab Case \cf3 3\cf4 \cf1 // English\cf2\par \cf4\tab\tab\tab\cf5 UserErrorMessage\cf4 (\cf3\f2 "This film has not been found"\cf4\f0 )\par \tab\tab Case \cf3 5\cf4 \cf1 // Fran\'e7ais\cf2\par \cf4\tab\tab\tab\cf5 UserErrorMessage\cf4 (\cf3\f2 "Ce film n'a \'e9t\'e9 trouv\'e9"\cf4\f0 )\par \tab End\par \tab Return\par End\par \cf0\b\f1\fs20\par \cf1\b0\f0\fs18 // DEBUG : Verify URL (must be deactivate in the final version of the script)\cf2\par \cf1 // ShellExecute("http://www.imdb.com/title/tt" + Movie_ID_User + "/combined")\cf2\par \cf0\b\f1\fs20\par \cf1\b0\f0\fs18 // Extract the html code of the movie\cf2\par \cf1 HtmlCode\cf4 = \cf5 GetMovie\cf4 (\cf3\f2 "http://www.imdb.com/title/tt"\cf4\f0 , \cf3 MovieIDValue\cf4 , \cf3\f2 "/combined"\cf4\f0 )\par If \cf1 HtmlCode\cf4 = \cf3\f2 ""\cf4\f0 Then\par \tab Switch \cf7 Language\par \cf4\tab\tab Case \cf3 3\cf4 \cf1 // English\cf2\par \cf4\tab\tab\tab\cf5 UserErrorMessage\cf4 (\cf3\f2 "This page has not been found"\cf4\f0 )\par \tab\tab Case \cf3 5\cf4 \cf1 // Fran\'e7ais\cf2\par \cf4\tab\tab\tab\cf5 UserErrorMessage\cf4 (\cf3\f2 "Cette page n'a \'e9t\'e9 trouv\'e9e"\cf4\f0 )\par \tab End\par \tab Return\par End\par \cf0\b\f1\fs20\par \cf1\b0\f0\fs18 // Movie Year\cf2\par \cf3 MovieYearValue\cf4 =\cf5 BetweenStrings\cf4 (\cf1 HtmlCode\cf4 , \cf3\f2 ""\cf4\f0 +\cf3 MovieTitleValue\cf4 +\cf3\f2 " ("\cf4\f0 , \cf3\f2 ")"\cf4\f0 )\par \cf0\b\f1\fs20\par \cf1\b0\f0\fs18 // Movie Duration\cf2\par \cf3 MovieDurationValue\cf4 =\cf5 FormatString\cf4 (\cf5 RemoveHTMLTags\cf8 (\cf5 BetweenStrings\cf4 (\cf1 HtmlCode\cf4 , \cf3\f2 "Runtime:"\cf4\f0 , \cf3\f2 " min"\cf4\f0 )), \cf3\f2 "WOS"\cf4\f0 )\par \cf0\b\f1\fs20\par \cf1\b0\f0\fs18 // Movie Family\cf2\par \cf3 MovieFamilyValue\cf4 = \cf5 BetweenStrings\cf4 (\cf1 HtmlCode\cf4 , \cf3\f2 "Genre:"\cf4\f0 , \cf3\f2 ""\cf4\f0 )\par \cf3 MovieFamilyValue\cf4 = \cf5 BetweenStrings\cf4 (\cf1 HtmlCode\cf4 , \cf3\f2 ""\cf4\f0 )\par \cf0\b\f1\fs20\par \cf1\b0\f0\fs18 // Movie Country\cf2\par \cf3 MovieCountryValue\cf4 =\cf5 BetweenStrings\cf4 (\cf1 HtmlCode\cf4 , \cf3\f2 ""\cf4\f0 )\par \cf0\b\f1\fs20\par \cf1\b0\f0\fs18 // Movie Color or BW\cf2\par \cf3 MovieColorBWValue\cf4 =\cf5 BetweenStrings\cf4 (\cf1 HtmlCode\cf4 , \cf3\f2 "color-info="\cf4\f0 , \cf3\f2 ""\cf4\f0 )\par \cf3 MovieColorBWValue\cf4 =\cf5 StringExtraction\cf4 (\cf3 MovieColorBWValue\cf4 ,\cf3 2\cf4 ,\cf3\f2 """>"\cf4\f0 )\par \cf0\b\f1\fs20\par \cf1\b0\f0\fs18 // Movie Summary\cf2\par \cf3 MovieSummaryValue\cf4 = \cf5 FormatString\cf4 (\cf5 StringRefine\cf4 (\cf5 RemoveHTMLTags\cf8 (\cf5 BetweenStrings\cf4 (\cf1 HtmlCode\cf4 , \cf3\f2 "Plot Outline:"\cf4\f0 , \cf3\f2 ""\cf4\f0 )\par \cf1 Directors_Number\cf4 is Int = \cf5 StringCounter\cf4 (\cf1 Directors\cf4 , \cf3\f2 " \cf3 3\cf4 Then \cf1 Directors_Number\cf4 = \cf3 3\par \cf4 For \cf1 i\cf4 = \cf3 2\cf4 TO \cf1 Directors_Number\cf4 + \cf3 1\par \cf4\tab\cf1 One_Director\cf4 is String = \cf5 StringExtraction\cf4 (\cf1 Directors\cf4 , \cf1 i\cf4 , \cf3\f2 ""\cf4\f0 , \cf3\f2 ""\cf4\f0 )\par \tab\cf5 AddMovieDirectors\cf4 (\cf5 StringRefine\cf4 (\cf1 One_Director\cf4 ))\par End\par \cf0\b\f1\fs20\par \cf1\b0\f0\fs18 // Movie Writers\cf2\par \cf1 Writers\cf4 is String\par \cf1 Writers\cf4 =\cf5 BetweenStrings\cf4 (\cf1 HtmlCode\cf4 , \cf3\f2 "/Glossary/W#writer"\cf4\f0 , \cf3\f2 ""\cf4\f0 )\par \cf1 Writers_Number\cf4 is Int = \cf5 StringCounter\cf4 (\cf1 Writers\cf4 , \cf3\f2 " \cf3 3\cf4 Then \cf1 Writers_Number\cf4 = \cf3 3\par \cf4 For \cf1 i\cf4 = \cf3 2\cf4 TO \cf1 Writers_Number\cf4 + \cf3 1\par \cf4\tab\cf1 One_Writer\cf4 is String = \cf5 StringExtraction\cf4 (\cf1 Writers\cf4 , \cf1 i\cf4 , \cf3\f2 ""\cf4\f0 , \cf3\f2 ""\cf4\f0 )\par \tab\cf5 AddMovieWriters\cf4 (\cf5 StringRefine\cf4 (\cf1 One_Writer\cf4 ))\par End\par \cf0\b\f1\fs20\par \cf1\b0\f0\fs18 // Movie Composers\cf2\par \cf1 Composers\cf4 is String\par \cf1 Composers\cf4 =\cf5 BetweenStrings\cf4 (\cf1 HtmlCode\cf4 , \cf3\f2 "\cf8 /Glossary/C#composer\cf3 "\cf4\f0 , \cf3\f2 ""\cf4\f0 )\par \cf1 Composers_Number\cf4 is Int = \cf5 StringCounter\cf4 (\cf1 Composers\cf4 , \cf3\f2 " \cf3 3\cf4 Then \cf1 Composers_Number\cf4 = \cf3 3\par \cf4 For \cf1 i\cf4 = \cf3 2\cf4 TO \cf1 Composers_Number\cf4 + \cf3 1\par \cf4\tab\cf1 One_Composer\cf4 is String = \cf5 StringExtraction\cf4 (\cf1 Composers\cf4 , \cf1 i\cf4 , \cf3\f2 ""\cf4\f0 , \cf3\f2 ""\cf4\f0 )\par \tab\cf5 AddMovieComposers\cf4 (\cf5 StringRefine\cf4 (\cf1 One_Composer\cf4 ))\par End\par \cf0\b\f1\fs20\par \cf1\b0\f0\fs18 // Movie Actors with Casting\cf2\par \cf1 Actors\cf4 is String\par \cf1 Actors\cf4 =\cf5 BetweenStrings\cf4 (\cf1 HtmlCode\cf4 , "\cf8 "\cf4 , \cf3\f2 "
"\cf4\f0 )\par \cf1 Actors_Number\cf4 is Int = \cf5 StringCounter\cf4 (\cf1 Actors\cf4 , \cf3\f2 " \cf8 2\cf3 5\cf4 Then \cf1 Actors_Number\cf4 = \cf8 25\cf3\par \cf4 For \cf1 i\cf4 = \cf3 2\cf4 TO \cf1 Actors_Number\cf4 + \cf3 1\par \cf4\tab\cf1 One_Actor\cf4 is String = \cf5 StringExtraction\cf4 (\cf1 Actors\cf4 , \cf1 i\cf4 , \cf3\f2 ""\cf4\f0 , \cf3\f2 ""\cf4\f0 )\par \tab\cf1 One_Role\cf4 is String = \cf5 BetweenStrings\cf4 (\cf1 One_Actor\cf4 , \cf3\f2 ""\cf4\f0 , \cf3\f2 ""\cf4\f0 )\par \tab If \cf1 One_Role\cf4 = Charact(\cf3 4\cf4 ) Then\par \tab\tab\cf1 One_Role\cf4 = \cf5 BetweenStrings\cf4 (\cf1 One_Actor\cf4 , \cf3\f2 ""\cf4\f0 , \cf3\f2 ""\cf4\f0 )\par \tab End\par \tab\cf5 AddMovieActors\cf4 (\cf5 StringRefine\cf4 (\cf1 One_Actor_Name\cf4 ), \cf5 StringRefine\cf4 (\cf1 One_Role\cf4 ))\par End\par \cf0\b\f1\fs20\par \cf1\b0\f0\fs18 // Movie Image\cf2\par \cf3 MoviePictureValue\cf4 = \cf5 BetweenStrings\cf4 (\cf1 HtmlCode\cf4 , \cf3\f2 """cover"" src="""\cf4\f0 , \cf3\f2 """ "\cf4\f0 )\par \cf9 AddElementToGallery\cf4 (\cf3 1\cf4 , \cf3\f2 "PICTURE"\cf4\f0 , \cf3 MoviePictureValue\cf4 )\par \cf0\b\f1\fs20\par \cf9\b0\f0\fs18 CreateMovie\cf4 ()\par \cf0\b\f1\fs20\par \cf4\b0\f0\fs18 Switch \cf7 Language\par \cf4\tab Case \cf3 3\cf4 \cf1 // English\cf2\par \cf4\tab\tab\cf5 UserInformationMessage\cf4 (\cf3\f2 "The movie : "\cf4\f0 + \cf3 MovieTitleValue\cf4 + \cf3\f2 " has been created"\cf4\f0 )\par \tab Case \cf3 5\cf4 \cf1 // Fran\'e7ais\cf2\par \cf4\tab\tab\cf5 UserInformationMessage\cf4 (\cf3\f2 "Le film : "\cf4\f0 + \cf3 MovieTitleValue\cf4 + \cf3\f2 " a \'e9t\'e9 cr\'e9\'e9"\cf4\f0 )\par End\par \cf1 // *********************** SCRIPT BOTTOM ***************************************\cf0\b\f1\fs20\par \cf1\b0\f3\par }