[UPD ITA] mymovies.it

If you made a script you can offer it to the others here, or ask help to improve it. You can also report here bugs & problems with existing scripts.
Post Reply
fulvio53s03
Posts: 764
Joined: 2007-04-28 05:46:43
Location: Italy

[UPD ITA] mymovies.it

Post by fulvio53s03 »

Il sito mymovies.it ha subito nel tempo parecchie modifiche ed il suo standard di pagina non è uniforme.
Spero aver individuato tutte le varianti.
segnalatemi eventuali comportamenti anomali indicandomi il nome del film su cui si verificano.
:)
Mymovies.it site has undergone several changes over time and its page standard is not uniform.
I hope I have identified all the variants.
Report me any anomalous behavior indicating the name of the film on which they occur.

Code: Select all

(***************************************************

Ant Movie Catalog importation script
www.antp.be/software/moviecatalog/

[Infos]
Authors=Fulvio53s03 & seraphico (Original by Claudio Rinaldi). Thanks to MrObama.
Title=MyMovies
Description=Get movie info from MyMovies.it
Site=www.mymovies.it
Language=IT
Version=3.0.2
Requires=4.2.2
Comments=
License=
GetInfo=1
RequiresMovies=1

[Options]
Poster=0|0|1=Download full-res Poster|0=Download tiny Poster

[Parameters]

***************************************************)

program MyMoviesIT;

uses
  Stringutils7552;

const
  UrlBase = 'https://www.mymovies.it';
//  UrlRicerca = '&titolo_orig=&regista=&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';
    Urlricerca = '&titolo_orig=&regista=&attore=&id_genere=-1&nazione=&clausola1=-1&anno_prod=&clausola2=-1&stelle=-1&id_manif=-1&anno_manif=&disponib=-1&ordinamento=0&submit=Inizia+ricerca+%C2%BB';
  QueryBase = UrlBase + '/database/ricerca/avanzata/?titolo=';
  debug_search = false;                                   // debug mode on/off
  folder = 'f:\prova\';                                   // directory where to save files

  ImagePath = UrlBase + '/filmclub/';
  Apice       = #39;
  NoCommento = '(Riceverai le informazioni pochi giorni prima della messa in onda)';  // commenti inutili  "(la recensione più amata dal pubblico)"
  PiuAmata   = '(la recensione più amata dal pubblico)';
  cStartNumRis = 'nel Titolo. Ho trovato '; // Result Number start Marker
  cEndNumRis = ' film.</h3>';               // Result Number end Marker
  cStartId = 'recensione.asp?id=';   // ID start marker
  EndId = '" title="';              // ID end marker
  cStartNewTitle = '<meta property="og:title" content="';
  cEndNewTitle = '"';
  cStartTitle = 'Titolo originale <em>';             // Title start marker
  cEndTitle = '</em>';              // Title end marker
  cStartTranslTitle = '<h1 style="margin-bottom:3px;">';        // Translated title start marker
  cEndTranslTitle = '</h1>';         // Translated title end marker
  cStartImage2 = '<img src="';       // Image start marker
  cEndImage2 = '"';                  // Image end marker
  cStartDirector = 'Un film di <a href="';      // Director start marker
  cEndDirector = '</a>.';                       // Director end marker
  cStartCategory  = '<a title="Film ';   // Catogory start marker
  cEndCategory = '</a>';            // Category first end marker
  cStartCategory2  = '">';   // Catogory start marker
  cEndCategory2 = '</a>';            // Category second end marker
  cStartDuration = 'durata ';        // Duration start marker
  cEndDuration = ' min.';          // Duration end marker
  cStartYear = '<meta property="og:title" content="';              // Year start marker
  cEndYear = '/>';                 // Year end marker
  cStartYear2  = '(';   // year start marker
  cEndYear2 = ')';            // year second end marker
  cStartDesc = '<div id="recensione">';          // Description start marker
  cEndDesc = '<div style="text-align:right;">';  // Description end marker

  cStartCast = 'Con <a href="';              // Actor start marker
  cEndCast   = '<a title="';
  cEndCast2  = 'Titolo originale <em>';      // Actor end marker
