[UPD ITA] Filmtv.it aggiornato

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.
fulvio53s03
Posts: 745
Joined: 2007-04-28 05:46:43
Location: Italy

[UPD ITA] Filmtv.it aggiornato

Post by fulvio53s03 »

piccoli aggiornamenti a Paese e genere.
Little updates to Country and Category.
:)

Code: Select all

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

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

[Infos]
Authors=Fulvio53s03 (based on Fiezul, PIvello, Valerino & others works).
Title=FilmTV
Description=Get movie info from Film TV
Site=www.Film.TV.it
Language=IT
Version=3.4.2    29.8.2017
Requires=4.2.0
Comments=
License=
GetInfo=1
RequiresMovies=1

[Options]

[Parameters]

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

program FilmTVIt;
uses
  StringUtils7552;   // Script needs external unit StringUtils7552.pas in scripts folder !
const
  //Query constants
  UrlBase = 'http://www.film.tv.it';
  QueryBase = UrlBase + '/cerca/?q=';
  QueryFilm = UrlBase + '';

  //Search page constants
  debug_search = false;
  folder = 'f:\';
  Apice       = #39;
  cStartFilmUrl = '<a class="pic" href="'; // ID start marker   //fs2014.04.21
  cEndFilmUrl = '">';                       // ID end marker  //fs2014.04.21
  cStartTitle = '<img alt="';                      // Title start marker  //fs2014.04.21
  cEndTitle = '" src="';                     // Title end marker  //fs2014.04.21
  //Film page constants
  cStartTranslTitle = '<div class="wrap-head">';                  // Translated title start marker
  cEndTranslTitle = '<div class=';                   // Translated title end marker
  cStartOrigTitle = '[<i>';     // Original title start marker
  cEndOrigTitle = '</i>';                   // Original title end marker
  cStartImgLink_ext = '<figure class="locandina">';               // Image start marker
  cStartImgLink_int = '<img src="';               // Image start marker
  cEndImgLink_int = '"';   // Image end marker
  cEndImgLink_ext = '</figure>';   // Image end marker
  cStartListItem = ', ';
  cEndCountry = '<a href="/film/anno';
  cEndListItem = ', ';                           // Generic field marker
  cStartCategory = '/">';                        // Category start marker
  cEndCategory = '</a>';                         // Single Director end marker
  cEndDirectors = '</p>';                        // Directors end marker
  cStartDirector = 'Regia di';                   // Single Director start marker
  cEndDirector = '</p>';                         // Single Director end marker
  cStartCast = 'Con</span>';                     // Cast start marker
  cEndCast = '<strong>';                         // Cast end marker
  cStartActor = '">';                            // Actor start marker
  cEndActor = '</a>';                            // Actor end marker
  cEndGeneric2 = '</td>';                        // Generic end marker 2
  cStartDesc = '<h2>Trama</h2>';                 // Description start marker  //FS2012-11-11
  cEndDesc = '</p>';                             // Description end marker
  cStartComm = '<blockquote>';                   //fs2013-02-11
  cEndComm = '</blockquote>';                    // Comment end marker
  cStartURL='<li id="sel"><a href="/';
  cEndURL='" title="scheda"';
  InitYear = '<h2>';             //fs2014.04.22
//  EndYear = '</h2>';            //fs2014.04.22
  EndYear = ', con ';            //fs2014.06.03
var
  searchUrl, MovieUrl, MovieName, OriginalStr, TranslatedStr, File_name, PageStr:  string;
  MoviesFound: integer;

// --------------------------------non più usato post versione 3.3.2 per velocizzare ricerca ------------------
// PAGE PACKING (remove extra spaces, tabs & CR) by Pivello
// IN:  page Url     (string)
// OUT: compact page (string)
// --------------------------------------------------
function RemoveextraChars(Url: string): string;
var
  Page: TStringList;
  TmpPageStr: string;
  Temp: string;
  PackedPage: string;
  CharPos: Integer;
  n: Integer;
