
Code: Select all
(***************************************************
Ant Movie Catalog importation script
www.antp.be/software/moviecatalog/
[Infos]
Authors=Fulvio53s03 & seraphico (Original by Claudio Rinaldi). Thanks to MrObama, Vjncenzo.
Title=MyMovies
Description=Get movie info from MyMovies.it
Site=www.mymovies.it
Language=IT
Version=3.0.3
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=®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';
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=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 := 'è';
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 <> '') and (pos('twitter_ico.gif', cImage) = 0) then
GetPicture(cImage);
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;
// 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 <> '') and (pos('twitter_ico.gif', cImage) = 0) then
GetPicture(cImage);
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;
// 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="http://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="http://www.mymovies.it/film/?anno=', '">'); //Vjrgil
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.2) and StringUtils1 version 6');
end.