//  cStartImage = 'src="https://pad.mymovies.it/filmclub/';     //fs 2018.02.07
  cStartImage = '<meta property="og:image" content="';       //fs 2018.02.07
  cEndImage = '"';
var
  MovieUrl, MovieName, Commento, TranslatedStr, PageStr:  string;
  Startchar, EndChar, NumRisultati, UsePage, Addressnext: String;
  cImage, SaveUrl, SaveField, TempField, DelField : string;
  PositionCategory, PositionDuration: integer;
  Positioncast: integer;
  idx : integer;
 
function MyTrim(Value: string):string;
var
  ExitLoop: Boolean;
  NewField, OldField: String;
  OldLgthValue, NewLgthValue: integer;
begin
    NewField := ' ';
    OldField := #9;
    value := StringReplace(Value, OldField, NewField);
    OldField := #10;
    value := StringReplace(Value, OldField, NewField);
    OldField := #13;
    value := StringReplace(Value, OldField, NewField);
    OldField := '  ';
    value := StringReplace(Value, OldField, NewField);
    Newfield := '&';
    OldField := '&';
    value := StringReplace(Value, OldField, NewField);
    Newfield := 'è';
    OldField := '&egrave;';
    value := StringReplace(Value, OldField, NewField);
    ExitLoop := False;
    OldLgthValue := length(Value);
    HTMLRemoveTags(Value);
    Value := FullTrim(Value);
    OldField := '  ';
    NewField := ' ';
    repeat
      value := StringReplace(Value, OldField, NewField);
      NewLgthValue := length(Value);
    if  OldLgthValue = NewLgthValue then
        ExitLoop := True
    else
        OldLgthValue := NewLgthValue;
    until ExitLoop;

  Result := Value;
end;

//-------------------------
procedure estrae_info;          //2017.10.26 cambio struttura sito: aggiunta pagina intermedia tra la ricerca e le info.
//-------------------------
//2018.04.22fs begin
//2018.04.22fs   MovieUrl := textbetween(PageStr, '<!-- webTrekk Espresso -->', '<!-- /webTrekk Espresso -->');
//2018.04.22fs   HTMLRemoveTags(MovieUrl);
//2018.04.22fs   MovieUrl := textbetween(MovieUrl, (' pageHref = ' + Apice), (Apice + ';'));
//2018.04.22fs   PageStr := getPage(MovieUrl);
//2018.04.22fs    if debug_search then
//2018.04.22fs       DumpPage(folder+'Mymovies_page_second.txt', Pagestr);                // debug
//2018.04.22fs end;

//2018.04.22fs inizio modifiche
var
  pos_dizionario: integer;
begin
  SaveUrl := MovieUrl;
  MovieUrl := textbetween(PageStr, '<!-- webTrekk Espresso -->', '<!-- /webTrekk Espresso -->');
  HTMLRemoveTags(MovieUrl);
  MovieUrl := textbetween(MovieUrl, (' pageHref = ' + Apice), (Apice + ';'));
  pos_dizionario :=  pos('/dizionario/recensione.asp?id=', MovieUrl);
  if  pos_dizionario <> 0 then
    PageStr := getPage(MovieUrl);
  if  pos_dizionario =  0 then
    MovieUrl := SaveUrl;
  if  debug_search then
      DumpPage(folder+'Mymovies_page_second.txt', Pagestr);                // debug
//2018.04.22fs  fine  modifiche
end;

// -----------------------
// ANALYZE MOVIE DATA PAGE
// IN:  none    OUT: set Ant fields
// -----------------------
procedure AnalyzeMoviePage;
var
  pos_dizionario: integer;