begin
  Page := TStringList.Create;
  TmpPageStr := '';

  Page.Text := GetPage(Url);
  for n := 0 to Page.Count - 1 do
    PackedPage := PackedPage + ' ' + Page.GetString(n);
  repeat
    CharPos := pos('  ', PackedPage);
    if CharPos = 0 then
      CharPos := pos(#9, PackedPage);
    if CharPos <> 0 then
      begin
        Temp := copy(PackedPage, 1, CharPos - 1);
        Delete(PackedPage, 1, CharPos);
        PackedPage := Temp + PackedPage;
      end;
  until((pos('  ', PackedPage) = 0) and (pos(#9, PackedPage) = 0));
  result := PackedPage;
  Page.Free;

end;

// -----------------------
// ANALYZE MOVIE DATA PAGE
// IN:  none
// OUT: set Ant fields
// -----------------------
procedure SetMovieFields (htmlStr: string);
var
  i, h, m: integer;
  CharPos, lungo, posbar: integer;
  Duration, Description, Cast, TempStr, TempImg, hh, mm,temp: string;
  tempDirector, director: string;
  PosParAperta, PosParChiusa: integer;
  imageLink: string;
  sep1, sep2: string;
  SaveHtmlstr, tempvar : string;
  dati_generali, Title_orig, Paese, Anno, Categoria, durata : string;
begin
  SetField(fieldDate, DateToStr(Date));
  // General movie description fields
  anno := '';
  TranslatedStr := TextBetween(htmlStr, cStartTranslTitle, cEndTranslTitle);
  TranslatedStr := TextBetween(TranslatedStr, '<h1>', '</h1>');
  if length(Translatedstr) < 1 then
    begin
    TranslatedStr := TextBetween(htmlStr, cStartTranslTitle, cEndTranslTitle);
    TranslatedStr := TextBetween(TranslatedStr, '<h1 >', '</h1>');
    end;
  SetField(fieldTranslatedTitle, AnsiMixedCase(AnsiLowerCase(TranslatedStr), ' '));    //Titolo Tradotto

//Dati Generali (tit.orig, paese, anno, genere, durata ecc.)
//  Dati_generali := TextBetween(htmlStr, '<div class="wrap-head-content cf"', '<div class="visione cf">');
  Dati_generali := FullTrim(TextBetween(htmlStr, '<ul class="info cf">', '</ul>'));          //fs2016.09.28
  Title_orig    := TextBetween(Dati_generali, '<li><h2>', '</h2></li>');
  lungo := (length(Title_orig) + 18);
  Title_orig    := FullTrim(TextBetween(Dati_generali, '<li><h2>', '</h2></li>'));
  Title_orig    := AnsiMixedCase(AnsiLowerCase(Title_orig), ' ');
  if  title_orig <> getfield(fieldTranslatedTitle) then
      SetField(fieldOriginalTitle, Title_orig);

//Delete(Line,1,pos('size="2"><a',Line))
  if length(Title_orig) > 0 then          //altri paesi
     begin
     Delete(Dati_generali, 1, lungo);
     Paese := TextBetween(Dati_generali, '<li>', '<time>');                //fs2016.09.29
     Anno := TextBetween(Dati_generali, '<time>', '</time>');
     Categoria := fulltrim(Textbetween(Dati_generali, '<span>Genere:</span>', '</li>'));
     durata := fulltrim(Textbetween(Dati_generali, '<span>durata</span>', '</li>'));
     end
     else
     begin                                              //Italia
     Paese := TextBetween(Dati_generali, '<li>', '<time>');
     Anno := TextBetween(Dati_generali, '<time>', '</time>');
     Categoria := fulltrim(Textbetween(Dati_generali, '<span>Genere:</span>', '</li>'));
     durata := fulltrim(Textbetween(Dati_generali, '<span>durata</span>', '</li>'));
     end;

  HTMLRemoveTags(Paese);
  PosBar := AnsiLastPosEx(',', Paese, true, true);
  if   PosBar > 0 then
       delete(Paese, (posbar), (length(Paese) - PosBar));           //cut old filename

  Paese := Fulltrim(Paese);
  SetField(fieldCountry, Paese);
  SetField(fieldYear, Anno);
  HTMLRemoveTags(Categoria);
  SetField(fieldCategory, Categoria);
  temp := Textbefore(durata, apice, '');
  SetField(fieldLength, temp);

//Get Director
  temp:= TextBetween(htmlstr, cStartDirector,cEndDirector);
  HTMLRemoveTags(temp);
  HTMLDecode(temp);
  temp:= fulltrim(temp);
  setfield(FieldDirector, Temp);

//Get Actors
  temp:= TextBetween(htmlStr, cStartCast,cEndCast);
  HTMLRemoveTags(temp);                       //fs 2012-04-03
  HTMLDecode(temp);
  SetField(fieldActors, FullTrim(temp))

//Get comments
  SaveHtmlstr:= htmlstr;
   if debug_search then
      DumpPage(folder+'FilmTvTrama.txt', SaveHtmlstr);                // debug
  temp:= Textbetween(htmlStr, cStartDesc, cEndDesc);
  HTMLRemoveTags(temp);                       //fs 2012-04-03
  HTMLDecode(temp);
  SetField(fieldDescription, FullTrim(temp));

  temp := TextBetween(HtmlStr, cStartComm, cEndComm);
  HTMLRemoveTags(temp);
  HTMLDecode(temp);
  SetField(fieldComments, FullTrim(temp));
  htmlstr:= SaveHtmlstr;

  //Get URL
  SetField(fieldURL, movieurl);

  //Get image     http://ftv01.stbm.it/imgbank/GALLERYXL/R201404/the_english_teacher_poster_ita.jpg
  imagelink := TextBetween(htmlStr, cStartImgLink_ext, cEndImgLink_ext);
  imagelink := TextBetween(imagelink, cStartImgLink_int, cEndImgLink_int);
//  setfield(FieldSubTitles, imagelink);
//  if imagelink <> 'http://www.film.tv.it/imgbank/DUMMY/no_locandina.jpg'  then
    if imagelink <> 'http://ftv01.stbm.it/imgbank/DUMMY/no_locandina.jpg'  then
       GetPicture2(imagelink, movieurl);

//     GetPicture(imagelink);

end;

//###############################################
//##############################################
//Returns a text field from an input string strIn (pagestr)
//delIn and delOut: text field delimiters
//##############################################
function getTextDelimited(lIn:string; lOut:string;Var strIn:string): string;
var
  StartPos: integer;
  len:integer;
  tempStr: string;
  lgth_pagestr: integer;
begin
  lgth_pagestr:= length(strIn);
  StartPos := pos(lIn, strIn);
  if startPos<>0 then
  begin
    StartPos:=StartPos+Length(lIn);
    tempStr:= copy(strIn,StartPos,StartPos+length(strIn));
    len := pos(lOut, tempStr);

     if len=0 then
      result:=''
     else
      result := copy(strIn, StartPos, len-1); // get Text Out
  Delete(strIn, 1, StartPos-1 + len-1 + length(lOut)-2);
  lgth_pagestr:= length(strIn);
  end
  else
    result := '';
  HTMLDecode(result);
end;


// ------------------------------------------------------------------
// FILL PICKTREE CONTROL WITH LINKS & TITLES or RETURN ONE PAGE LINK
// if OneFilm flag true return Film Id else populate PickTree
// IN:  OneFilm flag (bool)
// OUT: one page ID  (string)
// ------------------------------------------------------------------
procedure PopulatePickTree();
var
  filmUrl, partialUrl: string;
  filmTitle, filmYear: string;
  StartPos, EndPos: integer;
  Lgth_pagestr: integer;
begin
      PickTreeClear;
//      PickTreeAdd('Risultati ricerca per "' + File_name + '":', '');
      PickTreeAdd('Risultati ricerca per "' + getfield(fieldFilePath) + '":', '');
      repeat
        partialUrl:= getTextDelimited(cStartFilmUrl,cEndFilmUrl,PageStr);
        filmUrl:=UrlBase + partialUrl;
        filmTitle:=getTextDelimited(cStartTitle,cEndTitle,PageStr);
 //fs20160224       filmYear:=getTextDelimited(InitYear, EndYear,PageStr);
        filmYear:=getTextDelimited(InitYear, '</h2>',PageStr);  //fs20160224
//fs20140603        filmYear:= copy(filmYear, 1, 42);
        filmyear := fulltrim(filmyear);              //(FS 2016-02-24
        filmYear:= '   ' + '(' + filmYear + ')';
        filmTitle := filmtitle + ' ' + filmYear;
        filmTitle := Stringreplace(filmtitle, ', con', ',     con');
  HTMLRemoveTags(filmTitle);
  HTMLDecode(filmTitle);
        MoviesFound := MoviesFound + 1;
        if partialUrl<>'' then
          begin
          PickTreeAdd(filmTitle, filmUrl);
          end;
      until(partialUrl='');
end;


// ---------------------------------
// ANALYZE FIRST SEARCH RESULT PAGE:
// IN:  html of search page (string)
// OUT: movie url
// ---------------------------------
function analyzePage(htmlSearchPage: string): string;
var
  FilmId: string;
begin
  result:='';
  if pos('Non ho trovato nulla!', htmlSearchPage) > 0 then
    ShowMessage('Title not found / Nessun film trovato.')
  else
    begin
      PopulatePickTree();
      if  MoviesFound > 1 then
          begin
          if not PickTreeExec(result) then
             begin
                MoviesFound := 0;
                exit;
             end
          end;
      if  MoviesFound <= 1 then
//          begin
//          if not PickTreeExec(result) then
             exit;                    //Select one title
//          end;
    end;
end;


// ----------
// MAIN:
// IN:  none
// OUT: none
// ----------
begin
  if CheckVersion(4,2,0) then
    begin
      TranslatedStr := GetField(fieldTranslatedTitle);
      OriginalStr := GetField(fieldOriginalTitle);
      if (TranslatedStr <> '') then
        MovieName := TranslatedStr
      else
        MovieName := OriginalStr;
      File_name := MovieName;
      if(Input('Film.TV.It', 'Enter the title of the movie / Inserire titolo del film:', MovieName)) then
        begin
          //Get search page
          MoviesFound := 0;
// http://www.filmtv.it/cerca/?q=dalle+9+alle+5+orario+continuato
//          searchUrl := QueryBase + UrlEncode(MovieName);
            searchUrl := QueryBase + Stringreplace(MovieName, ' ', '+');
            searchUrl := AnsiLowerCaseNoAccents(searchurl);       //fs 2016.09.05
//FS 2016.02.24                    PageStr := RemoveextraChars(searchUrl);
          Pagestr := GetPage(searchUrl);      //FS 2016.02.24
          PageStr := UTF8Decode(PageStr);
          //Analyze search page and get movie url (user choice)
          MovieUrl:=analyzePage(PageStr);

          // Get movie page
          if  MoviesFound = 0 then
              exit;
//FS 2016.02.24          PageStr := RemoveextraChars(MovieUrl);
          Pagestr := GetPage(MovieUrl);      //FS 2016.02.24
          PageStr := UTF8Decode(PageStr);
          Pagestr := Stringreplace(Pagestr, '’', '´');
          //Analyze movie page and set movie fields
          SetMovieFields(PageStr);
        end;
    end
  else
    ShowMessage('This script requires a newer version of Ant Movie Catalog (at least the version 4.2.0)');
end.
Last edited by fulvio53s03 on 2017-08-31 02:36:48, edited 1 time in total.
antp
Site Admin
Posts: 9638
Joined: 2002-05-30 10:13:07
Location: Brussels
Contact:

Post by antp »

Thanks
I updated version number to 3.4.2 though
fulvio53s03
Posts: 745
Joined: 2007-04-28 05:46:43
Location: Italy

Post by fulvio53s03 »

antp wrote:Thanks
I updated version number to 3.4.2 though
acc.... scusate.
uh oh.... sorry.
:(
antp
Site Admin
Posts: 9638
Joined: 2002-05-30 10:13:07
Location: Brussels
Contact:

Post by antp »

no problem ;)
otreux
Posts: 194
Joined: 2008-10-22 16:55:46

Post by otreux »

Grazie :)
mrobama
Posts: 85
Joined: 2009-04-03 12:34:34

Re: [UPD ITA] Filmtv.it aggiornato

Post by mrobama »

Updated version.

Code: Select all

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

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

[Infos]
Authors=Fulvio53s03 (based on Fiezul, PIvello, Valerino & others works).
Title=FilmTV
Description=Get movie info from Film TV
Site=www.Film.TV.it
Language=IT
Version=3.4.3    13.3.2018
Requires=4.2.0
Comments=
License=
GetInfo=1
RequiresMovies=1

[Options]

[Parameters]
MaxPreview=1|1|Show more info in search results list (0 = false, 1 = true)

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

program FilmTVIt;
uses
  StringUtils7552;   // Script needs external unit StringUtils7552.pas in scripts folder !
const
  //Query constants
  UrlBase = 'http://www.film.tv.it';
  QueryBase = UrlBase + '/cerca/?q=';
  QueryFilm = UrlBase + '';

  //Search page constants
  debug_search = false;
  folder = 'd:\';
  Apice = #39;
  xFilmSearchStart = '<article';                              // HTML start marker movie block
  xFilmSearchEnd = '</article>';                              // HTML end marker movie block
  xResultTypeStart = '<div class="etichetta-serp">';          // Block type start marker. Possible blocks: FILM, RECENSIONE, POST ...
  xResultTypeEnd = '<';                                       // Block type end marker
  xFilmUrlStart = '<h2 class="title-item-scheda"><a href="';  // URL start marker
  xFilmUrlEnd = '"';                                          // URL end marker
  xTitleStart = ' title="';                                   // Title start marker
  xTitleEnd = '"';                                            // Title end marker
  xOriginalTitleStart = '<li>Titolo originale: <span>';       // Original title start marker
  xOriginalTitleEnd = '<span>';                               // Original title end marker
  xCategoryStart = '<li>Genere: <span>';                      // Category start marker
  xCategoryEnd = '</span>';                                   // Category end marker
  xDirectorsStart = 'Regia: <span>';                          // Directors start marker
  xDirectorsEnd = '</span>';                                  // Directors end marker
  xYearStart = '<span class="anno">';                         // Year start marker
  xYearEnd = '</span>';                                       // Year end marker
  
  //Film page constants
  cTranslTitleStart = '<div class="wrap-head">';    // Translated title start marker
  cTranslTitleEnd = '<div class=';                  // Translated title end marker
  cOrigTitleStart = '[<i>';                         // Original title start marker
  cOrigTitleEnd = '</i>';                           // Original title end marker
  cImgLinkExtStart = '<figure class="locandina">';  // Image start marker
  cImgLinkExtEnd = '</figure>';                     // Image end marker  
  cImgLinkIntStart = '<img src="';                  // Image start marker
  cImgLinkIntEnd = '"';                             // Image end marker
  cDirectorStart = 'Regia di';                      // Single Director start marker
  cDirectorEnd = '</p>';                            // Single Director end marker
  cCastStart = 'Con</span>';                        // Cast start marker
  cCastEnd = '<strong>';                            // Cast end marker
  cDescStart = '<h2>Trama</h2>';                    // Description start marker  //FS2012-11-11
  cDescEnd = '</p>';                                // Description end marker
  cCommStart = '<blockquote>';                      //fs2013-02-11
  cCommEnd = '</blockquote>';                       // Comment end marker
  
var
  searchUrl, MovieUrl, MovieName, OriginalStr, TranslatedStr, PageStr:  string;
  MoviesFound: integer;

// --------------------------------non più usato post versione 3.3.2 per velocizzare ricerca ------------------
// PAGE PACKING (remove extra spaces, tabs & CR) by Pivello
// IN:  page Url     (string)
// OUT: compact page (string)
// --------------------------------------------------
function RemoveextraChars(Url: string): string;
var
  Page: TStringList;
  TmpPageStr: string;
  Temp: string;
  PackedPage: string;
  CharPos: Integer;
  n: Integer;
begin
  Page := TStringList.Create;
  TmpPageStr := '';

  Page.Text := GetPage(Url);
  for n := 0 to Page.Count - 1 do
    PackedPage := PackedPage + ' ' + Page.GetString(n);
  repeat
    CharPos := pos('  ', PackedPage);
    if CharPos = 0 then
      CharPos := pos(#9, PackedPage);
    if CharPos <> 0 then
      begin
        Temp := copy(PackedPage, 1, CharPos - 1);
        Delete(PackedPage, 1, CharPos);
        PackedPage := Temp + PackedPage;
      end;
  until((pos('  ', PackedPage) = 0) and (pos(#9, PackedPage) = 0));
  result := PackedPage;
  Page.Free;

end;

// -----------------------
// ANALYZE MOVIE DATA PAGE
// IN:  none
// OUT: set Ant fields
// -----------------------
procedure SetMovieFields (htmlStr: string);
var
  i, h, m: integer;
  CharPos, lungo, posbar: integer;
  Duration, Description, Cast, TempStr, TempImg, hh, mm,temp: string;
  tempDirector, director: string;
  PosParAperta, PosParChiusa: integer;
  imageLink: string;
  sep1, sep2: string;
  SaveHtmlstr, tempvar : string;
  dati_generali, Title_orig, Paese, Anno, Categoria, durata : string;
begin
  SetField(fieldDate, DateToStr(Date));
  // General movie description fields
  anno := '';
  TranslatedStr := TextBetween(htmlStr, cTranslTitleStart, cTranslTitleEnd);
  TranslatedStr := TextBetween(TranslatedStr, '<h1>', '</h1>');
  if length(Translatedstr) < 1 then
    begin
    TranslatedStr := TextBetween(htmlStr, cTranslTitleStart, cTranslTitleEnd);
    TranslatedStr := TextBetween(TranslatedStr, '<h1 >', '</h1>');
    end;
  SetField(fieldTranslatedTitle, AnsiMixedCase(AnsiLowerCase(TranslatedStr), ' '));    //Titolo Tradotto

//Dati Generali (tit.orig, paese, anno, genere, durata ecc.)
//  Dati_generali := TextBetween(htmlStr, '<div class="wrap-head-content cf"', '<div class="visione cf">');
  Dati_generali := FullTrim(TextBetween(htmlStr, '<ul class="info cf">', '</ul>'));          //fs2016.09.28
  Title_orig := TextBetween(Dati_generali, '<li><h2>', '</h2></li>');
  lungo := (length(Title_orig) + 18);
  Title_orig := FullTrim(TextBetween(Dati_generali, '<li><h2>', '</h2></li>'));
  Title_orig := AnsiMixedCase(AnsiLowerCase(Title_orig), ' ');
  if  title_orig <> getfield(fieldTranslatedTitle) then
      SetField(fieldOriginalTitle, Title_orig);

//Delete(Line,1,pos('size="2"><a',Line))
  if length(Title_orig) > 0 then          //altri paesi
     begin
     Delete(Dati_generali, 1, lungo);
     Paese := TextBetween(Dati_generali, '<li>', '<time>');                //fs2016.09.29
     Anno := TextBetween(Dati_generali, '<time>', '</time>');
     Categoria := fulltrim(Textbetween(Dati_generali, '<span>Genere:</span>', '</li>'));
     durata := fulltrim(Textbetween(Dati_generali, '<span>durata</span>', '</li>'));
     end
     else
     begin                                              //Italia
     Paese := TextBetween(Dati_generali, '<li>', '<time>');
     Anno := TextBetween(Dati_generali, '<time>', '</time>');
     Categoria := fulltrim(Textbetween(Dati_generali, '<span>Genere:</span>', '</li>'));
     durata := fulltrim(Textbetween(Dati_generali, '<span>durata</span>', '</li>'));
     end;

  HTMLRemoveTags(Paese);
  PosBar := AnsiLastPosEx(',', Paese, true, true);
  if   PosBar > 0 then
       delete(Paese, (posbar), (length(Paese) - PosBar));           //cut old filename

  Paese := Fulltrim(Paese);
  SetField(fieldCountry, Paese);
  SetField(fieldYear, Anno);
  HTMLRemoveTags(Categoria);
  SetField(fieldCategory, Categoria);
  temp := Textbefore(durata, apice, '');
  SetField(fieldLength, temp);

//Get Director
  temp := TextBetween(htmlstr, cDirectorStart, cDirectorEnd);
  HTMLRemoveTags(temp);
  HTMLDecode(temp);
  temp := fulltrim(temp);
  setfield(FieldDirector, Temp);

//Get Actors
  temp := TextBetween(htmlStr, cCastStart,cCastEnd);
  HTMLRemoveTags(temp);                       //fs 2012-04-03
  HTMLDecode(temp);
  SetField(fieldActors, FullTrim(temp))

//Get comments
  SaveHtmlstr := htmlstr;
  if debug_search then
      DumpPage(folder+'FilmTvTrama.txt', SaveHtmlstr);                // debug
  temp := Textbetween(htmlStr, cDescStart, cDescEnd);
  HTMLRemoveTags(temp);                       //fs 2012-04-03
  HTMLDecode(temp);
  SetField(fieldDescription, FullTrim(temp));

  temp := TextBetween(HtmlStr, cCommStart, cCommEnd);
  HTMLRemoveTags(temp);
  HTMLDecode(temp);
  SetField(fieldComments, FullTrim(temp));
  htmlstr := SaveHtmlstr;

  //Get URL
  SetField(fieldURL, movieurl);

  //Get image     http://ftv01.stbm.it/imgbank/GALLERYXL/R201404/the_english_teacher_poster_ita.jpg
  imagelink := TextBetween(htmlStr, cImgLinkExtStart, cImgLinkExtEnd);
  imagelink := TextBetween(imagelink, cImgLinkIntStart, cImgLinkIntEnd);
//  setfield(FieldSubTitles, imagelink);
//  if imagelink <> 'http://www.film.tv.it/imgbank/DUMMY/no_locandina.jpg'  then
    if imagelink <> 'http://ftv01.stbm.it/imgbank/DUMMY/no_locandina.jpg'  then
       GetPicture2(imagelink, movieurl);

//     GetPicture(imagelink);

end;

//###############################################
//##############################################
//Returns a text field from an input string strIn (pagestr)
//delIn and delOut: text field delimiters
//##############################################
function getTextDelimited(lIn:string; lOut:string;Var strIn:string): string;
var
  StartPos: integer;
  len:integer;
  tempStr: string;
begin
  StartPos := pos(lIn, strIn);
  if StartPos<>0 then
  begin
    StartPos := StartPos+Length(lIn);
    tempStr := copy(strIn,StartPos,StartPos+length(strIn));
    len := pos(lOut, tempStr);

    if len=0 then
      result := ''
    else
      result := copy(strIn, StartPos, len-1); // get Text Out
    Delete(strIn, 1, StartPos-1 + len-1 + length(lOut)-2);
  end
  else
    result := '';
  HTMLDecode(result);
end;


// ------------------------------------------------------------------
// FILL PICKTREE CONTROL WITH LINKS & TITLES AND RETURNS LAST FILM LINK
// ------------------------------------------------------------------
function PopulatePickTree(): string;
var
  filmHTML, filmUrl, partialUrl, resultType: string;
  filmTitle, filmOriginalTitle, filmCategory, filmYear, filmDirectors: string;
  filmSearched: string;
begin
      PickTreeClear;
      filmSearched := MovieName;
      if ((GetParam('MaxPreview') <> '0') AND ((GetField(fieldYear) <> '') OR (GetField(fieldDirector) <> '') OR (GetField(fieldCategory) <> ''))) then
        filmSearched := filmSearched + ' (stored fields: ' + GetField(fieldYear) + ', ' + GetField(fieldDirector) + ', ' + GetField(fieldCategory) + ')';
      PickTreeAdd('Risultati ricerca per "' + filmSearched + '":', '');
      filmUrl := '';
      repeat
        filmHTML := getTextDelimited(xFilmSearchStart, xFilmSearchEnd, PageStr);
        resultType := getTextDelimited(xResultTypeStart, xResultTypeEnd, filmHTML);
        if ((resultType <> 'RECENSIONE') AND (resultType <> 'POST')) then
        begin
          partialUrl := getTextDelimited(xFilmUrlStart, xFilmUrlEnd, filmHTML);
          if partialUrl<>'' then
          begin
            filmUrl := UrlBase + partialUrl;
            filmTitle := getTextDelimited(xTitleStart, xTitleEnd, filmHTML);
            filmOriginalTitle := getTextDelimited(xOriginalTitleStart, xOriginalTitleEnd, filmHTML);
            filmCategory := getTextDelimited(xCategoryStart, xCategoryEnd, filmHTML);
            filmYear := getTextDelimited(xYearStart, xYearEnd, filmHTML);
            filmDirectors := getTextDelimited(xDirectorsStart, xDirectorsEnd, filmHTML);
            if GetParam('MaxPreview') = '0' then
              begin
                filmTitle := filmTitle + ' (' + filmYear + ')';
              end
            else
              begin
                if filmOriginalTitle<>'' then
                  filmTitle := filmTitle + ' - ' + filmOriginalTitle;
                filmTitle := filmTitle + ' (' + filmYear;
                if filmDirectors<>'' then
                  filmTitle := filmTitle + ' - ' + filmDirectors;
                if filmCategory<>'' then
                  filmTitle := filmTitle + ' - ' + filmCategory;
                filmTitle := filmTitle + ')';
              end;
            MoviesFound := MoviesFound + 1;
            PickTreeAdd(filmTitle, filmUrl);
          end;
        end;
      until (partialUrl='');
      PopulatePickTree := filmUrl;
end;


// ---------------------------------
// ANALYZE FIRST SEARCH RESULT PAGE:
// IN:  html of search page (string)
// OUT: movie url
// ---------------------------------
function analyzePage(htmlSearchPage: string): string;
var
  FilmId: string;
begin
  result := '';
  if pos('Non ho trovato nulla!', htmlSearchPage) > 0 then
    begin
      ShowMessage('Title not found / Nessun film trovato.');
      analyzePage := ''
    end
  else
    begin
      analyzePage := PopulatePickTree();
      if  MoviesFound > 1 then
          begin
          if not PickTreeExec(result) then
             begin
                MoviesFound := 0;
                exit;
             end
          end;
      if  MoviesFound <= 1 then
//          begin
//          if not PickTreeExec(result) then
             exit;                    //Select one title
//          end;
    end;
end;


// ----------
// MAIN:
// IN:  none
// OUT: none
// ----------
begin
  if CheckVersion(4,2,0) then
    begin
      TranslatedStr := GetField(fieldTranslatedTitle);
      OriginalStr := GetField(fieldOriginalTitle);
      if (TranslatedStr <> '') then
        MovieName := TranslatedStr
      else
        MovieName := OriginalStr;
      if (Input('Film.TV.It', 'Enter the title of the movie / Inserire titolo del film:', MovieName)) then
        begin
          //Get search page
          MoviesFound := 0;
// http://www.filmtv.it/cerca/?q=dalle+9+alle+5+orario+continuato
//          searchUrl := QueryBase + UrlEncode(MovieName);
            searchUrl := QueryBase + Stringreplace(MovieName, ' ', '+');
            searchUrl := AnsiLowerCaseNoAccents(searchurl);       //fs 2016.09.05
//FS 2016.02.24                    PageStr := RemoveextraChars(searchUrl);
          Pagestr := GetPage(searchUrl);      //FS 2016.02.24
          PageStr := UTF8Decode(PageStr);
          //Analyze search page and get movie url (user choice)
          MovieUrl := analyzePage(PageStr);
          // Get movie page
          if MoviesFound = 0 then
              exit;
//FS 2016.02.24          PageStr := RemoveextraChars(MovieUrl);
          Pagestr := GetPage(MovieUrl);      //FS 2016.02.24
          PageStr := UTF8Decode(PageStr);
          Pagestr := Stringreplace(Pagestr, '&rsquo;', '´');
          //Analyze movie page and set movie fields
          SetMovieFields(PageStr);
        end;
    end
  else
    ShowMessage('This script requires a newer version of Ant Movie Catalog (at least the version 4.2.0)');
end.
antp
Site Admin
Posts: 9638
Joined: 2002-05-30 10:13:07
Location: Brussels
Contact:

Re: [UPD ITA] Filmtv.it aggiornato

Post by antp »

Thanks
fulvio53s03
Posts: 745
Joined: 2007-04-28 05:46:43
Location: Italy

Re: [UPD ITA] Filmtv.it aggiornato

Post by fulvio53s03 »

grazie. ;)
otreux
Posts: 194
Joined: 2008-10-22 16:55:46

Re: [UPD ITA] Filmtv.it aggiornato

Post by otreux »

IOHandler error for me :(
100celle83
Posts: 16
Joined: 2018-04-30 18:05:10

Re: [UPD ITA] Filmtv.it aggiornato

Post by 100celle83 »

ciao fulvio perchè mi da sempre questo errore IOHandler error su filmtv.it ?

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

Re: [UPD ITA] Filmtv.it aggiornato

Post by fulvio53s03 »

100celle83 wrote: 2018-04-30 18:11:55 ciao fulvio perchè mi da sempre questo errore IOHandler error su filmtv.it ?
Grazie
Saluti
Devi aggiornare lo script, se non l'hai fatto, ed installare l'ultima versione di Ant Movie Catalog, se non l'hai fatto.
Comunque, sempre indicare su quale film si verifica l'errore.
:)
100celle83
Posts: 16
Joined: 2018-04-30 18:05:10

Re: [UPD ITA] Filmtv.it aggiornato

Post by 100celle83 »

Su tutti..specialmente i film nuovi. Lo script è aggiornato a marzo.
100celle83
Posts: 16
Joined: 2018-04-30 18:05:10

Re: [UPD ITA] Filmtv.it aggiornato

Post by 100celle83 »

Quale è l ultima versione di ant movie? Io ho la 4.2.1.2... lo script che ho è di marzo 2018..
fulvio53s03
Posts: 745
Joined: 2007-04-28 05:46:43
Location: Italy

Re: [UPD ITA] Filmtv.it aggiornato

Post by fulvio53s03 »

100celle83 wrote: 2018-04-30 22:00:39 Su tutti..specialmente i film nuovi. Lo script è aggiornato a marzo.
Un titolo di esempio perchè sembri solo tu ad avere quell'anomalia.
:shaking:
otreux
Posts: 194
Joined: 2008-10-22 16:55:46

Re: [UPD ITA] Filmtv.it aggiornato

Post by otreux »

Ciao Fulvio :)

No, succede anche a me, ad esempio con "amici miei"

Version=3.4.3 13.3.2018
antp
Site Admin
Posts: 9638
Joined: 2002-05-30 10:13:07
Location: Brussels
Contact:

Re: [UPD ITA] Filmtv.it aggiornato

Post by antp »

Seems to give the error for all movies, no? The site probably simply switched to HTTPS
fulvio53s03, does it still work for you?
100celle83
Posts: 16
Joined: 2018-04-30 18:05:10

Re: [UPD ITA] Filmtv.it aggiornato

Post by 100celle83 »

prova con questo : Maze Runner - La rivelazione

a me su filmtv.it da errore...
100celle83
Posts: 16
Joined: 2018-04-30 18:05:10

Re: [UPD ITA] Filmtv.it aggiornato

Post by 100celle83 »

ma esiste anche un altro script per trovare film homevideo, netflix o tipo filmtv ossia i film non troppo conosciuti, non da cinema? Una volta mi trovavo bene con musicafilm ma forse il sito è chiuso... grazie
Comunque se si risolve filmtv è quello più completo !
100celle83
Posts: 16
Joined: 2018-04-30 18:05:10

Re: [UPD ITA] Filmtv.it aggiornato

Post by 100celle83 »

stesso errore lo da anche su ibs.it...
fulvio53s03
Posts: 745
Joined: 2007-04-28 05:46:43
Location: Italy

Re: [UPD ITA] Filmtv.it aggiornato

Post by fulvio53s03 »

100celle83 wrote: 2018-05-01 11:05:56 stesso errore lo da anche su ibs.it...
di ibs.it non saprei dire.
hai provato Kultvideo? dedicato ai film di serie B, C, ...., Z
ma anche myvideo, wikipedia, comingsoon funzionano.... non so se i repertori inclusi in ciascuno ti possono soddisfare.
di Filmscoop, LaFeltrinelli, Libreria Universitaria ho perso le novità e mi piacerebbe qualcuno li verificasse.
In ogni caso, per FilmTV mi dedicherò.... se non mi confondo con tutti questi scripts da modificare.... :shaking: :wow: :wow: :innocent:

about ibs.it I can not say.
have you tried Kultvideo? dedicated to the films of series B, C, ...., Z
but also myvideo, wikipedia, comingsoon work .... I do not know if the repertoires included in each can satisfy you.
Filmscoop, LaFeltrinelli, Libreria Universitaria: I lost the news and I would like someone to verify them.
In any case, for FilmTV I will dedicate myself .... if I do not get confused with all these scripts to be modified.... :shaking: :wow: :wow: :innocent:
Post Reply