(*************************************************** Ant Movie Catalog importation script www.antp.be/software/moviecatalog/ [Infos] Authors=MrObama (2018) Title=TrovaCinema Repubblica Description=Get movie info from TrovaCinema Repubblica Site=http://trovacinema.repubblica.it Language=IT Version=1.0.0 - 17.02.2018 Requires=4.2.1 Comments=**First release** License=* The source code of the script can be used in |* another program only if full credits to |* script author and a link to Ant Movie Catalog |* website are given in the About box or in |* the documentation of the program | GetInfo=1 RequiresMovies=1 [Options] [Parameters] ***************************************************) program TrovaCinemaRepubblicaIt; uses Stringutils7552; var MovieNameInput: string; const PATHLOG = 'c:\ProgramData\Ant Movie Catalog\Log\TrovaCinema\'; // -------------------------------------------------- // Analizza la pagina e ricava i dati procedure AnalyzeFilmPage(htmlPage: string); var json, value: string; begin // Titoli json := TextBetween(htmlPage, ''); value := UTF8Decode(TextBetween(json, '"name": "', '"')); if value <> '' then SetField(fieldTranslatedTitle, value); if value <> '' then SetField(fieldOriginalTitle, value); value := TextBetween(json, '"url": "', '"'); if value <> '' then SetField(fieldURL, value); value := TextBetween(json, '"director"', '}'); value := UTF8Decode(TextBetween(value, '"name": "', '"')); if value <> '' then SetField(fieldDirector, value); value := TextBetween(json, '"image"', '}'); value := TextBetween(value, '"url": "', '"'); GetPicture(value); value := UTF8Decode(RemoveHTML(FullTrim(TextBetween(htmlPage, 'Con', '')))); if value <> '' then SetField(fieldActors, value); value := RemoveHTML(trim('<' + TextBetween(htmlPage, 'Anno: <', '<'))); if value <> '' then SetField(fieldYear, value); value := UTF8Decode(FullTrim(RemoveHTML(TextBetween(htmlPage, '
', '
')))); if value <> '' then SetField(fieldDescription, value); value := UTF8Decode(trim(TextBetween(htmlPage, 'Nazione:', ''))); if value <> '' then SetField(fieldCountry, value); value := trim(TextBetween(htmlPage, 'Durata: ', ' ')); if value <> '' then SetField(fieldLength, value); value := TextBetween(htmlPage, '
  • Titolo originale', '/li>'); if value <> '' then begin value := UTF8Decode(trim(TextBetween(value, '>:', '<'))); if value <> '' then SetField(fieldOriginalTitle, value); end; value := UTF8Decode(trim(TextBetween(htmlPage, 'Produzione:', '
  • '))); if value <> '' then SetField(fieldProducer, value); value := UTF8Decode(RemoveHTML(trim(TextBetween(htmlPage, 'Genere:', '')))); if value <> '' then SetField(fieldCategory, value); end; // Analizza il contenuto della pagina con i risultati di ricerca procedure AnalyzeResultPage(MovieName: string); var strPage, strHtmlMovie, MovieAddr, MovieTitle : string; TagPos: Integer; begin // Riceve la pagina MovieAddr := 'http://trovacinema.repubblica.it/cerca/archivio/?dove=film&cosa='+ UrlEncode(MovieName); strPage := GetPage(MovieAddr); TagPos:= Pos('Cerca su TrovaCinema', strPage); if TagPos > 0 then begin ShowMessage('Film non trovato !'); exit; end; // Controllare che ci siano film o se siamo stati rediretti sulla pagina dell'unico film trovato TagPos:= Pos('Risultato ricerca', strPage); if (TagPos < 1) then AnalyzeFilmPage(strPage) // Ha trovato un unico film e sono già nella pagina di quel film else // Lista di film begin PickTreeClear; PickTreeAdd('Risultati ricerca per "' + MovieName + '":', ''); strPage := TextBetween(strPage, 'Risultato ricerca', '') + ''; TagPos := Pos('
    ', strPage); while TagPos > 0 do begin strHtmlMovie := TextBetween(strPage, 'href=', '
    '); strPage := TextBetween(strPage, '
    ', '') + ''; MovieAddr := TextBetween(strHtmlMovie, '"', '"'); MovieTitle := trim(TextBetween(strHtmlMovie, '
    ', '
    ')); // Add to listbox PickTreeAdd(MovieTitle, MovieAddr); // Restart the process TagPos := Pos('
    ', strPage); end; // Visualizza la lista e fa scegliere if (PickTreeExec(MovieAddr)) then begin strPage := GetPage(MovieAddr); AnalyzeFilmPage(strPage); end; end; end; // -------------------- main begin if (CheckVersion(4,2,1)) and (StringUtils1_Version > 5) then begin MovieNameInput := GetMovieName(); Input('TrovaCinema Import', 'Titolo del film:', MovieNameInput); if MovieNameInput <> '' then AnalyzeResultPage(MovieNameInput); end else ShowMessage('This script requires a newer version of Ant Movie Catalog (at least the version 4.2.1) and StringUtils1 version 6'); end.