begin
  // Get packed title main page
  pos_dizionario :=  pos('/dizionario/recensione.asp?id=', MovieUrl);     //2018.04.22
  if  pos_dizionario <> 0 then                                            //2018.04.22
      MovieUrl := StringReplace(MovieUrl, 'http:', 'https:');             //2018.04.22
  PageStr := getPage(MovieUrl);
  if debug_search then
     DumpPage(folder+'Mymovies_page_found.txt', Pagestr);                // debug
  if pos('<!-- webTrekk Espresso -->', PageStr) > 0 then
     begin
        estrae_info
     end;
  if pos('var_carica_taboola', pageStr) > 0
     then
         nuovo_tipo_pagina
     else
         vecchio_tipo_pagina
  end;
//end;

//----------------------------
procedure nuovo_tipo_pagina;
var
  titolo_originale, Trama_e_critica: string;
  lgth_delimiters: integer;
  init_char, end_char: string;
begin
//  PageStr := UTF8decode(PageStr);               N.B. questo fa saltare l'strazione di trama e commenti/critica
  TempField := TextBetween(PageStr, cStartNewTitle, cEndNewTitle);
  TempField := MyTrim(TempField);
  SetField(fieldTranslatedTitle, TempField);

  // Original Title field
  titolo_originale := TextBetween(PageStr, 'Titolo originale</td>', '</tr>');
  HTMLRemoveTags(titolo_originale);
  SetField(fieldOriginalTitle, titolo_originale);
  if titolo_originale = '' then
    SetField(fieldOriginalTitle, GetField(fieldTranslatedTitle))
    else
    SetField(fieldOriginalTitle, titolo_originale);

  // Director Field
  TempField := TextBetween(PageStr, '<tr><td valign="top">Regia di</td>', '</tr>');
  HTMLRemovetags(tempfield);
  Tempfield := UTF8decode(Tempfield);
  TempField := Fulltrim(Tempfield);

  SetField(fieldDirector, TempField);

  // Actors Field
  TempField := TextBetween(PageStr, '<tr><td valign="top">Attori</td>', '</tr>');
  HTMLRemovetags(tempfield);
  Tempfield := UTF8decode(Tempfield);
  if debug_search then
    Tempfield := Tempfield + CRLF + '(new_form)';
  SetField(fieldActors, TempField);            //attori principali

  // Category Field
  TempField := TextBetween(PageStr, '<tr><td valign="top">Genere</td>', '</tr>');
  HTMLRemovetags(tempfield);
  SetField(fieldCategory, TempField);

  // Duration field
  TempField := TextBetween(PageStr, '<tr><td valign="top">Durata</td>', '</tr>');
  HTMLRemovetags(tempfield);
  tempfield := Textbefore(Tempfield, ' ', '');
  SetField(fieldLength, TempField);

  // Country field
  TempField := PageStr;
  Tempfield := TextBetween(TempField, '<td valign="top">Produzione</td>', '</tr>') + '</tr>';
//  Tempfield := '<tr> href=' + TextBetween(TempField, 'href=', '</tr>');
  Tempfield := '<tr>' + TextBetween(TempField, 'href=', '</tr>');
  HTMLRemovetags(tempfield);
//  TempField := MyTrim(TempField);
  tempField := textafter(Tempfield, '>');
  SetField(fieldCountry, TempField);

//  Year
  TempField := PageStr;
  TempField := Textbetween (tempField, '<td valign="top">Anno</td>', '</tr>');
  HTMLRemovetags(tempfield);
  SetField(fieldYear, TempField);

  // Get film image
  cImage := TextBetween(PageStr, '<amp-img layout="responsive" class="stonda3" width="230" height="330" src="', '"></amp-img>');
  cImage := StringReplace(cImage, 'https', 'http');

  if cImage <> '' then
     GetPicture(cImage);

