English > Feature Suggestions

Suggestion for Ivek23

(1/16) > >>

deazo:

 Hi all,

 I'm sorry for putting this on you Ivek23 but I have been dying for seeing a Rotten tomatoes ratings import for PVD.
 I cannot help to notice that you were able to fix the IMDB script so that it could take the IMDB ratings....
 Would you be able to do the same for RT ratings?

 I do not care about any other info coming from RT, only their ratings.

 I don't know if this can help you, but there is a Chrome extension that brings RT ratings into the IMDB page.
https://chrome.google.com/webstore/detail/imdbrt/dhmlipoakdghhhemjmefopbcdcobiphp
 If you install the extension, then go into your chrome extension manager you get access to the script (background html) it uses.

 I wonder if that script could not help you (or anyone here) to "transcript" it for PVD.

 I hope I am making sense, and I know this has been requested a while ago, but RT ratings are soooo much better than IMDB's that I constantly check them out on the IMDB page using the extension.

 It is perfectly OK for you to tell me to bugger off and delete that request  :)

 Thank you for your efforts (past and future).

 D.



 

Ivek23:
No, I do not mind. I need a bit more time for a little more detailed look into this. It is also true, it will be a bit less time to the end of this week. When I know more, I will messages.

Ivek23:
I took a look at that, what you ask, but as far as I see, it will not work.
I use Firefox and there is a similar Greasemonkey script
(IMDB_-_add_Rottentomatoes_info)  shows the same as Chrome extension.

I'll explain for example Casablanca (1942) movie:

So one as another extension in Casablanca (1942) movie for IMDB,  leaves no piece of code in the source code page, that this could be used for example, Imdb Movie script.

