unit MoviePlayerPas;
{
Main var, constants and functions
}
uses
ItalianSharedPas;
const
MP_UnitVersion = 2;
MP_UrlBase = 'https://movieplayer.it';
// --------------------------------------------------------------------------------------------------------------------------------------
// "public" functions e procedures
// --------------------------------------------------------------------------------------------------------------------------------------
// -----------------------------------
// Main program (for MultiSite)
// IN: properties values (serialized)
// OUT: properties values (serialized)
// -----------------------------------
function MoviePlayerCoreMultiSite(serializedValues: string): string;
begin
SharedUnserializeMe(serializedValues);
// Analyze search page and get movie url (user choice)
if (SharedGetMoviesFound() = 0) then
MoviePlayerSearchResults();
if (SharedGetMoviesFound() > 0) then // Analyze movie page and set movie fields
MoviePlayerSetMovieFields();
result := SharedSerializeMe();
end;
// --------------------------------
// ANALYZE FIRST SEARCH RESULT PAGE
// IN: none
// --------------------------------
procedure MoviePlayerSearchResults;
var
myUrl: string;
pageNumberMovies, pageNumberSerie: integer;
searchForMovies, searchForSerie: boolean;
begin
// Looking for movies
pageNumberMovies := 0;
pageNumberSerie := 0;
searchForMovies := true;
searchForSerie := true;
repeat
SharedSetMovieUrl('');
SharedSetMoviesFound(0);
SharedPickTreeCreate();
if (searchForMovies) then
begin
pageNumberMovies := pageNumberMovies + 1;
myUrl := 'https://movieplayer.it/ricerca/?q=' + SharedAdvancedUrlEncode(SharedGetMovieName(), false) + '&ct=film.film&pagina=' + IntToStr(pageNumberMovies) + '&querystring_key=pagina';
SharedHTTPGetPage(myUrl);
searchForMovies := MoviePlayerPopulatePickTree(false, 'movie', (not searchForSerie));
end;
if (searchForSerie AND (SharedGetMovieUrl() = '')) then
begin
// Looking for serietv
pageNumberSerie := pageNumberSerie + 1;
myUrl := 'https://movieplayer.it/ricerca/?q=' + SharedAdvancedUrlEncode(SharedGetMovieName(), false) + '&ct=serietv.serietv&pagina=' + IntToStr(pageNumberSerie) + '&querystring_key=pagina';
SharedHTTPGetPage(myUrl);
searchForSerie := MoviePlayerPopulatePickTree(searchForMovies, 'serie', true);
end;
SharedPickTreeExec();
until (not ((copy(SharedGetMovieUrl(), 1, 5) = 'next:') AND (searchForMovies OR searchForSerie)));
end;
// -----------------------
// ANALYZE MOVIE DATA PAGE
// IN: none
// -----------------------
procedure MoviePlayerSetMovieFields;
var
html, originalTitle, translatedTitle, countries, picture, description, year, actors, directors, rating, duration, categories: string;
begin
SharedHTTPGetPage(SharedGetMovieUrl());
// tutti i valori si trovano in un json posizionato nell'head ad eccezione del titolo originale del film, del paese e del cast
originalTitle := textBetween(SharedGetLatestPageHtml(), 'Titolo originale', '');
HTMLRemoveTags(originalTitle);
HTMLDecode(originalTitle);
originalTitle := fulltrim(originalTitle);
countries := textBetween(SharedGetLatestPageHtml(), '>Paese', '');
HTMLRemoveTags(countries);
HTMLDecode(countries);
countries := fulltrim(countries);
actors := htmlSerializePeople(textBetween(SharedGetLatestPageHtml(), '