// Description Field
//2018-02-27   init_char := '<div class="lectios">';
//2018-02-27   end_char  := '<div class="clear10">';
//2018-02-27   Trama_e_critica := init_char + TextBetween(PageStr, init_char, end_char) + end_char;
   init_char := '<p class="highlights mm-margin-auto mm-center mm-margin-t16">';                //2018-02-27
   end_char  := '<div';                                                                         //2018-02-27
   Trama_e_critica := fulltrim(TextBetween(PageStr, init_char, end_char));                      //2018-02-27
   HTMLRemovetags(Trama_e_critica);
   if  trama_e_critica = '' then                                                                    //2018-04-24
      begin                                                                                         //2018-04-24
       init_char := '<div class="sottotitolo_autore mm-letter-spacing-2 mm-center mm-show-xs mm-hide-sm">';                //2018-04-24
       end_char  := '<div class="mm-right mm-margin-r8"">';                                                                         //2018-04-24
       Trama_e_critica := fulltrim(TextBetween(PageStr, init_char, end_char));                      //2018-04-24
       Trama_e_critica := UTF8decode(Trama_e_critica);
       HTMLRemovetags(Trama_e_critica);
       Trama_e_critica := UTF8decode(Trama_e_critica);
      end;
   Trama_e_critica := UTF8decode(Trama_e_critica);
//   Trama_e_critica := fulltrim(TextBetween(PageStr, init_char, end_char));                      //2018-02-27

   if debug_search then
      DumpPage(folder+'Mymovies_trama_e_critica.txt', trama_e_critica);                // debug
//2018.04.20fs   SetField(fieldDescription, Trama_e_critica);
   Trama_e_critica := fulltrim(Trama_e_critica);
   SetField(fieldDescription, Trama_e_critica);                            //2018.04.20fs

// Comments Field
   init_char := 'Recensione di';
   end_char  := '<div class="clear10">';
//   TempField := '<p ' + init_char + textBetween(Trama_e_critica, init_char, end_char) + end_char;
   TempField := fulltrim(TextBetween(PageStr, init_char, end_char));
   TempField := Tempfield + end_char;
   if length(tempfield) = length(end_char) then
      begin
      init_char := '<div class="sottotitolo_autore mm-letter-spacing-2 mm-center mm-show-xs mm-hide-sm">';
      end_char  := '<div class="mm-right mm-margin-r8"">';
      TempField := fulltrim(TextBetween(PageStr, init_char, end_char));
      end;

   Init_char  := '<p class="corpo">';
   end_char   := '</p>';                                              //2018.04.24
   TempField := init_char + TextBetween(Tempfield, init_char, end_char) + end_char;   //fin qui temp_field OK per bush...

   End_char := '<a target="_blank"';
   TempField := init_char + fulltrim(TextBetween(PageStr, init_char, end_char)) + end_char;
   lgth_delimiters :=  (length(init_char) + length(end_char));
   If length(Tempfield) = lgth_delimiters then                                                 //2018.04.25fs
      begin                                                                      //2018.04.25fs
        Init_char := '<p class="corpo">';                                        //2018.04.25fs
        end_char := '</p>';                                                      //2018.04.25fs
        TempField := init_char + fulltrim(TextBetween(PageStr, init_char, end_char)) + end_char;  //2018.04.25fs
      end;                                                                       //2018.04.25fs
   TempField := StringReplace(TempField, 'Il film Shadow è disponibile in streaming. Scopri MYmovieslive', '');
   TempField := StringReplace(TempField, 'Questo film è disponibile in versione digitale, scopri il miglior prezzo: TROVASTREAMING', '');
   HTMLRemovetags(tempfield);
   Tempfield := UTF8decode(Tempfield);
   TempField := Fulltrim(Tempfield);
   SetField(fieldComments, TempField);                               //2018.04.20fs

// Movie URL field
   SetField(fieldURL, MovieUrl);
   SetField(fieldDate, DateToStr(Date));

end;

//----------------------------

  
//----------------------------
procedure vecchio_tipo_pagina;
//----------------------------
var
  pos_func: integer;
