(*************************************************** Ant Movie Catalog importation script www.antp.be/software/moviecatalog/ [Infos] Authors=Fulvio53s03 (Original by Claudio Rinaldi) Title=MyMovies Description=Get movie info from MyMovies.it Site=www.mymovies.it Language=IT Version=1.2.1 Requires=3.5.2 Comments= License= GetInfo=1 [Options] ***************************************************) program MyMoviesIT; uses Stringutils7552; const UrlBase = 'http://www.mymovies.it'; UrlRicerca = '&titolo_orig=®ista=&attore=&id_genere=-1&nazione=&clausola1=-1&anno_prod=&clausola2=-1&stelle=-1&id_manif=-1&anno_manif=&disponib=-1&ordinamento=1&submit=Inizia+ricerca+%BB'; QueryBase = UrlBase + '/database/ricerca/avanzata/?titolo='; QueryFilm = UrlBase + '/dizionario/recensione.asp?id='; ImagePath = UrlBase + '/filmclub/'; NoCommento = '(Riceverai le informazioni pochi giorni prima della messa in onda)'; // commenti inutili "(la recensione pių amata dal pubblico)" Riceverai = '(Riceverai le informazioni pochi giorni prima della messa in onda)'; PiuAmata = '(la recensione pių amata dal pubblico)'; cStartNumRis = 'nel Titolo. Ho trovato '; // Result Number start Marker cEndNumRis = ' film.'; // Result Number end Marker cStartId = 'recensione.asp?id='; // ID start marker cEndId = '" title="'; // ID end marker cStartTitle = 'Titolo originale '; // Title start marker cEndTitle = ''; // Title end marker cStartTranslTitle = '

'; // Translated title start marker cEndTranslTitle = '

'; // Translated title end marker cStartImage2 = '' , cEndDirector); HTMLRemovetags(tempfield); SetField(fieldDirector, TempField); // Actors Field TempField := CstartCast + TextBetween(PageStr, cStartCast, cEndCast); // da 'con:' a Titolo Positioncast := pos(cStartCast, PageStr) + length(TempField); SaveField := TempField; TempField := TextBetween(PageStr, cStartCast, cEndCast2); // da 'con:' a Titolo Originale if length(tempField) > 0 then TempField := ''); TempField := StringReplace(TempField, DelField, ''); DelField := '
'); TempField := StringReplace(TempField, DelField, ''); TempField := MyTrim(TempField); SetField(fieldActors, TempField); // Category Field TempField := TextBetween(PageStr, cStartCategory, cEndcategory); PositionCategory := pos(cStartCategory, PageStr) + length(TempField); // TempField := TempField + cEndcategory; // TempField := TextBetween(TempField, '">' , cEndcategory); SetField(fieldCategory, TempField); // Duration field TempField := TextBetween(PageStr, cStartDuration, cEndDuration); PositionDuration := pos(cStartDuration, PageStr) + length(TempField); SetField(fieldLength, TempField); // Country field TempField := PageStr; if PositionDuration > 0 then Delete(TempField, 1, PositionDuration - 1) else if Positioncast > 0 then Delete(TempField, 1, Positioncast - 1) else if PositionCategory > 0 then Delete(TempField, 1, PositionCategory - 1); Tempfield := TextBetween(TempField, '-', ' '); TempField := MyTrim(TempField); SetField(fieldCountry, TempField); // Year TempField := PageStr; TempField := Textbetween (tempField, cStartYear, cEndYear); TempField := Textbetween (TempField, '(', ')'); SetField(fieldYear, TempField); // Get film image cImage := TextBetween(PageStr, cStartImage, cEndImage); if cImage = '' then cImage := TextBetween(PageStr,cStartImage2, cEndImage2) else cImage := ImagePath + cImage; if cImage <> '' then GetPicture(cImage); // Description Field TempField := TextBetween(PageStr, cStartDesc, cEndDesc) + cEndDesc; TempField := MyTrim(TempField); SetField(fieldDescription, TempField); // Movie URL field SetField(fieldURL, MovieUrl); SetField(fieldDate, DateToStr(Date)); // Commento // TempField := Textbetween(PageStr, '