It is possible (maybe, we'll see) it would be well done RT script for Casablanca (1942) movie on RT (and other movies).

I wonder which part of the rating you are interested in:
first, second or both of the percentages, or anything else.

Maybe will then simple RT script written to the end of the week.

Ivek23:

--- Quote from: Ivek23 on November 14, 2012, 08:27:38 pm ---Maybe will then simple RT script written to the end of the week.
--- End quote ---

With a little effort I managed do simple RT script .

For unregistered users:
Rottentomatoes.psf



--- Code: ---(*
SCRIPT INFO:

---------------------------------------------

SCRIPT: Rottentomatoes Script
AUTHOR: Ivek23
VERSION: 0.1.0.0
DATE: 17/11/2012

---------------------------------------------
*)

//SCRIPT BEGINS HERE...

//Some useful constants

const

//Script types
stMovies = 0;
stPeople = 1;
stPoster = 2;

///Script modes
smSearch = 0;
smNormal = 1;
smCast = 2;
smReview = 3;
smCredits = 4;
smDVDReleases = 5;
smBiography = 6;
smGenreindex = 7;
smAwards = 8;
smMiscellaneous = 9;
smPoster = 10;
smFinished = 11;

//Parse results
prError = 0;
prFinished = 1;
prList = 2;
prListImage = 3;
prDownload = 4;

//Prefix modes
pmNone = 0;
pmEnd = 1;
pmBegin = 2;
pmRemove = 3;

//Download methods
dmGET = 0;
dmPOST = 1;

//Movie fields
mfURL = 0;
mfTitle = 1;
mfOrigTitle = 2;
mfAka = 3;
mfYear = 4;
mfGenre = 5;
mfCategory = 6;
mfCountry = 7;
mfStudio = 8;
mfMPAA = 9;
mfRating = 10;
mfTags = 11;
mfTagline = 12;
mfDescription = 13;
mfDuration = 14;
mfFeatures = 15;

//People fields
    pfURL        = 0;
pfName        = 1;
pfTransName  = 2;
pfAltNames    = 3;
pfBirthday    = 4;
pfBirthplace = 5;
pfGenre      = 6;
pfBio        = 7;
pfDeathDate  = 8; 
pfComment    = 9;
pfBookmark    = 10;
pfPid        = 11;
pfCareer      = 12;

//Credits types
ctActors = 0;
ctDirectors = 1;
ctWriters = 2;
ctComposers = 3;
ctProducers = 4;

//Script data
SCRIPT_VERSION = '0.1.0.0';
SCRIPT_NAME = 'Rottentomatoes Script';
SCRIPT_DESC = '[EN] Get Movie Information about from Rottentomatoes.com';
SCRIPT_LANG = $09; //English
SCRIPT_TYPE = stMovies;

BASE_URL = 'http://www.rottentomatoes.com';
RATING_NAME = 'Rottentomatoes';
SEARCH_STR = 'http://www.rottentomatoes.com/search/?search=%s&sitesearch=rt';
CODE_PAGE = 65001; //Use 0 for Autodetect

//Global variables
var
ELI : Integer;
Mode : Byte;
ExtraLinks : array [smCast..smPoster] of String;

//Functions
function GetScriptVersion : String;
begin
Result := SCRIPT_VERSION;
end;

function GetScriptName : String;
begin
Result :=  SCRIPT_NAME;
end;

function GetScriptDesc : String;
begin
Result := SCRIPT_DESC;
end;

function GetRatingName : String;
begin
Result := RATING_NAME;
end;

function GetScriptLang: Cardinal;
begin
Result := SCRIPT_LANG;
end;

function GetCodePage : Cardinal;
begin
Result := CODE_PAGE;
end;

function GetBaseURL : AnsiString;
begin
Result := BASE_URL;
end;

function GetDownloadURL : AnsiString;
begin
if (Mode = smSearch) then
Result := SEARCH_STR
else
Result := ExtraLinks[Mode];
end;

function GetDownloadMethod : Byte;
begin
Result := dmGET;
end;

function GetPrefixMode : Byte;
begin
Result := pmBegin;
end;

function GetScriptType : Byte;
begin
Result := SCRIPT_TYPE;
end;

function GetCurrentMode : Byte;
begin
Result := Mode;
end;

procedure ParseMovie(MovieURL : String; HTML : String);
var
curPos, endPos : Integer;
TmpStr : String;
begin

//Get ~mfURL~ or ~RT Url~
endPos := Pos('" itemprop="url"/>', HTML);
if endPos > 0 then begin
curPos := PrevPos('"canonical" href="', HTML, endPos);
AddFieldValue(mfURL, Copy(HTML, curPos + 18, endPos - curPos - 18));
end else
AddFieldValue(mfURL, MovieURL);

//~Rating~ or ~RT Rating~
curPos := PosFrom('<p class="critic_stats">', HTML, EndPos);
if curPos > 0 then begin
EndPos := curPos;
TmpStr :=  TextBetween(HTML, 'Average Rating: <span>', '/10</span>', True, curPos);
AddFieldValue(mfRating, TmpStr);
AddCustomFieldValueByName('RT Rating', TmpStr);
end;
 
end;


procedure ParseSearchResults(HTML : String);
var
curPos, endPos : Integer;
Title, Year, URL, Preview : String;
begin
curPos := Pos('<ul id="movie_results_ul" class="results_ul" ', HTML);
if curPos < 1 then
Exit;

LogMessage('Parsing search results...');

curPos  := PosFrom('<img src="', HTML, curPos)+10;
endPos  := PosFrom('" width=', HTML, curPos);
Preview := Trim(Copy(HTML, curPos, endPos - curPos));

curPos := PosFrom('<a href="/m/', HTML, curPos);
while (curPos > 0) AND (curPos < PosFrom('<a id="more_movies" href="#results_movies_tab">More Movies...</a>', HTML, endPos)) do begin
endPos := PosFrom('"  class=', HTML, curPos);
URL := 'http://www.rottentomatoes.com/'+Trim(Copy(HTML, curPos+9, endPos - curPos-9));

curPos := PosFrom('"  class="" >', HTML, curPos);
endPos := PosFrom('</a>', HTML, curPos);
Title := TextBetween(HTML, '"  class="" >', '</a>', True, curPos);

curPos := PosFrom('</a>', HTML, curPos);
endPos := PosFrom('</span></h3>', HTML, curPos);
Year := TextBetween(HTML, '</a>', '</span></h3>', True, curPos);

curPos  := PosFrom('<img src="', HTML, curPos)+10;
endPos  := PosFrom('" width=', HTML, curPos);
Preview := Trim(Copy(HTML, curPos, endPos - curPos));

AddSearchResult(Title+' '+Year, '', '', URL, '');

curPos := PosFrom('<a href="/m/', HTML, curPos);
  end;
end;

function NextMode(curMode : Integer) : Integer;
var
I : Integer;
begin
Result := smFinished;
if curMode < Low(ExtraLinks) - 1 then
curMode := Low(ExtraLinks) - 1;

for I := curMode + 1 to High(ExtraLinks) do
if ExtraLinks[I] <> '' then begin
Result := I;
Break;
end;
end;

function ParsePage(HTML : String; URL : AnsiString) : Cardinal;
begin
HTML := HTMLToText(HTML);
HTML := StringReplace (HTML, 'http://rottentomatoes.com', 'http://www.rottentomatoes.com', True, True, False);

if Pos('Search Results - Rotten Tomatoes', HTML) > 0 then begin
ParseSearchResults(HTML);
Result := prList;
Exit;

end else
 if Pos(' - Rotten Tomatoes</title>', HTML) > 0 then
    ParseMovie(URL, HTML);

Mode := NextMode(Mode);
if Mode <> smFinished then
Result := prDownload
else
Result := prFinished;
end;

begin
Mode := smSearch;
for ELI := Low(ExtraLinks) to High(ExtraLinks) do
ExtraLinks[ELI] := '';
end.
--- End code ---

Rottentomatoes script is attached.

[attachment deleted by admin]

deazo:

 OMG YOU DID IT!!!
 Sorry I did not check the forum for a while I was not expecting you to do it.
 Thank you soooooo much Ivek23 this will help me a lot choose the right movie to watch.
 
--- Quote ---I wonder which part of the rating you are interested in:
first, second or both of the percentages, or anything else
--- End quote ---
I was interested by the first % which is the tomatometer.

 I managed to get the "average rating" in a custom field called "RT rating" in my movie page (please see attached image), but what I was after was having it displayed just like the allmovie and imdb ratings are displayed.
 Do you know if this is possible?

 Thank you thak you thank you again
 

[attachment deleted by admin]

Navigation

[0] Message Index

[#] Next page

Go to full version