begin
  TempField := TextBetween(PageStr, cStartTranslTitle, cEndTranslTitle);
  TempField := MyTrim(TempField);
  SetField(fieldTranslatedTitle, TempField);

  // Original Title field
  SetField(fieldOriginalTitle, TextBetween(PageStr, cStartTitle, cEndTitle));
  if(GetField(fieldOriginalTitle)='')then
    SetField(fieldOriginalTitle, GetField(fieldTranslatedTitle));

  // Director Field
  TempField := TextBetween(PageStr, cStartDirector, cEndDirector) + cEndDirector;
  TempField := TextBetween(TempField, '>' , cEndDirector);
  HTMLRemovetags(tempfield);
  Tempfield := UTF8decode(Tempfield);
  TempField := Fulltrim(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 := '<a href="' + TempField
  else
    TempField := '<a href="' + SaveField;

  DelField  := '<div id="attori_espandi"' + TextBetween(TempField, '<div id="attori_espandi"', '</div>');
  TempField := StringReplace(TempField, DelField, '');
  DelField  := '<div id="attori_comprimi"' + TextBetween(TempField, '<div id="attori_comprimi"', '</div>');
  TempField := StringReplace(TempField, DelField, '');
  TempField := UTF8decode(TempField);
  TempField := MyTrim(TempField);
  if debug_search then
    Tempfield := Tempfield + CRLF + '(old_form)';

  SetField(fieldActors, TempField);

  // Category Field
  TempField := TextBetween(PageStr, cStartCategory, cEndcategory) + cEndcategory;
  TempField := TextBetween(TempField, cStartCategory2, cEndcategory2);
//  TempField := TempField + cEndcategory;
//  TempField := TextBetween(TempField, '">' , cEndcategory);
  SetField(fieldCategory, TempField);

  // Duration field
  TempField := TextBetween(PageStr, '<td valign="top">Durata</td>', '</tr>');
  HTMLRemovetags(tempfield);
  StringReplace(tempfield, ' minuti', '');
  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, '-', ' <strong>');
  TempField  := MyTrim(TempField);
  pos_func   := pos('function(', Tempfield);
  if  pos('Transitional', Tempfield) = 0 then
      if  pos_func = 0 then
          SetField(fieldCountry, TempField);

//  Year
  TempField := PageStr;
  TempField := Textbetween (tempField, cStartYear, cEndYear);
//  TempField := Textbetween (TempField, '(', ')');
  TempField := TextBetween(TempField, cStartYear2, cEndYear2);
  SetField(fieldYear, TempField);

  // Get film image
  cImage := TextBetween(PageStr, cStartImage, cEndImage);
  if cImage = '' then
    cImage := TextBetween(PageStr,cStartImage2, cEndImage2)
  else
  begin
    if GetOption('Poster')=1 then
       cImage := ImagePath + StringReplace(cImage, '/imm.jpg', '/locandina.jpg')
    else
//fs 2018.02.07       cImage := ImagePath + cImage
    cImage := cImage     //fs 2018.02.07
    end;


  if cImage <> '' then
    GetPicture(cImage);

// Description Field
   TempField := TextBetween(PageStr, cStartDesc, cEndDesc) + cEndDesc;
   TempField := MyTrim(TempField);
   TempField := StringReplace(TempField, 'Il film Shadow è disponibile in streaming. Scopri MYmovieslive', '');
   TempField := StringReplace(TempField, 'Questo film è disponibile in versione digitale, scopri il miglior prezzo: TROVASTREAMING', '');
//2018.04.22fs    TempField := fulltrim(Tempfield);
   TempField := FullTrim(UTF8decode(Tempfield));
   SetField(fieldDescription, TempField);

// Movie URL field
   SetField(fieldURL, MovieUrl);
   SetField(fieldDate, DateToStr(Date));
   
// Commento
//   TempField := Textbetween(PageStr, '<p style="padding-right:3px; margin-top:15px;">', '<a href="https://www.mymovies.it/dizionario/critica');
   TempField := Textbetween(PageStr, '">Rassegna stampa</a>', '</td>') + '</td>';
   TempField := Textbetween(TempField, '<p style="padding-right:3px; margin-top:15px;">', '<a href="https://www.mymovies.it/dizionario/critica');
   TempField := MyTrim(TempField);
   SetField(fieldComments, TempField);
end;