', 'Rassegna stampa', '') + ''; TempField := Textbetween(TempField, '

', ' 0 then begin TempIdFilm := StartChar + Usepage; result := TempIdFilm; end end else begin PickTreeClear; // per pių pagine di film PageLoop := PageStr; StartChar := 'Film'; EndChar := ''; UsePage := TextBetween(PageStr, StartChar, EndChar) + EndChar; repeat // inizio gestione pagina multipla LineNr := Pos('>Pagina successiva', PageStr); PageAll := UsePage; StartChar := '

0 then begin TempIdFilm := StartChar + TextBetween(UsePage, Startchar, EndChar); LengthFilm := length(StartChar) + length(TempIdFilm); Delete(UsePage, 1, LengthFilm); StartChar := 'title="'; EndChar := '">'; TempTitle := TextBetween(UsePage, Startchar, EndChar); LgthTitle := Length(TempTitle) + length(StartChar) + length(EndChar); TempTitle := FullTrim(TempTitle); LgthTitle := length(StartChar) + LgthTitle + length(EndChar); TempAuthor := Textbetween (UsePage, 'Un film di ', ''); TempAuthor := Textbetween (TempAuthor, '">', ''); TempYear := Textbetween (UsePage, ''); TempTitle := TempTitle + ' (' + TempAuthor + ') ' + TempYear; PickTreeAdd(TempTitle, TempIdFilm); StartChar := 'http://www.mymovies.it/dizionario/recensione.asp?id='; EndChar := '" title="'; StartPos := pos(StartChar, UsePage); Delete(PageAll, 1, Positioncast - 1); UsePage := PageAll; end; until(Positioncast < 100); result := ''; // Controlla se ci sono altre pagine di risultati StartPos := Pos('Ricerca MYmovies', PageLoop); Delete(PageLoop, 1, StartPos - 1); StartChar := 'Pagina successiva'; LineTxt := StartChar + TextBetween(PageLoop, StartChar, EndChar) + EndChar; repeat if Length(LineTxt) > 1 then begin AddressNext := QueryBase + LineTxt; LineTxt := LineTxt + EndChar; end LineTxt := TextBetween(LineTxt, StartChar, EndChar); until length(LineTxt) < length(EndChar); SetField(fieldcomments, AddressNext); Pagestr := GetPage(Addressnext); PageLoop := PageStr; StartChar := 'Film'; EndChar := ''; UsePage := TextBetween(PageStr, StartChar, EndChar) + EndChar; until (LineNr < 1); // repeat end end; // // --------------------------------- // ANALYZE FIRST SEARCH RESULT PAGE: // IN: page Url (string) // OUT: none // --------------------------------- procedure AnalyzeSearchPage(Url: string); var NumRisultati : string; begin PageStr := getpage(Url); // SetField(fieldURL, URL); NumRisultati := Textbetween(PageStr, cStartNumRis, cEndNumRis); if ( (NumRisultati = '0') or (NumRisultati = '')) then begin ShowMessage('Title not found / Nessun film trovato.'); SetField(fieldURL, MovieUrl); exit; end if NumRisultati = '1' then MovieUrl := PopulatePickTree(true) else begin PopulatePickTree(false); if not PickTreeExec(MovieUrl) then // ..select one exit; end; AnalyzeMoviePage; end; begin if (CheckVersion(3,5,1)) and (StringUtils1_Version > 5) then begin TranslatedStr := GetField(fieldTranslatedTitle); MovieName := GetField(fieldOriginalTitle); if (TranslatedStr <> '') then MovieName := TranslatedStr; if(Input('MyMovies.It', 'Enter the title of the movie', MovieName)) then begin MovieUrl := QueryBase + StringReplace(MovieName,' ','+') + UrlRicerca; AnalyzeSearchPage(MovieUrl); end; end else ShowMessage('This script requires a newer version of Ant Movie Catalog (at least the version 3.5.1) and StringUtils1 version 6'); end.