procedure CalcLgthToDelete;
begin
  StartChar :=  '<div class="linkblu" style="padding:3px;"';
  EndChar   :=  '<div class="linkblu" style="padding:3px;"';
  Positioncast := Length(startChar) + Length(Textbetween(UsePage, StartChar, EndChar));
  if Positioncast  = 0 then
     begin
     EndChar := '<a href="https://www.mymovies.it/prossimamente/">';
     Positioncast := Length(startChar) + Length(Textbetween(UsePage, StartChar, EndChar));
     end;
end;

// ------------------------------------------------------------------
// FILL PICKTREE CONTROL WITH LINKS & TITLES or RETURN ONE PAGE LINK
// da 35mm.it
// ------------------------------------------------------------------
function PopulatePickTree(OneFilm: boolean): string;
var
  TempIdFilm, TempTitle, campo_ricerca: string;
  TempAuthor, TempYear: string;
  LineToDrop, LineToUse, LineTodelete, LineTxt: string;
  LengthFilm, LgthTitle, LineNr: integer;
  PositionCategory, LgthLineToUse, PositionDuration: integer;
  PageAll, PageLoop, MyMovies_line: string;
  cFilmYear, CYearId: string;
  StartPos, EndPos, ctr_giri: integer;
begin
  ctr_giri := 0;
  if OneFilm then                                                           // per un solo film trovato è OK
    begin
//2018.04.20fs      StartChar := 'https://www.mymovies.it/dizionario/recensione.asp?id=';
//2018.04.20fs      EndChar   := '" title=';
      Startchar := '<div class="linkblu" style="padding:3px;">';       //2018.04.20fs
      Endchar   := '</div>';                                           //2018.04.20fs
      UsePage  := Textbetween(Pagestr, StartChar, EndChar);
      if length(UsePage) > 0 then
        begin
//2018.04.20fs          TempIdFilm := StartChar + Usepage;
          TempIdFilm := Textbetween(UsePage, '<a href="', '"');       //2018.04.20fs
          result := TempIdFilm;
        end
    end
  else
    begin
      PickTreeClear;
      campo_ricerca := getfield(fieldFilePath);
      if  campo_ricerca = '' then
          campo_ricerca := getfield(fieldFormattedTitle);
      PickTreeAdd(NumRisultati + ' risultati ricerca per "' + campo_ricerca + '":', '');                                               // per più pagine di film
      PageLoop := PageStr;
      StartChar := '<a title="Database MYmovies" href="https://www.mymovies.it/film/"><strong>Film</strong></a>';
      EndChar := '<a href="https://www.mymovies.it/prossimamente/">';
//fulvio      EndChar := '<a href="https://www.mymovies.it/database/">Effettua una nuova ricerca</a>';
      UsePage := TextBetween(PageStr, StartChar, EndChar) + EndChar;

//2018.04.21fs  la pagina di ricerca contiene ancora delimiters con http://  invece che  https://
      if  length(UsePage) = length(Endchar) then
          begin
          StartChar := '<a title="Database MYmovies" href="http://www.mymovies.it/film/"><strong>Film</strong></a>';
          EndChar := '<a href="http://www.mymovies.it/prossimamente/">';
          UsePage := TextBetween(PageStr, StartChar, EndChar) + EndChar;
          end;
      if debug_search then
          DumpPage(folder+'Mymovies_UsePage.txt', UsePage);                // debug
//2018.04.26fs      repeat                     // inizio gestione pagina multipla
//2018.04.26fs        LineNr  := Pos('>Pagina successiva', PageStr);
        PageAll := UsePage;
        StartChar :=  '<div class="linkblu" style="padding:3px;"';
        Positioncast := Pos(StartChar, UsePage);
        Delete(UsePage, 1, Positioncast - 1)
        CalcLgthToDelete;

        if debug_search and (ctr_giri = 0)then
            DumpPage(folder+'Mymovies_UsePage.txt', UsePage);                // debug
        repeat
          ctr_giri := ctr_giri + 1;
          CalcLgthToDelete;
          StartChar :=  '<div class="linkblu" style="padding:3px;"';
          EndChar   :=  '<div class="linkverde">';
          LineToUse := StartChar + textbetween(UsePage, StartChar, EndChar) + EndChar;
          MyMovies_line := 'Mymovies_line' + IntToStr(ctr_giri) + '.txt';

          StartChar := '<div class="linkverde">';
          EndChar   := '<div class="linkblu" style="padding:3px;"';
          LineToDrop := textbetween(UsePage, StartChar, EndChar);
          if Length(LineToDrop) = 0 then
             begin
             EndChar := '<a href="https://www.mymovies.it/prossimamente/">';
             LineToDrop := textbetween(UsePage, StartChar, EndChar);
             end;
          LineToDelete := LineToUse + LineToDrop;
          PositionDuration := Length(LineToDelete);
          StartPos := pos(StartChar, UsePage);
//2018.04.21fs          StartChar :=  'https://www.mymovies.it/dizionario/recensione.asp?id=';
          StartChar :=  'http://www.mymovies.it/dizionario/recensione.asp?id=';         //2018.04.21fs
          EndChar := '" title="';
          if StartPos > 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 <b>', '</b>');
              TempAuthor := Textbetween (TempAuthor, '">', '</a>');
              TempAuthor := UTF8decode(TempAuthor);
              TempYear   := Textbetween (UsePage, '<a href="https://www.mymovies.it/film/?anno=', '">');
              TempTitle  := TempTitle + ' (' + TempAuthor + ') ' + TempYear;
              TempTitle  := UTF8decode(Temptitle);
              tempTitle  := Fulltrim(TempTitle);
              PickTreeAdd(TempTitle, TempIdFilm);
              if debug_search then
                 DumpPage(folder + 'Mymovies_line' + IntToStr(ctr_giri) + '.txt', Linetouse);                // debug

              StartChar :=  'https://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
//2018.04.26fs        StartPos := Pos('Ricerca MYmovies', PageLoop);
//2018.04.26fs        Delete(PageLoop, 1, StartPos - 1);
//2018.04.26fs        StartChar := '<a href="?titolo=';
//2018.04.26fs        EndChar := '">Pagina successiva';

//2018.04.26fs        LineTxt := TextBetween(PageLoop, StartChar, EndChar);
//2018.04.26fs        SetField(fieldcomments, AddressNext);
//        Pagestr  := GetPage(Addressnext);                        //errore getpage
//2018.04.26fs        PageLoop := PageStr;
//2018.04.26fs        StartChar := '<a title="Database MYmovies" href="https://www.mymovies.it/film/"><strong>Film</strong></a>';
//2018.04.26fs        EndChar := '<a href="https://www.mymovies.it/prossimamente/">';
//2018.04.26fs        UsePage := TextBetween(PageStr, StartChar, EndChar) + EndChar;
//2018.04.26fs      until (LineNr < 1); // repeat
    end
end;

//
// ---------------------------------
// ANALYZE FIRST SEARCH RESULT PAGE:
// IN:  page Url (string)
// OUT: none
// ---------------------------------
procedure AnalyzeSearchPage(Url: string);
begin
  PageStr := getpage(Url);
  SetField(fieldURL, URL);     //debug
  if debug_search then
     DumpPage(folder+'Mymovies_search_page.txt', Pagestr);                // debug
  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(4,2,2)) and (StringUtils1_Version > 5) then
    begin
      TranslatedStr := StringReplace(GetField(fieldTranslatedTitle), '.', ' ');
      MovieName := StringReplace(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 4.2.1) and StringUtils1 version 6');
end.
antp
Site Admin
Posts: 9651
Joined: 2002-05-30 10:13:07
Location: Brussels
Contact:

Re: [UPD ITA] mymovies.it

Post by antp »

Thanks
otreux
Posts: 194
Joined: 2008-10-22 16:55:46

Re: [UPD ITA] mymovies.it

Post by otreux »

Grazie per l'aggiornamento :)
A me lo script, aggiungendo o aggiornando un film, non mi appare nella lista degli script disponibili. Mi appare solo se vado nel menu - accessori - script, ed è grigio

Thanks for the update :)
To me the script, adding or updating a movie, does not appear in the list of available scripts. It only appears to me if I go into the menu - accessories - script, and it's gray
antp
Site Admin
Posts: 9651
Joined: 2002-05-30 10:13:07
Location: Brussels
Contact:

Re: [UPD ITA] mymovies.it

Post by antp »

How did you update it? Via the "update scripts" script or manually?

The problem can occur if there is an empty line at the top or if you copied it directly in AMC editor (and then it does not read the block at the top as header info)
otreux
Posts: 194
Joined: 2008-10-22 16:55:46

Re: [UPD ITA] mymovies.it

Post by otreux »

avevo fatto copia-incolla. Hai ragione, ho fatto l'aggiornamneto via web e ora funziona perfettamente, grazie :)

I had done copy-paste. You're right, I did the update via the web and now it works perfectly, thanks :)
MEDIEVIL
Posts: 1
Joined: 2018-09-30 10:59:13

Re: [UPD ITA] mymovies.it

Post by MEDIEVIL »

Ciao, sto utilizzando ottimamente questo script, ma ho dei problemi sulla ricerca del film RED quello con BRUCE WILLIS.
Quando faccio la ricerca solo con il titolo RED naturamente mi vengono trovati più di 2000 film.
Ho provato quindi a modificare lo script in modo che chieda anche uno degli attori in modo da restringere i risultati.
Ma c'è qualche problema con il getpage(url) che punta ad una pagina strana. Pare che venga ricercato il film BRUCE WILLIS.
C'è un modo per restringere i risultati della ricerca oltre all'inserimento dell'attore?

Grazie
fulvio53s03
Posts: 764
Joined: 2007-04-28 05:46:43
Location: Italy

Re: [UPD ITA] mymovies.it

Post by fulvio53s03 »

@ MEDIEVIL: dovresti postare lo script che hai modificare, per capire qual'è il problema e come si può aggiungere il campo "attori" alla ricerca.
@ MEDIEVIL: you should post the script you modified, to understand what the problem is and how you can add the "actors" field to the search.
;)
vjncenzo
Posts: 1
Joined: 2019-04-26 09:58:13

Re: [UPD ITA] mymovies.it

Post by vjncenzo »

Ciao,
mi sono accorto che la pagina coi i risultati della ricerca dei film è vuota.
per correggere andrebbe modificata, nella procedura PopulatePickTree, la stringa da ricercare per l'inizio dell'elenco dei titoli (linea 489) per rimuovere la 's' nel protocollo:

Code: Select all

StartChar := '<a title="Database MYmovies" href="https://www.mymovies.it/film/"><strong>Film</strong></a>';
deve diventare

Code: Select all

StartChar := '<a title="Database MYmovies" href="http://www.mymovies.it/film/"><strong>Film</strong></a>';
anche alla linea 550, per la ricerca dell'anno di produzione va tolta la 's', e deve diventare quindi

Code: Select all

TempYear   := Textbetween (UsePage, '<a href="http://www.mymovies.it/film/?anno=', '">');
Visto che ci sono aggiungo anche una miglioria che feci qualche tempo fa per far estrarre anche il consiglio visione. Nella procedura nuovo_tipo_pagina va aggiunto:

Code: Select all

  TempField := TextBetween(PageStr, '<td valign="top">Rating</td><td>Consigli per la visione di bambini e ragazzi: ', '</tr>');
  if TempField <> '' then
    begin
	  HTMLRemovetags(tempfield);
	  Tempfield := UTF8decode(Tempfield);
	  Tempfield := MyTrim(Tempfield);
	  Tempfield := StringReplace(TempField, 'Film per tutti', 'PT');
	  SetField(fieldCertification, TempField);
    end;

Grazie dell'ottimo plugin!

Vjncenzo
fulvio53s03
Posts: 764
Joined: 2007-04-28 05:46:43
Location: Italy

Re: [UPD ITA] mymovies.it

Post by fulvio53s03 »

@Vjncenzo: grazie, fatto.
viewtopic.php?f=12&t=7559
:clapping:
Post Reply