Personal Video Database

English => Development => Scripts and Templates => Topic started by: Ivek23 on July 09, 2011, 04:49:32 pm

Title: AllRovi movie script
Post by: Ivek23 on July 09, 2011, 04:49:32 pm
Notice:

AllRovi script does not work anymore.




Now for all former AllMovie fans here is new AllRovi script, based on AllMovie script and with the help of other scripts, especially the new Italian script. The script gets most of the movie information currently available at the new AllRovi site (http://www.allrovi.com/movies/), including:


...and adds some special features:




This script has now been released and is available via the program's auto-update system. Run Help > Check for updates and choose AllRovi from the list. Post any comments or questions to the Support (http://www.videodb.info/forum_en/index.php/board,1.0.html) forum.
Title: Re: AllRovi (movies)
Post by: rick.ca on July 10, 2011, 06:17:02 am
Well done, Ivek! We're almost back in business (if Rovi will ever replace the data that's still missing ::) ). Some comments...

For Description (aka Synopsis), I prefer the author's name at the end. So I changed it to...

Code: [Select]
TmpStr3 := TextBetween(HTML, '<span>by ', '</span>', True, curPos);
...
AddFieldValue(mfDescription, TmpStr2 + #13 + '—' + TmpStr3);

The HTMLValues function is not being used properly in many places...

Quote from: Scripting Manual
function HTMLValues(const HTML : String; ABegin, AEnd, ItemBegin, ItemEnd : String; ValDelim : String; var Pos : Integer) : String;

Gathers all values from a given text into a string using ValDelim as delimiter. The function searches for ABegin first starting from Pos, from this point it gathers values between ItemBegin and ItemEnd until AEnd is found. The last position is returned in Pos variable.

Parameters:
HTML    text to process
ABegin    substring where the values start (header)
ItemBegin    substring that precedes each single value
ItemEnd    substring that follow each single value
ValDelim    delimiter to use in a resulting string
[in] Pos    from which position in text should the search start (will contain the position of AEnd after execution)

Each item in the list has to begin/end with ItemBegin/ItemEnd. Characteristics, for example, works better with...

Code: [Select]
AddCustomFieldValueByName('Characteristics', HTMLValues(HTML,
                                '<h3>characteristics</h3>', '<div class="promo-frame">',
        '>- ', '</div>', 
        ', ', EndPos));

BTW, Characteristics is rather useless as it is (a mix of other data elements), so I put it in a memo field. That way, the data is easier to see, and cut & paste to other fields (i.e., Attributes, Keywords, Moods) if I so choose.

A more obvious and common use for this function would seem to be the List Item (<li> / </li>)...

Code: [Select]
AddCustomFieldValueByName('Flags', HTMLValues(HTML,
                             '<dt>flags</dt>', '</dd>',
     '<li>', '</li>',
     ', ', EndPos)); 

AddFieldValue(mfGenre, HTMLValues(HTML,
                             '<dt>genres</dt>', '</dd>',
     '<li>', '</li>',
     ', ', EndPos));

AddCustomFieldValueByName('Types', HTMLValues(HTML,
                             '<dt>sub-genres</dt>', '</dd>',
     '<li>', '</li>',
     ', ', EndPos));

And these I'm not so sure of...

Code: [Select]
AddCustomFieldValueByName('Released',HTMLValues(HTML,
                             '<dt>release date</dt>', '<dt>run time</dt>',
     '<li>', '</li>',
     '; ', EndPos));

 AddCustomFieldValueByName('Original duration', HTMLValues(HTML,
                             '<dt>run time</dt>', '<dt>produced by</dt>',
     '<dd>', ' min',
     ', ', EndPos)); 

AddFieldValue(mfStudio, HTMLValues(HTML,
                             '<dt>produced by</dt>', '<dt>AMG ID</dt>',
     '<dd>', '</dd>',
     ', ', EndPos));

...They'll fail if the fields don't appear in exactly that order. I'll have to test more to see if this is reliable. :-\

I removed "min." from Run time because my Original duration field is an integer field.

I almost missed Themes, but there it is hiding in plain site in the "explore related movies by" buttons. The code for that...

Code: [Select]
if GET_THEMES then
  AddFieldValue(mfCategory, HTMLValues(HTML,
'>Similarity</button>', '</div>',
'">', '</button>',
', ', EndPos));

We're still missing...


I assume these things are beyond your capabilities as well. Hopefully nostra will have mercy and give us a hand. ;)

[attachment deleted by admin]
Title: Re: AllRovi (movies)
Post by: minolotus on July 10, 2011, 12:24:16 pm
Ivec23 and rick.ca, thank you very much for your excellent work.

Quote
I almost missed Themes, but there it is hiding in plain site in the "explore related movies by" buttons.

I am wondering how the incredible Zac and his gang will handle this in the future. If you take a look at a movie added in the good old days (=before the allrovi launch), the themes are not included in the characteristics (e.g. http://www.allrovi.com/movies/movie/casablanca-v8482). But this seems to be different for movies added recently (e.g. http://www.allrovi.com/movies/movie/horrible-bosses-v517760).  Supposed that they will keep this system, the question arises if a script could compare both fields Themes and Characteristics and remove the matching items from the Characteristics field? IMHO this would reduce the chaos in the Characteristics field.

[Update]: I have just discovered that the items in Chararcteristics and Themes are not allways fully identical (e.g. http://www.allrovi.com/movies/movie/tabloid-v526607: ). So, this would not work very proper and hence I don't think that it is worth to spend time and adjust the scipt as proposed above. >:(

Quote
Cast & Crew: I don't know what you or others might want. I get my people data from IMDb and don't want Rovi data messing that up. So my preference is that the names are captured as Rovi links along with the Role, and the whole thing be saved together in a memo field. That provides a convenient secondary source of credits, along with links to additional people information at the Rovi site.

+1 Good idea.

Quote
Review: I couldn't figure out how to do this, simply because I don't know how to go to another page (i.e., in this case, MoveURL + '/review'). It must be simple, but I'm stumped.

Possible Low-tech solution: If this could not be done within a script, maybe it is possible to build a second script for the reviews only and put both scripts together with a batch file?
Title: Re: AllRovi (movies)
Post by: Ivek23 on July 10, 2011, 02:47:39 pm
Quote
Well done, Ivek! We're almost back in business (if Rovi will ever replace the data that's still missing Roll Eyes ). Some comments...

Thank Rick.ca to praise therefore, users for help and comments

Quote
For Description (aka Synopsis), I prefer the author's name at the end. So I changed it to...

Code: [Select]
TmpStr3 := TextBetween(HTML, '<span>by ', '</span>', True, curPos);
...
AddFieldValue(mfDescription, TmpStr2 + #13 + '—' + TmpStr3);

Each to his taste and liking.

Quote
The HTMLValues function is not being used properly in many places...

Quote from: Scripting Manual
function HTMLValues(const HTML : String; ABegin, AEnd, ItemBegin, ItemEnd : String; ValDelim : String; var Pos : Integer) : String;

Gathers all values from a given text into a string using ValDelim as delimiter. The function searches for ABegin first starting from Pos, from this point it gathers values between ItemBegin and ItemEnd until AEnd is found. The last position is returned in Pos variable.

Parameters:
HTML    text to process
ABegin    substring where the values start (header)
ItemBegin    substring that precedes each single value
ItemEnd    substring that follow each single value
ValDelim    delimiter to use in a resulting string
[in] Pos    from which position in text should the search start (will contain the position of AEnd after execution)

I do not understand everything, but I translated much of this does not help.

Quote
Characteristics, for example, works better with...

Code: [Select]
AddCustomFieldValueByName('Characteristics', HTMLValues(HTML,
                                '<h3>characteristics</h3>', '<div class="promo-frame">',
        '>- ', '</div>', 
        ', ', EndPos));

BTW, Characteristics is rather useless as it is (a mix of other data elements), so I put it in a memo field. That way, the data is easier to see, and cut & paste to other fields (i.e., Attributes, Keywords, Moods) if I so choose.

A more obvious and common use for this function would seem to be the List Item (<li> / </li>)...

Code: [Select]
AddCustomFieldValueByName('Flags', HTMLValues(HTML,
                             '<dt>flags</dt>', '</dd>',
     '<li>', '</li>',
     ', ', EndPos)); 

AddFieldValue(mfGenre, HTMLValues(HTML,
                             '<dt>genres</dt>', '</dd>',
     '<li>', '</li>',
     ', ', EndPos));

AddCustomFieldValueByName('Types', HTMLValues(HTML,
                             '<dt>sub-genres</dt>', '</dd>',
     '<li>', '</li>',
     ', ', EndPos));

Works great one and another.

Quote
And these I'm not so sure of...

Code: [Select]
AddCustomFieldValueByName('Released',HTMLValues(HTML,
                             '<dt>release date</dt>', '<dt>run time</dt>',
     '<li>', '</li>',
     '; ', EndPos));

 AddCustomFieldValueByName('Original duration', HTMLValues(HTML,
                             '<dt>run time</dt>', '<dt>produced by</dt>',
     '<dd>', ' min',
     ', ', EndPos)); 

AddFieldValue(mfStudio, HTMLValues(HTML,
                             '<dt>produced by</dt>', '<dt>AMG ID</dt>',
     '<dd>', '</dd>',
     ', ', EndPos));

It works great too, but here are two things:

1. ) Released
Released under mostly older movies where you will find only Film Release Year - code
Code: [Select]
//Released
 //modified by rick.ca 07/09/2011
  AddCustomFieldValueByName('Released', HTMLValues(HTML,
                             '<dt>released</dt>', '<dt>run time</dt>',
                 '<dd>', '</dd>',
                 ', ', EndPos));

2. ) Release Date
Release date below are mostly recent films where you can find all:
Month, day and year for Release Film - code
 
Code: [Select]
//Release date
 //modified by rick.ca 07/09/2011
  AddCustomFieldValueByName('Released',HTMLValues(HTML,
                             '<dt>release date</dt>', '<dt>run time</dt>',
                 '<li>', '</li>',
                 '; ', EndPos));

3. ) Produced by
Here is the case, then Optional user, but also Produced by 

Basic code
Code: [Select]
//Produced by 
 //modified by Ivek23 and rick.ca 07/09/2011
  AddFieldValue(mfStudio,  HTMLValues(HTML,
                             '<dt>produced by</dt>', '<dt>AMG ID</dt>',
                 '<dd>', '</dd>',
                 ', ', EndPos)); 

I use this code
Code: [Select]
//Produced by 
 //modified by Ivek23 and rick.ca 07/09/2011
  AddCustomFieldValueByName('Studio', HTMLValues(HTML,
                             '<dt>produced by</dt>', '<dt>released by</dt>',
                 '<dd>', '</dd>',
                 ', ', EndPos)); 

Since there are also Released by - my code
 
Code: [Select]
//Released by 
 //modified by Ivek23 07/10/2011
  AddCustomFieldValueByName('Released by',  HTMLValues(HTML,
                             '<dt>released by</dt>', '<dt>AMG ID</dt>',
                 '<dd>', '</dd>',
                 ', ', EndPos)); 


are usually different studios and distributors, which are produced and released.

Quote
I almost missed Themes, but there it is hiding in plain site in the "explore related movies by" buttons. The code for that...

Code: [Select]
if GET_THEMES then
  AddFieldValue(mfCategory, HTMLValues(HTML,
'>Similarity</button>', '</div>',
'">', '</button>',
', ', EndPos));

Thank you for Themes.

Quote
  • Review: I couldn't figure out how to do this, simply because I don't know how to go to another page (i.e., in this case, MoveURL + '/review'). It must be simple, but I'm stumped.


We'll see if we can do something in this for the Review.

Notice:
Adding in the first post new AllRovi Script Version 0.1.0.2
Title: Re: AllRovi (movies)
Post by: Ivek23 on July 10, 2011, 02:50:41 pm
Ivec23 and rick.ca, thank you very much for your excellent work.

Quote
I almost missed Themes, but there it is hiding in plain site in the "explore related movies by" buttons.

Thanks, minolotus
Title: Re: AllRovi (movies)
Post by: Ivek23 on July 10, 2011, 04:02:22 pm
Quote
  • Review: I couldn't figure out how to do this, simply because I don't know how to go to another page (i.e., in this case, MoveURL + '/review'). It must be simple, but I'm stumped.

Quote
We'll see if we can do something in this for the Review.

Here are the codes for the Review which must be:


Code: [Select]
function RemoveTagsEx(AText : String) : String;
var
 B, E : Integer;
begin
 Result := AText;

 B := PosFrom('<', Result, 1);
 E := PosFrom('>', Result, B);

 while (B > 0) AND (B < E) do begin
  Delete(Result, B, E - B + 1);

  B := Pos('<', Result);
  E := Pos('>', Result);
 end;
end;

procedure ParseReview(HTML : String);
var
 curPos, EndPos : Integer;
 TmpStr, TmpStr1, TmpStr2, TmpStr3, TmpStr4, TmpStr5 : String;
 begin
 curPos := Pos('<div class="tab-title">', HTML);
 if curPos < 1 then
  Exit;
 
 LogMessage('Pasrsing review...'); 

//Review
 curPos := PosFrom('<span>', HTML, curPos);
 endPos := PosFrom('</span>', HTML, curPos);
 TmpStr5 := TextBetween(HTML, '<span>', '</span>', True, curPos);

 curPos := PosFrom('<span>by', HTML, curPos);
 endPos := PosFrom('</span>', HTML, curPos);
 TmpStr3 := TextBetween(HTML, '<span>', '</span>', True, curPos);

 curPos := PosFrom('<strong>', HTML, curPos);
 endPos := PosFrom('</strong>', HTML, curPos);
 TmpStr4 := TextBetween(HTML, '<strong>', '</strong>', True, curPos);

 curPos := PosFrom('<p>', HTML, curPos);
 endPos := PosFrom('</p>', HTML, curPos);
 TmpStr := Copy(HTML, curPos, EndPos - curPos);
 TmpStr1 := StringReplace(TmpStr, ' -- ', '—', True, True, False);
 TmpStr2 := StringReplace(TmpStr1, ' --- ', '—', True, True, False);
 TmpStr := StringReplace(TmpStr2, '--', '—', True, True, False);
 TmpStr1 := StringReplace(TmpStr, #13#13#13#13, #13#10#13#10, True, True, False);
 TmpStr2 := RemoveTagsEx(TmpStr1);
 AddCustomFieldValueByName('Review', TmpStr5 + '   ' + TmpStr4 + #13 + TmpStr4 + '   ' + TmpStr3 + #13 + TmpStr2);

end;


procedure ParseMovie(MovieURL : String; HTML : String);
Code: [Select]
//Get URL
 EndPos := Pos('" class="title">', HTML);
 if EndPos > 0 then begin
  curPos := PrevPos('<div class="details"><a href="', HTML, EndPos);
  AddFieldValue(mfURL, Copy(HTML, curPos + 21, EndPos - curPos - 21));
 end else
  AddFieldValue(mfURL, MovieURL);
   AddCustomFieldValueByName('Url', '<link url="' + MovieURL + '">' + MovieURL + '</link>');

//Get Review URL
 if GET_REVIEW then begin
  EndPos := Pos('"><span>review</span>', HTML);
  if EndPos > 0 then begin
   curPos := PrevPos('href="/movies', HTML, EndPos);
   ExtraLinks[smReview] := BASE_URL + Copy(HTML, curPos + 6, EndPos - curPos - 6);
  end; 
 end;

Code: [Select]
if Pos('Search Results for', HTML) > 0 then begin
  ParseSearchResults(HTML);
  Result := prList;
  Exit;
 end else
 if Pos('- Cast, Reviews, Summary, and Awards - AllRovi</title>', HTML) > 0 then
  ParseMovie(URL, HTML)
else
 if Pos('- Review - AllRovi</title>', HTML) > 0 then
  ParseReview(HTML);

Notice:
Adding in the first post new AllRovi Script Version 0.1.0.3
Title: Re: AllRovi (movies)
Post by: Ivek23 on July 10, 2011, 10:08:19 pm
Quote
  • Cast & Crew: I don't know what you or others might want. I get my people data from IMDb and don't want Rovi data messing that up. So my preference is that the names are captured as Rovi links along with the Role, and the whole thing be saved together in a memo field. That provides a convenient secondary source of credits, along with links to additional people information at the Rovi site.

I managed to find a solution and the code for Cast & Crew, but will wait for tomorrow, this is further tested and know for sure that it worked, so please wait for maybe a day or two.

Title: Re: AllRovi (movies)
Post by: rick.ca on July 11, 2011, 02:14:28 am
Thanks very much for your work on this, Ivek. I'm happy I've my Reviews back. :D

I wasn't expecting you to incorporate all my changes, having assumed we would need to maintain our separate versions. I now see that should not be necessary. Where you've used a custom field for something I don't use, I can just ignore it. Where you've used a standard field I get from elsewhere, I can turn it off in my Overwrite fields settings. The only real conflicts are where we treat the actual data differently (e.g., Description). In the attached version, I've added a RICK_CA := True option and then separated my modifications using if RICK_CA then... So unless you plan to do something very unusual, I'm confident we can share the same script. We can use the same technique to add options other users might want.

Having said that, it's still a PITA when we're both making changes at the same time—as we are today. I'm hoping you won't mind once again incorporating my changes. Or if you prefer, I'll merge the two after you've finished with your Cast & Crew addition. That should be easy if that's all you've changed since version 3.

My changes, not including minor editing:


[attachment deleted by admin]
Title: Re: AllRovi (movies)
Post by: rick.ca on July 11, 2011, 02:45:49 am
Ivec23 and rick.ca, thank you very much for your excellent work.

You're welcome. Thanks to Ivek's perseverance, we're making good progress.

Quote
...So, this would not work very proper and hence I don't think that it is worth to spend time and adjust the scipt as proposed above.

Yes, it's almost impossible to figure out what they're doing with "Characteristics," which, of course, is a big part of the problem. Not only does it not work as a "mashup," they're not doing whatever they're doing with any discernible consistency. Attached is my effort to figure it out. I can see some patterns, but my conclusion is there is very good reason why it's useless. More disturbingly, it appears they may be dropping some data elements (Moods and Keywords) entirely. If that's the case, I have little hope any of this data will be restored to it's previous form. :(

Quote
Possible Low-tech solution: If this could not be done within a script, maybe it is possible to build a second script for the reviews only and put both scripts together with a batch file?

Low-tech is a well-used tool in my kit, but it seems Ivek has figured it out. Even when I look at what he did, I don't understand why it works. :-[

[attachment deleted by admin]
Title: Re: AllRovi movie script
Post by: Ivek23 on July 11, 2011, 07:04:08 am
For Cast & Crew

Copy the below procedure ParseReview



Code: [Select]
//Parse Cast
//Modified 09/24/2010 to save entire Cast tab to custom memo field, as well as individual actors.
procedure ParseCast(HTML : String);
var
 curPos, EndPos : Integer;
 TmpStr, TmpStr1 : String;
 Name, Role, URL : String;
begin
 curPos := Pos('<div class="description-box">', HTML);
 if curPos < 1 then
  Exit;
 
 TmpStr := ''; 
             
 EndPos := curPos;
 curPos := PosFrom('http://www.allrovi.com/name/', HTML, curPos);
 while (curPos > 0) AND (curPos < PosFrom('</table>', HTML, EndPos)) do begin
  EndPos := PosFrom('">', HTML, curPos);
   
  URL := Copy(HTML, curPos, EndPos - curPos);
   
  curPos := EndPos + 2;
  EndPos := PosFrom('</a>', HTML, curPos);
   
  Name := Copy(HTML, curPos, EndPos - curPos);
 
  curPos := PosFrom('>', HTML, EndPos);
  if curPos > 0 then begin
   curPos := curPos + 2;
   EndPos := PosFrom('</td>', HTML, curPos);

   Role := Trim(Copy(HTML, curPos +4, EndPos - curPos -4));
  end else begin
   Role := ''; 
   curPos := EndPos;
  end;
   
  AddMoviePerson(Name, '', '', URL, ctActors);
 
  if TmpStr <> '' then
   TmpStr := TmpStr + #13; 
  if URL <> '' then
   TmpStr := TmpStr + '<link url="' + URL + '">';
  TmpStr := TmpStr + Name;
  if Role <> '' then
   TmpStr := TmpStr + ' - ' + Role;

  if URL <> '' then
   TmpStr := TmpStr + '</link>';

  if curPos > 0 then
   curPos := PosFrom('http://www.allrovi.com/name/', HTML, curPos)
  else
   Exit; 
 end;

AddCustomFieldValueByName('Cast', TmpStr); // If you do not exist then the change to:
 AddCustomFieldValueByName('Actors', TmpStr);

curPos := Pos('<div class="profession-box">', HTML);
 if curPos < 1 then
  Exit;

 TmpStr := '';
 
 EndPos := curPos;
 curPos := PosFrom('http://www.allrovi.com/name/', HTML, curPos);
 while (curPos > 0) AND (curPos < PosFrom('</dl>', HTML, EndPos)) do begin
  EndPos := PosFrom('">', HTML, curPos);
   
  URL := 'http://www.allrovi.com/name/' + Copy(HTML, curPos, EndPos - curPos);
   
  curPos := EndPos + 2;
  EndPos := PosFrom('</a>', HTML, curPos);
   
  Name := Copy(HTML, curPos, EndPos - curPos);
 
  curPos := PosFrom('>', HTML, EndPos);
  if curPos > 0 then begin
   curPos := curPos + 2;
   EndPos := PosFrom('</dd>', HTML, curPos);
 
   Role := Trim(Copy(HTML, curPos +4, EndPos - curPos -4));
  end else begin
   Role := ''; 
   curPos := EndPos;
  end;
       
  AddMoviePerson(Name, '', Role, URL, ctProducers);

  if TmpStr <> '' then
   TmpStr := TmpStr + #13; 
  if URL <> '' then
   TmpStr := TmpStr + '<link url="' + URL + '">';
  TmpStr := TmpStr + Name;
  if Role <> '' then
   TmpStr := TmpStr + ' - ' + Role;
  if URL <> '' then
   TmpStr := TmpStr + '</link>';

  if curPos > 0 then
   curPos := PosFrom('http://www.allrovi.com/name/', HTML, curPos)
  else
   Exit; 
 end;

 AddCustomFieldValueByName('Production', TmpStr);
end;

Notice:
Code: [Select]
AddMoviePerson(Name, '', Role, URL, ctProducers);This is only a test there to see how information is transferred


Code: [Select]
[s]GET_CAST = True;[/s]
Code: [Select]
//Get Cast URL
[s]if GET_CAST then begin[/s]
   EndPos := Pos('"><span>cast & crew</span></a>', HTML);
  if EndPos > 0 then begin
   curPos := PrevPos('href="/movies', HTML, EndPos);
   ExtraLinks[smCast] := BASE_URL + Copy(HTML, curPos + 6, EndPos - curPos - 6);
  end;
 [s]end; [/s]

Notice:
Strikethrough may be necessary


Code: [Select]
ParseReview(HTML)
 else
 if Pos('- Cast and Crew - AllRovi</title>', HTML) > 0 then
  ParseCast(HTML):

This is now testing that might find a solution to the Role there because I leave this <td> and this <dd>, but I can not find solution how to remove this.


Notice:
If, however, it might be something, here are the necessary code:

Code: [Select]
procedure ParseCredits(HTML : String);
var
 curPos, EndPos : Integer;
 TmpStr, TmpStr1 : String;
 Name, Role, URL : String;
begin
 curPos := Pos('<div class="profession-box">', HTML);
 if curPos < 1 then
  Exit;

 TmpStr := '';
 
 EndPos := curPos;
 curPos := PosFrom('http://www.allrovi.com/name/', HTML, curPos);
 while (curPos > 0) AND (curPos < PosFrom('</dl>', HTML, EndPos)) do begin
  EndPos := PosFrom('">', HTML, curPos);
   
  URL := 'http://www.allrovi.com/name/' + Copy(HTML, curPos, EndPos - curPos);
   
  curPos := EndPos + 2;
  EndPos := PosFrom('</a>', HTML, curPos);
   
  Name := Copy(HTML, curPos, EndPos - curPos);
 
  curPos := PosFrom('>', HTML, EndPos);
  if curPos > 0 then begin
   curPos := curPos + 2;
   EndPos := PosFrom('</dd>', HTML, curPos);
 
   Role := Trim(Copy(HTML, curPos, EndPos - curPos));
  end else begin
   Role := ''; 
   curPos := EndPos;
  end;
       
  AddMoviePerson(Name, '', Role, URL, ctProducers);

  if TmpStr <> '' then
   TmpStr := TmpStr + #13; 
  if URL <> '' then
   TmpStr := TmpStr + '<link url="' + URL + '">';
  TmpStr := TmpStr + Name;
  if Role <> '' then
   TmpStr := TmpStr + ' - ' + Role;
  if URL <> '' then
   TmpStr := TmpStr + '</link>';

  if curPos > 0 then
   curPos := PosFrom('http://www.allrovi.com/name/', HTML, curPos)
  else
   Exit; 
 end;
 
 AddCustomFieldValueByName('Production', TmpStr);
end;

Code: [Select]
//Get Review URL
 if GET_REVIEW then begin
  EndPos := Pos('"><span>review</span>', HTML);
  if EndPos > 0 then begin
   curPos := PrevPos('href="/movies', HTML, EndPos);
   ExtraLinks[smReview] := BASE_URL + Copy(HTML, curPos + 6, EndPos - curPos - 6);
  end; 
 end;

//Get Cast URL
if GET_CAST then begin
   EndPos := Pos('"><span>cast & crew</span></a>', HTML);
  if EndPos > 0 then begin
   curPos := PrevPos('href="/movies', HTML, EndPos);
   ExtraLinks[smCast] := BASE_URL + Copy(HTML, curPos + 6, EndPos - curPos - 6);
  end;
 end;

Code: [Select]
ParseReview(HTML)
 else
 if Pos('- Cast and Crew - AllRovi</title>', HTML) > 0 then
  ParseCast(HTML)
 else
 if Pos('- Cast and Crew - AllRovi</title>', HTML) > 0 then
  ParseCredits(HTML);

Title: Re: AllRovi movie script
Post by: Ivek23 on July 11, 2011, 03:13:32 pm
Quote
This is now testing that might find a solution to the Role there because I leave this <td> and this <dd>, but I can not find solution how to remove this.

Maybe someone succeeds or help would be welcomed by Nostra.
Title: Re: AllRovi movie script
Post by: Ivek23 on July 11, 2011, 07:31:49 pm
Quote
Thanks very much for your work on this, Ivek. I'm happy I've my Reviews back.
Rick.ca also thank you for the help that the script works better.

Quote
I wasn't expecting you to incorporate all my changes, having assumed we would need to maintain our separate versions. I now see that should not be necessary. Where you've used a custom field for something I don't use, I can just ignore it. Where you've used a standard field I get from elsewhere, I can turn it off in my Overwrite fields settings. The only real conflicts are where we treat the actual data differently (e.g., Description). In the attached version, I've added a RICK_CA := True option and then separated my modifications using if RICK_CA then...

I hope you don 't mind if I added your changes and update the script, but in a good and useful purpose to do better functioning script as well as any other potential users, so I have a proposal to attach your name as a co-author of the script.  Given options
Quote
RICK_CA := True option and then separated my modifications using if RICK_CA then...
this is a very good idea

Quote
So unless you plan to do something very unusual, I'm confident we can share the same script. We can use the same technique to add options other users might want.
Also true

Quote
Having said that, it's still a PITA when we're both making changes at the same time—as we are today. I'm hoping you won't mind once again incorporating my changes. Or if you prefer, I'll merge the two after you've finished with your Cast & Crew addition. That should be easy if that's all you've changed since version 3.

I have nothing against it, even it would be to merge both versions into a single script version to this version would then also be added as an official in the Download section, that would not upset the other two different AllRovi script version, AllMovie script is (would be well placed in the archive or the end of the Download section in the part where there are also other tools, in particular, that at times when he needs it, as I have now, when I worked AllRovi Script ) are not removed because it would certainly come in handy when someone at work was like a new script, I hope you agree with this interpretation.

BTW:
With your permission, these added as a co-author of the script.
Title: Re: AllRovi movie script
Post by: Ivek23 on July 11, 2011, 08:09:59 pm
Rick.ca in Review I made a small change
instead of TmpStr3
Code: [Select]
if RICK_CA then
AddCustomFieldValueByName('Review', TmpStr2 + #13 + '—' + TmpStr3)
 else
AddCustomFieldValueByName('Review',  '  ~~  ' + TmpStr4 + '  ~~  ' + #13 + TmpStr2 + #13 + ' -  ' +   );

is TmpStr5
Code: [Select]
if RICK_CA then
AddCustomFieldValueByName('Review', TmpStr2 + #13 + '—' + TmpStr3)
 else
AddCustomFieldValueByName('Review',  '  ~~  ' + TmpStr4 + '  ~~  ' + #13 + TmpStr2 + #13 + ' -  ' + TmpStr5 );

at the end Review write the correct information Who is (the word by) the author of Review text.
Title: Re: AllRovi movie script
Post by: rick.ca on July 11, 2011, 08:50:47 pm
I have nothing against it, even it would be to merge both versions into a single script version to this version would then also be added as an official in the Download section...

I think it would be better if the Download section had only one script per data source, and included only scripts and data sources that currently work. That's what most users expect to find there. Old, prior version and defunct scripts are still or can be available as attachments to topics like this one—where their current status and purpose can be explained. It would be okay if they were in a separate "Retired Scripts" section, but I doubt nostra would want to maintain such a thing. And users interested in those scripts would still need to find the topic that explains them.

Quote
With your permission, these added as a co-author of the script.

Yes. I look forward to your latest version. I've haven't attempted to add your latest changes (addition of Cast & Crew) to my own. I'd rather just review what you've done and suggest changes to that.
Title: Re: AllRovi movie script
Post by: Ivek23 on July 11, 2011, 09:56:34 pm
Yes. I look forward to your latest version. I've haven't attempted to add your latest changes (addition of Cast & Crew) to my own. I'd rather just review what you've done and suggest changes to that.

Yes

Cast & Crew  I did what was in my power, the result is visible when the data transfer info.

Notice:
Adding in the first post new AllRovi Script Version 0.1.0.4
Title: Re: AllRovi movie script
Post by: rick.ca on July 12, 2011, 02:06:18 am
Quote
Adding in the first post new AllRovi Script Version 0.1.0.4

I believe I've fixed the issues at hand. The changes are documented in the attached script. Please review and modify as you see fit, and post the result as version 5.

I'm pleased so far—see attached screen shot.

Suggested TODO List:


[attachment deleted by admin]
Title: Re: AllRovi movie script
Post by: Ivek23 on July 12, 2011, 05:11:40 am
Characteristics

Sorry Rick.ca , there still is a custom field called Characteristics, but last night because I added a quick change that I can be uploaded, I missed this detail, a custom field called 'Similar Works' I only have to test, because My primary skin I have not managed to add a custom field called Characteristics.
The next version this Details corrected.
Title: Re: AllRovi movie script
Post by: rick.ca on July 12, 2011, 07:03:53 am
Quote
Sorry Rick.ca...

Funny, I did exactly the same thing yesterday, but took it a step further... I tested something "temporarily" using one of my custom fields, then forgot to change it back. When I was sure it was okay, I uploaded the script, and then ran it on about 100 of my movies. It worked perfectly—overwriting the data in my custom field. ::)

I wonder if anyone is going to be willing to test this for us... ;D
Title: Re: AllRovi movie script
Post by: Ivek23 on July 12, 2011, 07:40:58 am
Quote
Sorry Rick.ca...

Funny, I did exactly the same thing yesterday, but took it a step further... I tested something "temporarily" using one of my custom fields, then forgot to change it back. When I was sure it was okay, I uploaded the script, and then ran it on about 100 of my movies. It worked perfectly—overwriting the data in my custom field. ::)

I wonder if anyone is going to be willing to test this for us... ;D

Happens now, the rating here,
Code: [Select]
//Rating
 //Temporary Multiselect list custom field AllRovi rating
  AddCustomFieldValueByName('AllRovi rating', HTMLValues(HTML,
                             '<dt>rovi rating</dt>',  '</dd>',
                 '<li class="star', '"></li>',
                 ', ', EndPos));


//MPAA Rating

but I will not be added in the first post until further add to the script
Awards and Releases.
Title: Re: AllRovi movie script
Post by: Ivek23 on July 12, 2011, 10:17:22 am
I have nothing against it, even it would be to merge both versions into a single script version to this version would then also be added as an official in the Download section, that would not upset the other two different AllRovi script version, AllMovie script is (would be well placed in the archive or the end of the Download section in the part where there are also other tools, in particular, that at times when he needs it, as I have now, when I worked AllRovi Script ) are not removed because it would certainly come in handy when someone at work was like a new script, I hope you agree with this interpretation.

In this  AllMovie script (http://www.videodb.info/forum_en/index.php/topic,2349.msg12540.html#msg12540) in AllMovie Disappeared, Allrovi.com appeared! topic, but I forgot, it is almost identical to the original script for AllMovie Nostra, only what is changed here original url.
Title: Re: AllRovi movie script
Post by: rick.ca on July 12, 2011, 01:13:25 pm
Happens now, the rating here...

Try this...

Code: [Select]
//Rovi Rating
 TmpStr := Trim(HTMLValues(HTML,
'<dt>rovi rating</dt>',  '</dd>',
'<li class="star ', '"></li>',
', ', EndPos));

 L := Length(TmpStr);
 H := LastPos('half', TmpStr);
 if H = 0 then
R := (L + 2)/3
 else
R := (L + 2)/3 - 1;

 AddCustomFieldValueByName('Rovi rating', IntToStr(R));
 LogMessage('Rovi rating: ' + IntToStr(R));

Be sure to define L, H and R as integers (I just added them to the preceding 'var' statement). This converts 1 to 5 stars to a number from 1 to 10 for storing in a custom Rating field named "Rovi rating." I suppose we should add the option to save it in [orating] as well.

This works for 95% of movies. Unfortunately, I have no idea why it doesn't for the other 5%. They all have ratings, and I can't see any difference in the source. Some examples...

Age of Gold (1930) (http://www.allrovi.com/movies/movie/-v27795)
Aileen Wuornos: The Selling of a Serial Killer (1992) (http://www.allrovi.com/movies/movie/-v178250)
All That Heaven Allows (1955) (http://www.allrovi.com/movies/movie/all-that-heaven-allows-v83484)
Along Came a Spider (2001) (http://www.allrovi.com/movies/movie/-v209848)
Asthenic Syndrome (1989) (http://www.allrovi.com/movies/movie/-v141938)
Atalante (1934) (http://www.allrovi.com/movies/movie/latalante-v27800)

Please have a look and see if you can figure it out. Or maybe just confirm that the error rate is really as low as it seems to be—and then we just won't tell anyone about it. ;)
Title: Re: AllRovi movie script
Post by: Ivek23 on July 12, 2011, 04:52:28 pm
Happens now, the rating here...

Try this...

Code: [Select]
//Rovi Rating
 TmpStr := Trim(HTMLValues(HTML,
'<dt>rovi rating</dt>',  '</dd>',
'<li class="star ', '"></li>',
', ', EndPos));

 L := Length(TmpStr);
 H := LastPos('half', TmpStr);
 if H = 0 then
R := (L + 2)/3
 else
R := (L + 2)/3 - 1;

 AddCustomFieldValueByName('Rovi rating', IntToStr(R));
 LogMessage('Rovi rating: ' + IntToStr(R));

Be sure to define L, H and R as integers (I just added them to the preceding 'var' statement). This converts 1 to 5 stars to a number from 1 to 10 for storing in a custom Rating field named "Rovi rating." I suppose we should add the option to save it in [orating] as well.

This works for 95% of movies. Unfortunately, I have no idea why it doesn't for the other 5%. They all have ratings, and I can't see any difference in the source. Some examples...

Age of Gold (1930) (http://www.allrovi.com/movies/movie/-v27795)
Aileen Wuornos: The Selling of a Serial Killer (1992) (http://www.allrovi.com/movies/movie/-v178250)
All That Heaven Allows (1955) (http://www.allrovi.com/movies/movie/all-that-heaven-allows-v83484)
Along Came a Spider (2001) (http://www.allrovi.com/movies/movie/-v209848)
Asthenic Syndrome (1989) (http://www.allrovi.com/movies/movie/-v141938)
Atalante (1934) (http://www.allrovi.com/movies/movie/latalante-v27800)

Please have a look and see if you can figure it out. Or maybe just confirm that the error rate is really as low as it seems to be—and then we just won't tell anyone about it. ;)

Certainly not at my work.

I added a DVD Releases namely,work does not transfer data, Awards I did not and will not even add, unless of course it would Nostra added, because this is my last version, except for some adjustments of course.

Notice:
Adding in the first post new AllRovi Script Version 0.1.0.5
Title: Re: AllRovi movie script
Post by: Ivek23 on July 12, 2011, 07:40:00 pm
Quote
Awards I did not and will not even add,

Even in the old script AllMovie Awards were not there

Code: [Select]
//Rovi Rating
 TmpStr := Trim(HTMLValues(HTML,
'<dt>rovi rating</dt>',  '</dd>',
'<li class="star ', '"></li>',
', ', EndPos));

 AddCustomFieldValueByName('Rovi rating', TmpStr );

This code is for me better info display data in the previous code, but I could not find anything, because I always had a log file reported error, which I could not figure out what was written.
Title: Re: AllRovi movie script
Post by: rick.ca on July 12, 2011, 08:09:12 pm
Certainly not at my work.

I don't understand. Your code is incomplete. The result has to be a numeric which can saved in a Rating (i.e., "stars") field. My code works perfectly except for a small portion of movies.

Quote
This code is for me better info display data in the previous code, but I could not find anything, because I always had a log file reported error, which I could not figure out what was written.

That's fine for your own debugging, but it shouldn't be in the final script.

Quote
Awards I did not and will not even add

I don't care. I probably won't use Awards or Releases. I only suggested they be added because I thought you would want them, and assumed the coding might be similar to that used for Cast & Crew.



I'll test your DVD Releases change, add my Rovi rating section, and post a new version later today.
Title: Re: AllRovi movie script
Post by: Ivek23 on July 12, 2011, 08:30:07 pm
Quote
I'll test your DVD Releases change, add my Rovi rating section, and post a new version later today.

I'll wait for your new version and then I will tomorrow or some day later helped, in my strength and knowledge to solve the problem by Rating.
Title: Re: AllRovi movie script
Post by: minolotus on July 12, 2011, 09:08:12 pm
I trying to test yours script but I think I get lost in with all these codes  :o. I have downloaded the version 0.1.0.5 from Ivek's first post and a version from rick.ca (0.1.0.4). My question is if I have to add custom items to the database? I have added a characteristic memo field and that works. But I am not sure if I need more items to test the full possible range of your scripts.
Title: Re: AllRovi movie script
Post by: Ivek23 on July 12, 2011, 09:46:06 pm
Code: [Select]
(*
//Poster
 curPos := PosFrom('<img class="cover-art" src="', HTML, EndPos);
 if curPos > 0 then begin
  curPos := curPos + Length('<img class="cover-art" src="');
  EndPos := PosFrom('?Partner=allrovi.com', HTML, curPos);
 
  ExtraLinks[smPoster] := Copy(HTML, curPos, EndPos - curPos);
  if Pos('noimage', ExtraLinks[smPoster]) > 0 then
   ExtraLinks[smPoster] := '';
 end;*)

Rick.ca ,I think I've found what part of the problem - Poster.
Now marked like this poster and do test it, then it should work.See also source code for the poster, and you'll see different endings and will need to change this part of the code
Code: [Select]
EndPos := PosFrom('?Partner=allrovi.com', HTML, curPos);
Title: Re: AllRovi movie script
Post by: rick.ca on July 12, 2011, 11:03:52 pm
I added a DVD Releases namely,work does not transfer data...

I seem to be having trouble understanding your English. I thought this meant "DVD Releases does not work," but I did not understand why you would post the script if that were the case. Now I see it indeed does not work. I'll leave the changes in the script, as they seem to do no harm. I assume you intend to fix it. Sorry, I have no idea why it doesn't work.

Quote
I think I've found what part of the problem - Poster.

I don't understand. The Poster code seems to work fine. I've never seen it fail to get a poster.
Or do you mean it somehow prevents DVD Releases from working? Disabling Poster (I assume that's what enclosing the code in "(*...*)" does) does not change anything for me—still no DVD Releases data.


[Edit] Now I get it. Sorry for being dense. Poster was interfering with my Rovi rating. But I can't figure out how to make them both work... ::)
Title: Re: AllRovi movie script
Post by: rick.ca on July 13, 2011, 04:00:41 am

I think I've found what part of the problem - Poster. Now marked like this poster and do test it, then it should work. See also source code for the poster, and you'll see different endings and will need to change this part of the code
Code: [Select]
EndPos := PosFrom('?Partner=allrovi.com', HTML, curPos);

Yes, it took me a very long time to understand, but this was the problem. Hopefully, both Poster and Rovi rating will now always normally work. For reasons I still don't understand, if there is no image then the Rating code will fail. :(

It will only get the poster if it's a JPG, but I haven't seen any other types. And they're all poor quality anyway—so I can't imagine why anyone would care.

As for DVD Releases, you're welcome to finish that or not. I've added the alternative option of adding a link (to the Releases page) to the standard Features field. As I recall discussing in the past, I believe this is better solution anyway. The list of links is not very informative, so an interested user is going to go to the website anyway.
Title: Re: AllRovi movie script
Post by: Ivek23 on July 13, 2011, 04:08:44 am
I added a DVD Releases namely,work does not transfer data...

I seem to be having trouble understanding your English. I thought this meant "DVD Releases does not work," but I did not understand why you would post the script if that were the case. Now I see it indeed does not work. I'll leave the changes in the script, as they seem to do no harm. I assume you intend to fix it. Sorry, I have no idea why it doesn't work.

Quote
I think I've found what part of the problem - Poster.

I don't understand. The Poster code seems to work fine. I've never seen it fail to get a poster.
Or do you mean it somehow prevents DVD Releases from working? Disabling Poster (I assume that's what enclosing the code in "(*...*)" does) does not change anything for me—still no DVD Releases data.


[Edit] Now I get it. Sorry for being dense. Poster was interfering with my Rovi rating. But I can't figure out how to make them both work... ::)

I apologize for my clumsy explanation of Releases (DVD Releases), I will see if anything can be changed, otherwise I'll have a procedure for Releases (DVD Releases) removed from the script.
For the poster will also be figuring out how and what.
Title: Re: AllRovi movie script
Post by: Ivek23 on July 13, 2011, 04:19:56 am
Quote
As for DVD Releases, you're welcome to finish that or not. I've added the alternative option of adding a link (to the Releases page) to the standard Features field. As I recall discussing in the past, I believe this is better solution anyway. The list of links is not very informative, so an interested user is going to go to the website anyway.

Even just a link connection is fine so I
Quote
procedure for Releases (DVD Releases) removed from the script
and such then I will add later gave in first post
Title: Re: AllRovi movie script
Post by: rick.ca on July 13, 2011, 04:50:55 am
Quote
and such then I will add later gave in first post

I will upload my version shortly. Please make your modifications to it—so I don't have to redo mine.

I was just thinking the script might be a tiny bit faster if it didn't have to download and parse Releases. Maybe the solution to whatever is going wrong with the poster routine is to put it into a separate procedure. It looks like the scripting engine was designed to be used that way—as suggested by the smPoster "script mode." If you can do that, and add a GET_POSTER option, the script would be faster for those of use who don't need posters.
Title: Re: AllRovi movie script
Post by: Ivek23 on July 13, 2011, 05:34:47 am
The problem is finding movies where there are at least two films with the same titles find a movie which was first written:
 What I think is so beautiful example Along Came a Spider  (http://www.allrovi.com/search/movies/Along+Came+a+Spider).
Your movie with this title, Looking for which was built in 2001, However, it is found as the first from year 1970. If, however, such as manually added the correct URL is okay
Title: Re: AllRovi movie script
Post by: Ivek23 on July 13, 2011, 07:22:11 am
The problem is finding movies where there are at least two films with the same titles find a movie which was first written:
 What I think is so beautiful example Along Came a Spider  (http://www.allrovi.com/search/movies/Along+Came+a+Spider).
Your movie with this title, Looking for which was built in 2001, However, it is found as the first from year 1970. If, however, such as manually added the correct URL is okay

Try this code ...

Code: [Select]
procedure ParseSearchResults(HTML : String);
var
 curPos, EndPos : Integer;
 Title, Year, URL : String;
begin
 curPos := Pos('<div id="main" class="search-results movies">', HTML);
 if curPos < 1 then
  Exit;
 
 LogMessage('Parsing search results...'); 

  curPos := PosFrom('<a href="http://www.allrovi.com/movies/', HTML, curPos);
 while curPos > 0 do begin
  EndPos := PosFrom('" class="title">', HTML, curPos);
  URL := Copy(HTML, curPos + 31, EndPos - curPos - 31);
 
  URL := BASE_URL + URL;
  curPos := PosFrom('" class="title">', HTML, curPos);
  EndPos := PosFrom('</a>', HTML, curPos);
  Title := Copy(HTML, curPos+16, EndPos - curPos-16);
  EndPos := PosFrom('</dd>', HTML, curPos);
  Year:= ''
 
  AddSearchResult(Title, '', Year, URL, '');

  curPos := PosFrom('" href="/movies/', HTML, curPos);
 end;


 curPos := Pos('<div class="results">', HTML);
 if curPos < 1 then
  Exit;
 
curPos := PosFrom('<a href="http://www.allrovi.com/movies/', HTML, curPos);
 while curPos > 0 do begin
  EndPos := PosFrom('">', HTML, curPos);
  URL := Copy(HTML, curPos + 31, EndPos - curPos - 31);
 
   URL := BASE_URL + URL;

  curPos := PosFrom('">', HTML, curPos);
  EndPos := PosFrom('</a>', HTML, curPos);
  Title := Copy(HTML, curPos+2, EndPos - curPos-2);
  EndPos := PosFrom('</td>', HTML, curPos);
  Year:= ''
 
  AddSearchResult(Title, '', Year, URL, '');

   curPos := PosFrom('" href="/movies/', HTML, curPos);
 end;
end;
Title: Re: AllRovi movie script
Post by: rick.ca on July 13, 2011, 08:11:24 am
Quote
Try this code ...

I just posted version 6, so I'll let you add this to version 7. If it improves the handling of ambiguous titles, that would be great. As I've been testing (generally updating movies already in my database), I've noticed it can make a bad selection from the search results. My old AllMovie+ script did that too, so I thought this might be something we have to live with. It would, of course, be much better if it asked if there were more than one movie in the search results.

Another thing I was wondering... For existing movies previously updated with Allmovies, would it be possible to get the saved Allmovie URL and convert it to a Rovi URL? If so, then a search and this sort of error could be avoided. 8)

There are a few things you should be aware of in version 6...


I'm going to be busy with other things for the rest of the week, but I'll look forward to your updates.

[attachment deleted by admin]
Title: Re: AllRovi movie script
Post by: Ivek23 on July 13, 2011, 11:04:21 am
Quote
Another thing I was wondering... For existing movies previously updated with Allmovies, would it be possible to get the saved Allmovie URL and convert it to a Rovi URL? If so, then a search and this sort of error could be avoided.

I do not know if I have understood this, but I now update  8 Mile (2002) (http://www.allrovi.com/movies/movie/8-mile-v261159), url in the url field has remained, while in the field will be overwritten by custom, add pictures.

[attachment deleted by admin]
Title: Re: AllRovi movie script
Post by: Ivek23 on July 13, 2011, 12:30:46 pm
Quote
I just posted version 6, so I'll let you add this to version 7. If it improves the handling of ambiguous titles, that would be great. As I've been testing (generally updating movies already in my database), I've noticed it can make a bad selection from the search results. My old AllMovie+ script did that too, so I thought this might be something we have to live with. It would, of course, be much better if it asked if there were more than one movie in the search results.

More than one (with at least two similar or same title unless there where only one) movie in the search results.
Title: Re: AllRovi movie script
Post by: rick.ca on July 13, 2011, 01:07:10 pm
Quote
I do not know if I have understood this...

No, that's not what I mean. Using your example, your 8 Mile record now has the AllRovi URL recorded: http://www.allrovi.com/movies/movie/8-mile-v261159. If you run the script again, the function GetDownloadURL (http://www.videodb.info/help/hlp_scripting.html#getdownloadurl) will retrieve that from the record and use it to access the page directly—no search will be done. It's able to select that URL from the URL field—which may contain many URL's—because we've provided the BASE_URL: http://www.allrovi.com.

I don't understand the logic of the script, but there must be a way use this function like this:


Just to be clear, the only thing different here is step 2. And I don't think the script has much to do with step 4—the main application downloads the page (whatever it is) and ParsePage handles it. For the same reason, I have difficulty seeing a point at which step 2 might be inserted. Unless this is straightforward, it's probably not worth the bother. But I think it would be very helpful generally if we understood how things like this work. :-\

BTW, the Scripting Manual has some interesting tidbits hidden in it—like this one:

"If you download poster in a movie information script or a photo in a person information script then make sure URL to an image is passed after all other pages are retrieved!"—found at the end of the GetDownloadURL example.

No wonder I was having such a problem with the Poster messing up the Rating! I did try to move it to the end, but for some reason it then didn't work. Maybe you could give that a try.

Quote
More than one (with at least two similar or same title unless there where only one) movie in the search results.

As long as it doesn't stop and ask when one title is exact but another is "similar."

It's still not clear to me what this is about. If this code presents the search results, what is doing now? Automatically using the first hit, unless it's not similar enough to the search term? Come to think of it, when the dialog appears, it's most often just to confirm one found movie. Seldom, if ever, am I presented with a list to choose from. Anyway—no need to explain. I'll figure it out after you've added it to the script.
Title: Re: AllRovi movie script
Post by: Ivek23 on July 13, 2011, 04:23:43 pm
I trying to test yours script but I think I get lost in with all these codes  :o. I have downloaded the version 0.1.0.5 from Ivek's first post and a version from rick.ca (0.1.0.4). My question is if I have to add custom items to the database? I have added a characteristic memo field and that works. But I am not sure if I need more items to test the full possible range of your scripts.

Sorry for the delay with the response that for those custom fields, what you use and the start script as follows
Code: [Select]
AddCustomFieldValueByName(' ... );for others this
Code: [Select]
AddFieldValue(mf... ); custom fields do not need.
Title: Re: AllRovi movie script
Post by: Ivek23 on July 13, 2011, 04:34:10 pm
Quote
No wonder I was having such a problem with the Poster messing up the Rating! I did try to move it to the end, but for some reason it then didn't work. Maybe you could give that a try.

I modified the Poster and procedures ParseSearchResults
That's all there.

Notice:
Adding in the first post new AllRovi Script Version 0.1.0.7
Quote
I do not know if I have understood this...

No, that's not what I mean. Using your example, your 8 Mile record now has the AllRovi URL recorded: http://www.allrovi.com/movies/movie/8-mile-v261159. If you run the script again, the function GetDownloadURL (http://www.videodb.info/help/hlp_scripting.html#getdownloadurl) will retrieve that from the record and use it to access the page directly—no search will be done. It's able to select that URL from the URL field—which may contain many URL's—because we've provided the BASE_URL: http://www.allrovi.com.

I don't understand the logic of the script, but there must be a way use this function like this:

  • with BASE_URL = 'http://www.allrovi.com';
  • if there is no result, again with BASE_URL = 'http://www.allmovie.com';
  • if a URL is retrieved, then ParsePage (http://www.videodb.info/help/hlp_scripting.html#parsepage);
  • otherwise, do the search.

Just to be clear, the only thing different here is step 2. And I don't think the script has much to do with step 4—the main application downloads the page (whatever it is) and ParsePage handles it. For the same reason, I have difficulty seeing a point at which step 2 might be inserted. Unless this is straightforward, it's probably not worth the bother. But I think it would be very helpful generally if we understood how things like this work. :-\

BTW, the Scripting Manual has some interesting tidbits hidden in it—like this one:

"If you download poster in a movie information script or a photo in a person information script then make sure URL to an image is passed after all other pages are retrieved!"—found at the end of the GetDownloadURL example.


I do this later to see how and what.
Would be generally the script or more for you.
Title: Re: AllRovi movie script
Post by: Ivek23 on July 13, 2011, 06:12:59 pm
I do this later to see how and what.
Would be generally the script or more for you.

In this case, I do not know help, I did not find a script with such a practical case, it would be nice if it could be somehow regulated, maybe we are Nostra mercy and help.
Title: Re: AllRovi movie script
Post by: Ivek23 on July 16, 2011, 08:17:17 pm
I added a procedure ParseDVDReleases and now here are the DVD Links to AllRovi DVD Releases

The annex was also added in txt format Rovi Fields list

Notice:
Adding in the first post new AllRovi Script Version 0.1.0.8
This version, for those which have the same script option, as it is in Rick.ca.

RICK_CA      = True;   //Set to False for default script options

NEW:
I also added in the first post new AllRovi+ Script Version 0.1.0.8
This version, for those which have the same script option, as it is in Rick.ca. (default script options)

RICK_CA      = False;   //Set to False for default script options



Edit: AllRovi+ Script Version 0.1.0.8 has been removed from the first post because the a duplicate script with one minor change.

[attachment deleted by admin]
Title: Re: AllRovi movie script
Post by: deazo on July 18, 2011, 08:40:38 am

 Thanks a lot to both of you Ivek23 and Rick for your efforts, updating my movies right now with this.
Title: Re: AllRovi movie script
Post by: Ivek23 on July 18, 2011, 12:04:57 pm

 Thanks a lot to both of you Ivek23 and Rick for your efforts, updating my movies right now with this.

Welcome
Title: Re: AllRovi movie script
Post by: rick.ca on July 18, 2011, 07:52:52 pm
Using your example, your 8 Mile record now has the AllRovi URL recorded: http://www.allrovi.com/movies/movie/8-mile-v261159. If you run the script again, the function GetDownloadURL (http://www.videodb.info/help/hlp_scripting.html#getdownloadurl) will retrieve that from the record and use it to access the page directly—no search will be done. It's able to select that URL from the URL field—which may contain many URL's—because we've provided the BASE_URL: http://www.allrovi.com.

I don't understand the logic of the script, but there must be a way use this function like this:

  • with BASE_URL = 'http://www.allrovi.com';
  • if there is no result, again with BASE_URL = 'http://www.allmovie.com';
  • if a URL is retrieved, then ParsePage (http://www.videodb.info/help/hlp_scripting.html#parsepage);
  • otherwise, do the search.

Just to be clear, the only thing different here is step 2. And I don't think the script has much to do with step 4—the main application downloads the page (whatever it is) and ParsePage handles it. For the same reason, I have difficulty seeing a point at which step 2 might be inserted. Unless this is straightforward, it's probably not worth the bother. But I think it would be very helpful generally if we understood how things like this work. :-\

Nostra advises me there's a way to do this. He'll help us with that when he finds the time. Although it's not a critical issue, it will make the script much more efficient for databases that already have allmovie URL's. I also look forward to learning the technique involved.  :)
Title: Re: AllRovi movie script
Post by: Ivek23 on July 18, 2011, 08:08:04 pm
Nostra advises me there's a way to do this. He'll help us with that when he finds the time. Although it's not a critical issue, it will make the script much more efficient for databases that already have allmovie URL's. I also look forward to learning the technique involved.  :)

The good news, we are happy to wait for Nostra, to help us.
Title: Re: AllRovi movie script
Post by: rick.ca on July 18, 2011, 08:12:40 pm
Notice:
Adding in the first post new AllRovi Script Version 0.1.0.8
This version, for those which have the same script option, as it is in Rick.ca.

RICK_CA      = True;   //Set to False for default script options

NEW:
I also added in the first post new AllRovi+ Script Version 0.1.0.8
This version, for those which have the same script option, as it is in Rick.ca. (default script options)

RICK_CA      = False;   //Set to False for default script options

It's not necessary to post a new script in which the only difference is an option. This and other such options are intended to be set by the user. If one wishes to use the personal options I've added to the script (they can search for "if RICK_CA then" to see what those are), they will set RICK_CA to 'True'. The reason for doing it this way is so we do not have to maintain two versions of essentially the same script.

I have revised the top post accordingly.
Title: Re: AllRovi movie script
Post by: Ivek23 on July 18, 2011, 08:31:26 pm
I have revised the top post accordingly.

OK, that's right that there is only one version of the script, sorry, I just wanted to help, it would not be necessary to change these settings in the script.
Title: Re: AllRovi movie script
Post by: rick.ca on July 20, 2011, 01:38:36 am
Version 9 attached (and to top post). Just a few minor changes to Ivek's version 8...


[attachment deleted by admin]
Title: Re: AllRovi movie script
Post by: Ivek23 on July 20, 2011, 06:26:53 am
Year in Search Results is the one piece of code which part I am not able to add search result, btw; look at it SCRIPT_VERSION  ,something is not changed.
Title: Re: AllRovi movie script
Post by: Ivek23 on July 20, 2011, 07:20:57 am
I changed only the number of SCRIPT_VERSION
Title: Re: AllRovi movie script
Post by: rick.ca on July 20, 2011, 08:20:28 am
Quote
I changed only the number of SCRIPT_VERSION

Thanks. I changed the attachment to my above post as well.

Year in Search Results is the one piece of code which part I am not able to add search result

That's what I changed. The search results dialog should now include the year.
Title: Re: AllRovi movie script
Post by: Ivek23 on July 20, 2011, 02:59:29 pm
Quote
Year in Search Results is the one piece of code which part I am not able to add search result,
I tried to say that I have not found the correct solution in previous versions to see the year in the search results dialog.

Quote
That's what I changed. The search results dialog should now include the year.
It works.

Title: Re: AllRovi movie script
Post by: minolotus on July 21, 2011, 08:31:46 pm
The annex was also added in txt format Rovi Fields list

Thank you for the file, this has been very helpful.

I have recently started to update my database and the script is running perfect.  :D Thank you very much to both of you, Ivek23 and rick.ca!
Title: Re: AllRovi movie script
Post by: Ivek23 on July 21, 2011, 08:36:24 pm
The annex was also added in txt format Rovi Fields list

Thank you for the file, this has been very helpful.

I have recently started to update my database and the script is running perfect.  :D Thank you very much to both of you, Ivek23 and rick.ca!

We always welcome.
Title: Re: AllRovi movie script
Post by: Ivek23 on July 21, 2011, 08:44:18 pm
The annex was also added in txt format Rovi Fields list

Open the WordPad or anything else, because they might be some changes, as it is written in txt format Rovi Fields list.
Title: Re: AllRovi movie script
Post by: rick.ca on July 21, 2011, 10:05:13 pm
Quote
The annex was also added in txt format Rovi Fields list

This has been added to the script itself—as part of it's "self-documentation." We'll maintain it there.

Code: [Select]
FIELD USE:

Rovi data:          PVD field:          Type:

AMG ID              AMG WID             short text
Category            Work type           multiselect list
Cast                Cast                memo
Characteristics     Characteristics     memo
Country             mfCountry           standard multiselect list *
Director            mfDirector          standard multiselect list *
Flags               Flags               multiselect list
Run time            Run time            number
Genres              mfGenres            standard multiselect list *
MPAA rating         MPAA rating         short text
Produced            mfStudio            standard short string *
Production(crew)    Production          memo
Rovi rating         Rovi rating         rating
Review              Review              memo
Release date        Released            short text (multiple dates)
OR     Released     Released            short text (more common single date)
Releases            mfFeature           standard memo (link to Rovi Releases tab saved)
             OR     DVDs RoviLink       memo (link each Rovi DVD page saved)
Released by         Released by         short text
Synopsis            mfDescription       standard memo
Sub-Genres          Types               multiselect list
Title               mfTitle             standard short text
Year                mfYear              standard number
             OR     Year                short string (or revise code to save as integer)
Themes              Themes              multiselect list
             OR     mfCategory          standard multiselect list (RICK_CA option)
Updated             Updated             long text
URL                 mfURL               standard memo *

* In many cases where data is saved to a standard field,
the script also saves the data to custom field of the same name.
This allows a number of options:

1. Use the data saved to the standard field (normally the default) and ignore the custom field.
Data saved to a non-existent custom field goes nowhere.

2. Ignore the data entirely by disabling the standard field in the "Overwrite fields" options.

3. Add the custom field to PVD and disable the standard field so it's free for use by another plugin or script.

These optional custom fields are named the same as their standard counterparts.
To avoid confusion, you may wish to rename them (i.e., in the script, in PVD and your skin).
For example, change "Year" to "Rovi Year"--so as to not be confused with the standard field used by another source.

Hopefully it will be clear—maybe from the notes at the bottom—this is only meant to point the user in the right direction. There's no avoiding the inherent complexity involved in getting data from a secondary source (most of us will get data from Rovi in addition to a primary source like IMDb). The user must decide what information they want and were to put it. This will very likely involve modifying the script to suit their personal preferences. This is one of the reasons for providing a scripting engine—so options, fields used and minor modifications can be made directly to the script by the user. Other than the standard Overwrite fields options, no script options are available in the UI.
Title: Re: AllRovi movie script
Post by: RazorHall on July 22, 2011, 05:06:37 pm
Hey guys, thanks for your hard work on this script.  I'm having some problems, though.  When I add a new movie, I'm getting information in most fields, but I'm not getting the Rovi Rating, cast, or run time.  I've made no changes to the script itself and made sure that the appropriate boxes are selected in the "overwrite fields" section.  Any idea what might be keeping the above info from being downloaded?
Title: Re: AllRovi movie script
Post by: rick.ca on July 22, 2011, 06:57:16 pm
Quote
but I'm not getting the Rovi Rating, cast, or run time.

These all require custom fields. Have you added them to the database (at Preferences>Movies>Custom items)? Are they of the right type (rating, memo and number)?
Title: Re: AllRovi movie script
Post by: RazorHall on July 22, 2011, 08:45:49 pm
These all require custom fields.

Oh, okay.  So, why are the custom fields needed instead of that info going into the Additional Rating, Actors, and Duration fields as they did with the old AllMovie script?  If this can be explained in simple terms, anyway.   ;)
Title: Re: AllRovi movie script
Post by: rick.ca on July 22, 2011, 09:57:59 pm
Quote
So, why are the custom fields needed instead of that info going into the Additional Rating, Actors, and Duration fields as they did with the old AllMovie script?

The reason is as I explained above. There are all sorts of ways you might want it to work. It's up to the user to modify/configure it according to his particular needs. Having said that, there's a logical reason for the default handling of each of the items you mention...

Rovi rating is not put in [orating] because that's the only field available to a secondary plugin. A script has the option of using a custom field, so that's what's used. If there is no likelihood of ever needing to use a secondary plugin, set the GET_RATING option to 'True' to put it in [orating].

Actors (and other people fields) should be filled by a source that can provide both movie and people data—like IMDb. If you are maintaining people data, mixing sources is a bad idea. If this script is your primary source, set the GET_ACTORS option to 'True' to put it in [Actors].

Run time is that of the original theatrical release. In PVD, [Length] (aka 'Duration') is that of the actual media—as scanned by the program. The very point of getting Rovi's Run time is the two are not necessarily the same. I suppose another use of the data could be to provide a duration for records for which there is no media (e.g., 'Wish list' items). When media is acquired, it would be overwritten. If there's an expressed need, I'll add an option for that.

BTW, in looking at the original Allmovie script, I see it has a "Custom field names to use" section for setting those in script variables. Maybe we should do that, so it would be a little easier for users to change the field names to whatever they want to use. The same variables could also be used to indicate if the default PVD field should be used. Each available data element would be set to 'Default' or '[a custom field name]'. Then the code would be something like...

Code: [Select]
if ROVI_DATA = 'Default' then
       AddFieldValue(mfField, TmpStr)
else
       AddCustomFieldValueByName(ROVI_DATA, TmpStr);

The current "Field Use" documentation could be replaced with a "Fields to Use" section in which all the field variables are set. 8)
Title: Re: AllRovi movie script
Post by: minolotus on July 23, 2011, 08:12:14 pm
Quote
BTW, in looking at the original Allmovie script, I see it has a "Custom field names to use" section for setting those in script variables. Maybe we should do that, so it would be a little easier for users to change the field names to whatever they want to use.

I think this is a good idea.

Another suggestion: Maybe it would be helplful if you start a new topic regarding the allrovi script and this new topic should be sticked to the the top instead of this topic. The new topic should include the current version of the scipt and all basic information for the users, e.g.

- Which information could be downloaded,
- Which PVD fields are used,
- which alternative custom fields could be used, included a short hint how to edit a script and how to add custom fields,
- For further information, suggestions and question a link to this threat.

Even if all the information from above is included in this topic, I suppose that there are several users which may lose track here because of the numbers of posts and the code etc.

It would be a pity if users don’t use your script because they don’t know what features the script includes.

Title: Re: AllRovi movie script
Post by: rick.ca on July 23, 2011, 11:46:27 pm
Quote
Another suggestion: Maybe it would be helplful if you start a new topic regarding the allrovi script...

Maybe I'll do that when the script is "released" and included in the automatic update system. I suppose users seeing it there may appreciate a more concise and easier to find description and instructions. Ideally, however, a script should be fully self-documented. If I'm curious about a script in the update list, I should be able to install it, open it in an editor, see all the necessary instructions, set my personal preferences, and go. To that end, there should be a View/Edit/Configure this script button in Preferences > Plugins that opens the selected script in the default editor. Or just using the existing Configure button would do.
Title: Re: AllRovi movie script
Post by: minolotus on July 24, 2011, 12:04:20 am
I agree, if the information would be avaiable directly in PVD and the configuration could also set in PVD, this would be much better and easier to use.
Title: Re: AllRovi movie script
Post by: RazorHall on July 24, 2011, 06:40:21 am
Thanks!  With the above info I was able to get the script to download most of the data in question exactly as the AllMovie one did.    :D
Title: Re: AllRovi movie script
Post by: rick.ca on July 24, 2011, 09:38:28 am
Quote
Thanks!  With the above info I was able to get the script to download most of the data in question exactly as the AllMovie one did.

You're welcome. Please let us know if you have any problems or comments. I expect there must be some glitches and unforeseen circumstances. Feedback would be helpful.
Title: Re: AllRovi movie script
Post by: RazorHall on July 24, 2011, 03:50:51 pm
I expect there must be some glitches and unforeseen circumstances. Feedback would be helpful.

I haven't noticed any glitches so far.  Of course I really just use the script to get the Rovi Rating and fill in Category and any other fields that the IMDB plugin didn't cover.  Also, on rare occasions IMDB doesn't have the movie I'm looking for in their database, in which case I'll use AllRovi's info.  Right now I can only think of one additional thing I'd like to see, which is the ability to have the run time downloaded into the Duration field, for those who don't use the program to scan actual media.  The IMDB plugin does this, as did the AllMovie, so it'd be nice to have that option.
Title: Re: AllRovi movie script
Post by: rick.ca on July 24, 2011, 05:19:26 pm
Quote
Right now I can only think of one additional thing I'd like to see, which is the ability to have the run time downloaded into the Duration field, for those who don't use the program to scan actual media.

Okay, I'll add that option.
Title: Re: AllRovi movie script
Post by: Ivek23 on July 24, 2011, 06:17:38 pm
Quote
Right now I can only think of one additional thing I'd like to see, which is the ability to have the run time downloaded into the Duration field, for those who don't use the program to scan actual media.

Okay, I'll add that option.

It can also be added Awards hyperlink for custom 'Awards Link' field.
Code: [Select]
//Get Awards URL
 //addwd by Ivek23 07/24/2011 hyperlink to 'Awards' page in custom 'Awards link' field
  EndPos := Pos('"><span>awards</span>', HTML);
  if EndPos > 0 then begin
curPos := PrevPos('href="/movies', HTML, EndPos);
TmpStr := BASE_URL + Copy(HTML, curPos + 6, EndPos - curPos - 6);
  end;

 //AddFieldValue(mfFeatures, '<link url="' + TmpStr + '">Awards</link>');
  AddCustomFieldValueByName('Awards link', '<link url="' + TmpStr + '">Awards</link>');
Title: Re: AllRovi movie script
Post by: rick.ca on July 24, 2011, 09:55:55 pm
Suggested TODO List:
  • Add Rovi Rating to custom field and optionally to [orating]. Beg nostra for help?
  • Add Awards and Releases to custom fields using same technique as Cast & Crew.
  • OMG, is there nothing else? :o
  • Wait for Rovi to add the missing AllMovie data. ::)

Okay. Would we then be at number 3? ;)
Title: Re: AllRovi movie script
Post by: Ivek23 on July 25, 2011, 08:24:04 am
I changed the Run Time it now also works in the standard 'Duration' field and custom 'Run Time' field.


  • OMG, is there nothing else? :o

Okay. Would we then be at number 3? ;)

I do not understand what was meant by this.
Title: Re: AllRovi movie script
Post by: rick.ca on July 25, 2011, 08:41:36 am
Quote
I do not understand what was meant by this.

It means nothing. I was expressing surprise we have run out of things to do. ;)
Title: Re: AllRovi movie script
Post by: Ivek23 on July 25, 2011, 11:55:23 am
Quote
I do not understand what was meant by this.

It means nothing. I was expressing surprise we have run out of things to do. ;)

OK, unfortunate that currently there is not anything new to do with the script.
Title: Re: AllRovi movie script
Post by: minolotus on July 25, 2011, 06:45:16 pm
If you both are bored  :) you may think about adding a trailer field with the link to the trailer?
Title: Re: AllRovi movie script
Post by: rick.ca on July 25, 2011, 10:46:47 pm
Quote
If you both are bored you may think about adding a trailer field with the link to the trailer?

That is the sort of suggestion I was fishing for, but it doesn't look like those links will help. They'll only play in the Flash player used by the website. But, no great loss—they're not of very good quality.
Title: Re: AllRovi movie script
Post by: Ivek23 on July 26, 2011, 06:24:04 am
Switch turns the idea to me, but I did not even find how to do this to the Characteristics additional import those word concepts in Attributes custom field, which were in AllMovie the Attributes category.
Title: Re: AllRovi movie script
Post by: rick.ca on July 26, 2011, 08:10:30 am
There are only 8 values used, so it would be easy to test for them in Characteristics and if found save them in Attributes.

That might be possible for Moods as well. The following 41 values are used in my database. I wonder if that's all of them. Do you have the same list? (Check any record in edit mode.)

Code: [Select]
A Good Cry
A World of Its Own
Abandon All Hope
Adrenaline Rush
Angsty
Bad Taste
Blood and Gore
Button Pushers
Carnal Knowledge
Comedy on the Edge
Estrogen Shot
Eyepoppers
Fantastic Reality
Flames of Passion
Food for Thought
For Love of Country
Gutbusters
Head Trips
High on Emotion
In a Minor Key
In the Mood for Love
Just for Fun
Just for Laughs
Memory Lane
Mindbenders
Mood Enhancers
Nail-biters
Off the Beaten Path
Only Human
Other Dimensions
Pick-Me-Ups
Slow Burn
Spellbinders
Strictly Speaking
Tough Guys
Trashy
Triumph of the Geeks
Triumph of the Spirit
Uncomfortable Viewing
Unloveables
Young and Old Alike

There are far too many terms to do the same thing with Themes—at least with the scripting methods I'm familiar with (*). If that were not the case, it would be possible to  remove Attributes, Moods and Themes, and then the remaining terms in Characteristics would all be Keywords. 8)

* From it's description in the manual, it sounds like a list could be read into an array using ExplodeString(), but I have no idea how the array might be used in a processing loop (that would search Characteristics for every item in the array).
Title: Re: AllRovi movie script
Post by: Ivek23 on July 26, 2011, 09:52:47 am
That might be possible for Moods as well. The following 41 values are used in my database. I wonder if that's all of them. Do you have the same list? (Check any record in edit mode.)

Code: [Select]
A Good Cry
A World of Its Own
Abandon All Hope
Adrenaline Rush
Angsty
Bad Taste
Blood and Gore
Button Pushers
Carnal Knowledge
Comedy on the Edge
Estrogen Shot
Eyepoppers
Fantastic Reality
Flames of Passion
Food for Thought
For Love of Country
Gutbusters
Head Trips
High on Emotion
In a Minor Key
In the Mood for Love
Just for Fun
Just for Laughs
Memory Lane
Mindbenders
Mood Enhancers
Nail-biters
Off the Beaten Path
Only Human
Other Dimensions
Pick-Me-Ups
Slow Burn
Spellbinders
Strictly Speaking
Tough Guys
Trashy
Triumph of the Geeks
Triumph of the Spirit
Uncomfortable Viewing
Unloveables
Young and Old Alike

Code: [Select]
A Good Cry
A World of Its Own
Abandon All Hope
Adrenaline Rush
Angsty
Blood and Gore
Comedy on the Edge
Estrogen Shot
Eyepoppers
Fantastic Reality
Flames of Passion
Food for Thought
For Love of Country
Gutbusters
Head Trips
In a Minor Key
In the Mood for Love
Just for Fun
Memory Lane
Nail-biters
Off the Beaten Path
Only Human
Other Dimensions
Pick-Me-Ups
Slow Burn
Spellbinders
Strictly Speaking
Tough Guys
Trashy
Triumph of the Geeks
Triumph of the Spirit
Young and Old Alike
The same list, but only 32 values ​​on the list because I have a small list of movie in the database.
Title: Re: AllRovi movie script
Post by: minolotus on July 26, 2011, 08:05:05 pm
That is the sort of suggestion I was fishing for, but it doesn't look like those links will help. They'll only play in the Flash player used by the website. But, no great loss—they're not of very good quality.
Yes, you are right. However, my main issue to suggest this was to keep you busy  ;D


That might be possible for Moods as well. The following 41 values are used in my database. I wonder if that's all of them. Do you have the same list? (Check any record in edit mode.)

I have as additional item "button pushers" (e.g. Four Lions, Network).

Quote
If that were not the case, it would be possible to  remove Attributes, Moods and Themes, and then the remaining terms in Characteristics would all be Keywords.

Even if I like the idea to get these fields back, I am not sure if this will work very well as we don't know if they keep these lists for movies release in the future. If they, for example, decide to kick "Tough Guys" from the moods list and replace it by "Very tough guys", we wouldn’t recognise that change. This may cause a slowly progressing data mess-up. An older movie would have as mood "tough guys" but a similar movie recently released would have an entry under characteristics "very tough guys". Sooner or later we will have to ask ourselves how reliable these lists are.

(I think the attributes are an exception as it should be possible to check also in the future if they use these for movies released in the future).
Title: Re: AllRovi movie script
Post by: rick.ca on July 26, 2011, 10:14:11 pm
Quote
Sooner or later we will have to ask ourselves how reliable these lists are.

Yes, I suppose wishful thinking caused me to contradict my previous conclusion...

Yes, it's almost impossible to figure out what they're doing with "Characteristics," which, of course, is a big part of the problem. Not only does it not work as a "mashup," they're not doing whatever they're doing with any discernible consistency. Attached is my effort to figure it out. I can see some patterns, but my conclusion is there is very good reason why it's useless. More disturbingly, it appears they may be dropping some data elements (Moods and Keywords) entirely. If that's the case, I have little hope any of this data will be restored to it's previous form. :(

I think the result would be even worse than you imagine. Those who have used AllMovie in the past will already have Moods, Themes and Keywords. If these haven't been added to Characteristics exactly as they were (or not at all), then even a perfect attempt to extract them will produce a different result. Unless overwrite settings are such that data is only added to empty fields, this would result in overwriting good data with bad. And even then, the new data would be inconsistent with that previously saved for other movies.

The only "safe" way to break Characteristics into it's components would be to use different fields than those previously used by AllMovie scripts. I'm sure no one would want such a cluttered database. Those who have never used AllMovie scripts are unaffected, but they also have less reason to care about breaking-down Characteristics. Maybe an alternative that would partially serve both interests would be to reformat Characteristics so it included subheadings for each of the data types. The result, saved in a memo field, would make a lot more sense than it's existing form.
Title: Re: AllRovi movie script
Post by: rick.ca on July 27, 2011, 02:31:42 am
AllMovie fans will find the attached list of links interesting. Remove the TXT extension and open it in a browser. Now if I could only get the script to save these instead of just the terms... :-\

[attachment deleted by admin]
Title: Re: AllRovi movie script
Post by: rick.ca on July 27, 2011, 10:00:41 am
Version 10 attached (and to top post). Changes:

• added GET_DURATION option to write 'Run time' to mfDuration
• added Ivek's 'Rovi Awards' link
• added 'Attributes' (values pulled from 'Characteristics')

[attachment deleted by admin]
Title: Re: AllRovi movie script
Post by: minolotus on July 27, 2011, 08:33:28 pm
AllMovie fans will find the attached list of links interesting. Remove the TXT extension and open it in a browser. Now if I could only get the script to save these instead of just the terms... :-\

Oh no, that wasn't fair. Now, I have the blues thinking about the good old days with allmovie  :'(

Version 10 attached (and to top post). Changes:
• added 'Attributes' (values pulled from 'Characteristics')

Thanks, that works great. One additional question (I am sure if this has been discussed already): Is it possible to remove these items from the characteristics field?
Title: Re: AllRovi movie script
Post by: rick.ca on July 28, 2011, 01:47:51 am
Quote
Is it possible to remove these items from the characteristics field?

Maybe. I was going to, but wasn't sure how it should be done. I was reluctant to change the content of a field that might be expected to remain the same as the source. (Had I been able to pull it apart completely, I still would have saved the entire Characteristics field intact.) Some may not want to bother with a separate Attributes field, so removing them would have to be optional.

Could I interest you in AllMovie Mood Links instead? ;D
Title: Re: AllRovi movie script
Post by: Ivek23 on July 28, 2011, 05:14:48 am
AllMovie fans will find the attached list of links interesting. Remove the TXT extension and open it in a browser. Now if I could only get the script to save these instead of just the terms... :-\
Thank you for this
Version 10 attached (and to top post). Changes:

• added GET_DURATION option to write 'Run time' to mfDuration
• added Ivek's 'Rovi Awards' link
• added 'Attributes' (values pulled from 'Characteristics')
and this

Quote
Could I interest you in AllMovie Mood Links instead?
Why not, it would be interesting looking at Moods field.
Title: Re: AllRovi movie script
Post by: minolotus on July 28, 2011, 06:22:32 pm
Could I interest you in AllMovie Mood Links instead? ;D

Good reply  ;D
Title: Re: AllRovi movie script
Post by: Ivek23 on July 28, 2011, 06:55:43 pm
For Moods here is code:

Code: [Select]
//Characteristics  
 //modified by rick.ca 07/09/2011
 TmpStr := HTMLValues(HTML,
'<h3>characteristics</h3>', '<div class="promo-frame">',
'>- ', '</div>',
', ', EndPos);
AddCustomFieldValueByName('Characteristics', TmpStr);

//Added by rick.ca 07/26/2011 to pull 'Attributes' from 'Characteristics'
 TmpStr1 := ''
 if Pos('High Artistic Quality', TmpStr) > 0 then TmpStr1 := TmpStr1 + ', ' + 'High Artistic Quality';
 if Pos('High Budget', TmpStr) > 0 then TmpStr1 := TmpStr1 + ', ' + 'High Budget';
 if Pos('High Historical Importance', TmpStr) > 0 then TmpStr1 := TmpStr1 + ', ' + 'High Historical Importance';
 if Pos('High Production Values', TmpStr) > 0 then TmpStr1 := TmpStr1 + ', ' + 'High Production Values';
 if Pos('Low Artistic Quality', TmpStr) > 0 then TmpStr1 := TmpStr1 + ', ' + 'Low Artistic Quality';
 if Pos('Low Budget', TmpStr) > 0 then TmpStr1 := TmpStr1 + ', ' + 'Low Budget';
 if Pos('Low Production Values', TmpStr) > 0 then TmpStr1 := TmpStr1 + ', ' + 'Low Production Values';
 if Pos('Cult Film', TmpStr) > 0 then TmpStr1 := TmpStr1 + ', ' + 'Cult Film';
 if Pos('Sleeper', TmpStr) > 0 then TmpStr1 := TmpStr1 + ', ' + 'Sleeper';
 AddCustomFieldValueByName('Attributes', TmpStr1);


//Added by Ivek23 07/28/2011 to pull 'Moods' from 'Characteristics'
 TmpStr2 := ''
 if Pos('A Good Cry', TmpStr) > 0 then TmpStr2 := TmpStr2 + ', ' + 'A Good Cry';
 if Pos('A World of Its Own', TmpStr) > 0 then TmpStr2 := TmpStr2 + ', ' + 'A World of Its Own';
 if Pos('Abandon All Hope', TmpStr) > 0 then TmpStr2 := TmpStr2 + ', ' + 'Abandon All Hope';
 if Pos('Adrenaline Rush', TmpStr) > 0 then TmpStr2 := TmpStr2 + ', ' + 'Adrenaline Rush';
 if Pos('Angsty', TmpStr) > 0 then TmpStr2 := TmpStr2 + ', ' + 'Angsty';
 if Pos('Bad Taste', TmpStr) > 0 then TmpStr2 := TmpStr2 + ', ' + 'Bad Taste';
 if Pos('Blood and Gore', TmpStr) > 0 then TmpStr2 := TmpStr2 + ', ' + 'Blood and Gore';
 if Pos('Button Pushers', TmpStr) > 0 then TmpStr2 := TmpStr2 + ', ' + 'Button Pushers';
 if Pos('Carnal Knowledge', TmpStr) > 0 then TmpStr2 := TmpStr2 + ', ' + 'Carnal Knowledge';
 if Pos('Comedy on the Edge', TmpStr) > 0 then TmpStr2 := TmpStr2 + ', ' + 'Comedy on the Edge';
 if Pos('Estrogen Shot', TmpStr) > 0 then TmpStr2 := TmpStr2 + ', ' + 'Estrogen Shot';
 if Pos('Eyepoppers', TmpStr) > 0 then TmpStr2 := TmpStr2 + ', ' + 'Eyepoppers';
 if Pos('Fantastic Reality', TmpStr) > 0 then TmpStr2 := TmpStr2 + ', ' + 'Fantastic Reality';
 if Pos('Flames of Passion', TmpStr) > 0 then TmpStr2 := TmpStr2 + ', ' + 'Flames of Passion';
 if Pos('Food for Thought', TmpStr) > 0 then TmpStr2 := TmpStr2 + ', ' + 'Food for Thought';
 if Pos('For Love of Country', TmpStr) > 0 then TmpStr2 := TmpStr2 + ', ' + 'For Love of Country';
 if Pos('Gutbusters', TmpStr) > 0 then TmpStr2 := TmpStr2 + ', ' + 'Gutbusters';
 if Pos('Head Trips', TmpStr) > 0 then TmpStr2 := TmpStr2 + ', ' + 'Head Trips';
 if Pos('High on Emotion', TmpStr) > 0 then TmpStr2 := TmpStr2 + ', ' + 'High on Emotion';
 if Pos('In a Minor Key', TmpStr) > 0 then TmpStr2 := TmpStr2 + ', ' + 'In a Minor Key';
 if Pos('In the Mood for Love', TmpStr) > 0 then TmpStr2 := TmpStr2 + ', ' + 'In the Mood for Love';
 if Pos('Just for Fun', TmpStr) > 0 then TmpStr2 := TmpStr2 + ', ' + 'Just for Fun';
 if Pos('Just for Laughs', TmpStr) > 0 then TmpStr2 := TmpStr2 + ', ' + 'Just for Laughs';
 if Pos('Just for Laughs', TmpStr) > 0 then TmpStr2 := TmpStr2 + ', ' + 'Just for Laughs';
 if Pos('Memory Lane', TmpStr) > 0 then TmpStr2 := TmpStr2 + ', ' + 'Memory Lane';
 if Pos('Mindbenders', TmpStr) > 0 then TmpStr2 := TmpStr2 + ', ' + 'Mindbenders';
 if Pos('Mood Enhancers', TmpStr) > 0 then TmpStr2 := TmpStr2 + ', ' + 'Mood Enhancers';
 if Pos('Nail-biters', TmpStr) > 0 then TmpStr2 := TmpStr2 + ', ' + 'Nail-biters';
 if Pos('Off the Beaten Path', TmpStr) > 0 then TmpStr2 := TmpStr2 + ', ' + 'Off the Beaten Path';
 if Pos('Only Human', TmpStr) > 0 then TmpStr2 := TmpStr2 + ', ' + 'Only Human';
 if Pos('Other Dimensions', TmpStr) > 0 then TmpStr2 := TmpStr2 + ', ' + 'Other Dimensions';
 if Pos('Pick-Me-Ups', TmpStr) > 0 then TmpStr2 := TmpStr2 + ', ' + 'Pick-Me-Ups';
 if Pos('Slow Burn', TmpStr) > 0 then TmpStr2 := TmpStr2 + ', ' + 'Slow Burn';
 if Pos('Spellbinders', TmpStr) > 0 then TmpStr2 := TmpStr2 + ', ' + 'Spellbinders';
 if Pos('Strictly Speaking', TmpStr) > 0 then TmpStr2 := TmpStr2 + ', ' + 'Strictly Speaking';
 if Pos('Thrill Rides', TmpStr) > 0 then TmpStr2 := TmpStr2 + ', ' + 'Thrill Rides';
 if Pos('Tough Guys', TmpStr) > 0 then TmpStr2 := TmpStr2 + ', ' + 'Tough Guys';
 if Pos('Trashy', TmpStr) > 0 then TmpStr2 := TmpStr2 + ', ' + 'Trashy';
 if Pos('Triumph of the Geeks', TmpStr) > 0 then TmpStr2 := TmpStr2 + ', ' + 'Triumph of the Geeks';
 if Pos('Triumph of the Spirit', TmpStr) > 0 then TmpStr2 := TmpStr2 + ', ' + 'Triumph of the Spirit';
 if Pos('Uncomfortable Viewing', TmpStr) > 0 then TmpStr2 := TmpStr2 + ', ' + 'Uncomfortable Viewing';
 if Pos('Unloveables', TmpStr) > 0 then TmpStr2 := TmpStr2 + ', ' + 'Unloveables';
 if Pos('Young and Old Alike', TmpStr) > 0 then TmpStr2 := TmpStr2 + ', ' + 'Young and Old Alike';
 AddCustomFieldValueByName('Moods', TmpStr2);
Title: Re: AllRovi movie script
Post by: rick.ca on July 28, 2011, 10:43:42 pm
Rick.ca, Do you have a problem with the series that AllRovi Movie Script is transferred all the info data, test this one movie (series) Title:  Beverly Hills 90210 [TV Series] (1990) (http://www.allrovi.com/movies/movie/beverly-hills-90210-tv-series-v174845)? If you do not pass, it (will) be moved to the Description tag end of the AMG ID tag in AllRovi script, for me it's working.

I've fixed 'Description' and 'Awards' so if there's no data the field is skipped. I tried but failed to figure out why the data that is available (other than 'Title' and 'Year') is not added for this series record. I hope there's not many others like it. :(

Version 11 attached (and to top post). Changes:

• changed 'Synopsis' to skip if there isn't one
• changed 'Awards' to skip if there are none
• added Ivek's 'Moods' (values pulled from 'Characteristics')
• changed MPAA rating' format to caps without underscores (e.g., 'pg_13' to 'PG13')


[attachment deleted by admin]
Title: Re: AllRovi movie script
Post by: rick.ca on July 30, 2011, 02:21:02 am
Due to overwhelming popular demand...

Version 12 attached (and to top post). Changes:

• added 'Mood links' (hyperlinks to AllMovie mood pages--if available in WayBack archive)
• fixed error in 'Synopsis' preventing it from being saved

'Mood links' are without warranty. They'll work as long as the WayBack Machine (http://wayback.archive.org/web/*/http://www.allmovie.com/explore/mood/*) can find the pages in it's archive. It only has 23 of 41 mood values I'm aware of to begin with. And none of those, of course, will ever be updated. Like 'Moods', values are pulled from the 'Characteristics' field—which doesn't necessarily include all the moods previously assigned by AllMovies. Mood values found in 'Characteristics' for which there is no link are saved as plain text—so the content will be the same as 'Moods'. 'Mood links' must be a memo-type field for the hyperlinks to work.

'Mood links' are not very practical, but provide a small way for us to thumb our noses at Rovi. ;D

[attachment deleted by admin]
Title: Re: AllRovi movie script
Post by: RazorHall on July 30, 2011, 03:48:20 am
Thanks again for your work on this script.  Great stuff!  There is one small issue I'm seeing now and then... As I'm going down my list, updating each movie, occasionally I'll come across one that isn't getting the characteristics information.  The film Ab-Normal Beauty is one example.  Any thoughts on what might be causing this?
Title: Re: AllRovi movie script
Post by: rick.ca on July 30, 2011, 08:05:34 am
Ab Normal Beauty (http://www.allrovi.com/movies/movie/ab-normal-beauty-v331524) suggests a rare situation where there are Characteristics, but nothing at all after them on the tab. The following change will fix that. Hopefully, it will work for everything else too.  :-\

Code: [Select]
//Characteristics 
 //modified by rick.ca 07/29/2011 for records with nothing after 'Characteristics'
 TmpStr := HTMLValues(HTML,
'<h3>characteristics</h3>', '<!--[if !IE 7]><!-->', //ItemEnd was '<div class="promo-frame">'
'>- ', '</div>',
', ', EndPos);
AddCustomFieldValueByName('Characteristics', TmpStr);

Please try this to see if it fixes all the cases where you noticed the problem.
Title: Re: AllRovi movie script
Post by: RazorHall on July 30, 2011, 02:37:35 pm
That did the trick in the vast majority of cases, but the problem still pops up on rare occasions (Bounty Huntress 2, for example).
Title: Re: AllRovi movie script
Post by: Ivek23 on July 30, 2011, 05:26:01 pm
That did the trick in the vast majority of cases, but the problem still pops up on rare occasions (Bounty Huntress 2, for example).

Try this code
Code: [Select]
//Themes (Category)
 //modified by rick.ca 07/09/2011
 //modified by Ivek23 07/30/2011
 TmpStr := HTMLValues(HTML,
'data-typeOp=', '</div>',
'">', '</button>',
', ', EndPos);

if GET_THEMES then
AddFieldValue(mfCategory, TmpStr);
 AddCustomFieldValueByName('Themesr', TmpStr)

This movie 10 Things I Hate About You (1999) (http://www.allrovi.com/movies/movie/10-things-i-hate-about-you-v177526) also has a button "more" there, now that this is already correct, it would not be bad to add the option is what is hidden under the "more" button.

BTW:
It should be Synopsis move the location of the AMG ID,
Code: [Select]
//AMG ID
 AddCustomFieldValueByName('AMG WID', HTMLValues(HTML,
                             '<dt>AMG ID</dt>', '</dd>',
                '<pre>', '</pre>',
                ', ', EndPos));


//Description
//modified by Ivek23 and rick.ca 07/09/2011
 curPos := PosFrom('<span>', HTML, curPos);
 endPos := PosFrom('</span>', HTML, curPos);
 TmpStr5 := TextBetween(HTML, '<span>', '</span>', True, curPos);

 curPos := PosFrom('<span>by', HTML, curPos);
 endPos := PosFrom('</span>', HTML, curPos);
 if RICK_CA then
TmpStr3 := TextBetween(HTML, '<span>by ', '</span>', True, curPos)
 else
TmpStr3 := TextBetween(HTML, '<span>', '</span>', True, curPos);

 curPos := PosFrom('<strong>', HTML, curPos);
 endPos := PosFrom('</strong>', HTML, curPos);
 TmpStr4 := TextBetween(HTML, '<strong>', '</strong>', True, curPos);

 curPos := PosFrom('<p>', HTML, curPos);
 endPos := PosFrom('</p>', HTML, curPos);
 TmpStr := Copy(HTML, curPos, EndPos - curPos);
 TmpStr1 := StringReplace(TmpStr, ' -- ', '—', True, True, False);
 TmpStr2 := StringReplace(TmpStr1, ' --- ', '—', True, True, False);
 TmpStr := StringReplace(TmpStr2, '--', '—', True, True, False);
 TmpStr1 := StringReplace(TmpStr, #13#13#13#13, #13#10#13#10, True, True, False);
 TmpStr2 := RemoveTagsEx(TmpStr1);

 if TmpStr4 = 'synopsis' then
if RICK_CA then
AddFieldValue(mfDescription, TmpStr2 + #13 + '—' + TmpStr3)
else
AddFieldValue(mfDescription, '  ~~  ' + TmpStr4 + '  ~~  ' + #13 + TmpStr2 + #13 + ' - ' + TmpStr3 )          
 else
LogMessage('No Synopsis available');

end;
it will be fine, because I have done so (as well as original AllMovie script Description was at the end) and I have no problems in the functioning of the script and when the later will not more problems.

Edit: .... Description was at the end above procedure ParseSearchResults).
Title: Re: AllRovi movie script
Post by: RazorHall on July 30, 2011, 06:57:16 pm
Try this code

Unfortunately there seems to be no change after using that code.

EDIT: Actually, I see now that it is getting more information into the Category field of some movies, so thanks for that.  :)  Still having the above issue with the Characteristics field on a select few movies, though.
Title: Re: AllRovi movie script
Post by: Ivek23 on July 30, 2011, 08:06:36 pm
Quote
Still having the above issue with the Characteristics field on a select few movies, though.
What are the problems then there.
Title: Re: AllRovi movie script
Post by: RazorHall on July 30, 2011, 08:19:27 pm
What are the problems then there.

It's pretty rare, but I'm finding a few movies that aren't downloading the Characteristics information.  As mentioned above, Bounty Huntress 2 is an example of this.
Title: Re: AllRovi movie script
Post by: Ivek23 on July 30, 2011, 08:51:08 pm

This movie 10 Things I Hate About You (1999) (http://www.allrovi.com/movies/movie/10-things-i-hate-about-you-v177526) also has a button "more" there, now that this is already correct, it would not be bad to add the option is what is hidden under the "more" button.

BTW:
It should be Synopsis move the location of the AMG ID,
Code: [Select]
//AMG ID
 AddCustomFieldValueByName('AMG WID', HTMLValues(HTML,
                             '<dt>AMG ID</dt>', '</dd>',
                '<pre>', '</pre>',
                ', ', EndPos));


//Description
//modified by Ivek23 and rick.ca 07/09/2011
 curPos := PosFrom('<span>', HTML, curPos);
 endPos := PosFrom('</span>', HTML, curPos);
 TmpStr5 := TextBetween(HTML, '<span>', '</span>', True, curPos);

 curPos := PosFrom('<span>by', HTML, curPos);
 endPos := PosFrom('</span>', HTML, curPos);
 if RICK_CA then
TmpStr3 := TextBetween(HTML, '<span>by ', '</span>', True, curPos)
 else
TmpStr3 := TextBetween(HTML, '<span>', '</span>', True, curPos);

 curPos := PosFrom('<strong>', HTML, curPos);
 endPos := PosFrom('</strong>', HTML, curPos);
 TmpStr4 := TextBetween(HTML, '<strong>', '</strong>', True, curPos);

 curPos := PosFrom('<p>', HTML, curPos);
 endPos := PosFrom('</p>', HTML, curPos);
 TmpStr := Copy(HTML, curPos, EndPos - curPos);
 TmpStr1 := StringReplace(TmpStr, ' -- ', '—', True, True, False);
 TmpStr2 := StringReplace(TmpStr1, ' --- ', '—', True, True, False);
 TmpStr := StringReplace(TmpStr2, '--', '—', True, True, False);
 TmpStr1 := StringReplace(TmpStr, #13#13#13#13, #13#10#13#10, True, True, False);
 TmpStr2 := RemoveTagsEx(TmpStr1);

 if TmpStr4 = 'synopsis' then
if RICK_CA then
AddFieldValue(mfDescription, TmpStr2 + #13 + '—' + TmpStr3)
else
AddFieldValue(mfDescription, '  ~~  ' + TmpStr4 + '  ~~  ' + #13 + TmpStr2 + #13 + ' - ' + TmpStr3 )          
 else
LogMessage('No Synopsis available');

end;
it will be fine, because I have done so (as well as original AllMovie script Description was at the end) and I have no problems in the functioning of the script and when the later will not more problems.

Edit: .... Description was at the end above procedure ParseSearchResults).

Do it like this as described here, and you'll see what happens then (btw: the previous version of the script before THIS change what you do, make a copy of your script and save it to a new folder,if anything it would be okay as it should be that you got a copy of the script is still available).
Title: Re: AllRovi movie script
Post by: RazorHall on July 30, 2011, 09:49:43 pm
When I move the AMG ID paragraph to where you have it, and place the "end;" after the Description section, the AllRovi plugin doesn't even show up as an option under Import anymore.   ???
Title: Re: AllRovi movie script
Post by: rick.ca on July 31, 2011, 12:12:47 am
Quote
When I move the AMG ID paragraph to where you have it, and place the "end;" after the Description section, the AllRovi plugin doesn't even show up as an option under Import anymore.

That will happen if the script causes an error in the program. If using the program with the -debug switch (recommended), the script can be recompiled from the Log (on the Help menu). If the Log is not available, restart the program. In either case, the script configuration is reset to the default (i.e., Overwrite fields... will need resetting).
Title: Re: AllRovi movie script
Post by: rick.ca on July 31, 2011, 12:19:33 am
Version 13 attached (and to top post). Changes:

• fixed 'Characteristics' for rare records with nothing after that section
• introduced 'SavedPos' variables for recalling last good 'LastPos' when expected section not found
• added 'Genre links' for option to save Genres in a memo field as links
• changed name of PVD field from 'Types' to 'Sub-Genres' for consistency, and
• added 'Sub-Genre links' for option to save them in a memo field as links

[attachment deleted by admin]
Title: Re: AllRovi movie script
Post by: RazorHall on July 31, 2011, 12:26:38 am
"Could not compile script: AllRovi.psf."  I don't get it.  The only change I made was moving the AMG ID section and putting it exactly where Ivek has it in his post.
Title: Re: AllRovi movie script
Post by: rick.ca on July 31, 2011, 12:40:01 am
The log normally indicates the error preventing the script from being compiled.

But please try version 13. I believe I solved the issue. I've not much interest in figuring out why your changes to a previous version don't work. I have a hard enough time understanding why my latest version works. Or doesn't. ;)
Title: Re: AllRovi movie script
Post by: RazorHall on July 31, 2011, 12:51:36 am
Well, I actually didn't expect you to have any interest in it, since it was something Ivek had suggested, and I was really waiting for him to post a possible solution when he got around to it.  I also didn't realize you'd created a new version when I wrote my previous post, or I wouldn't have wasted time writing it before trying the new version.  ;) But yes, with the latest script those rare titles that weren't getting Characteristics information before are now working correctly.  Thanks!  I'll let you know if I come across any other problems.  By the way, Ivek mentioned earlier in the thread that certain movies at AllRovi have a "More" button, and the program currently isn't downloading those themes shown under "More".  What are the chances the script will eventually be able to get those too?
Title: Re: AllRovi movie script
Post by: rick.ca on July 31, 2011, 02:52:07 am
Quote
I'll let you know if I come across any other problems.

Please do. I'm particularly interested in what my attempts to fix things have broken elsewhere. :P

Quote
By the way, Ivek mentioned earlier in the thread that certain movies at AllRovi have a "More" button, and the program currently isn't downloading those themes shown under "More".  What are the chances the script will eventually be able to get those too?

I might take a shot at that. It doesn't matter to the script, but notice Rovi's treatment seems to be inconsistent. Some records use the 'More' button, others let the buttons wrap to a second line. No, wait—I saw one with a 'More' button on a second line. Maybe it's an editorial decision that the number shown are enough. :-\
Title: Re: AllRovi movie script
Post by: rick.ca on July 31, 2011, 10:19:53 am
Another day, another version... ;)

Version 14 attached (and to top post). Changes:

• changed 'SavedPos' variables to single reference point: 'topPos'
• ...use 'topPos' if required data not found from 'endPos' previously set
• changed 'Themes' to include values behind 'more' button
• changed 'Themes' and 'Characteristics' to remove capitalization of prepositions and conjunctions
• changed 'Characteristics to remove 'Attributes' and 'Moods'

[attachment deleted by admin]
Title: Re: AllRovi movie script
Post by: Ivek23 on July 31, 2011, 12:39:08 pm
1. )
Code: [Select]
//Genres  
 //modified by rick.ca 07/30/2011 to add custom field
 endPos := topPos;
 TmpStr := HTMLValues(HTML,
'<dt>genres</dt>', '</dd>',
'">', '</a></li>',
',  ', endPos);
 AddFieldValue(mfGenre, TmpStr)
 AddCustomFieldValueByName('Genres', TmpStr)
This code does not work for me - does not transfer data info.


2. )
Code: [Select]
//Genres  
 //modified by rick.ca 07/30/2011 to add custom field

 TmpStr := HTMLValues(HTML,
'<dt>genres</dt>', '</dd>',
'">', '</a></li>',
',  ', endPos);
 AddFieldValue(mfGenre, TmpStr)
 AddCustomFieldValueByName('Genres', TmpStr)
While this works for me - the correct data transfer standard info box in the custom field is doubling the first word (example: Drama, Drama, Romance).



3. )
Code: [Select]
//Genres  
 //modified by rick.ca 07/30/2011 to add custom field
 
 TmpStr := HTMLValues2(HTML,
'<dt>genres</dt>', '</dd>',
'<li>', '</li>',
',  ', EndPos);
 AddFieldValue(mfGenre, TmpStr)
AddCustomFieldValueByName('Genres', TmpStr)
This is working properly - the correct data transfer standard info box and in the custom field (example: Drama, Romance).
Title: Re: AllRovi movie script
Post by: RazorHall on July 31, 2011, 02:55:47 pm
I haven't done a lot of testing yet, but have noticed a couple things...

First, in cases where there's a "More" button for themes, the script seems to be getting the first theme under "More" but not any others listed below it.  A step in the right direction, though!  :D

Also, themes for certain films aren't being downloaded.  A few examples are Dark Reality, Street Vengeance, and Hot Target.
Title: Re: AllRovi movie script
Post by: Ivek23 on July 31, 2011, 08:12:01 pm
Quote
First, in cases where there's a "More" button for themes, the script seems to be getting the first theme under "More" but not any others listed below it.  A step in the right direction, though!

This one
Quote
but not any others listed below it
is not true for example  10 Things I Hate About You (1999) (http://www.allrovi.com/movies/movie/10-things-i-hate-about-you-v177526) pass this
Quote
Similarity, High School Life, Love Triangles, Opposites Attract, Schemes and Ruses, Cliques, New Kid in Town, Sibling Relationships
in this code
Code: [Select]
//Themes (Category)
 //modified by rick.ca 07/09/2011
  TmpStr1 :='';
  TmpStr2 :='';
 TmpStr1 := HTMLValues(HTML,
'data-typeOp=', '</div>',
'">', '</button>',
', ', endPos);
 TmpStr2 := HTMLValues(HTML,
'<div class=''morebox''>', 'div></div>',
'''>', '</div>',
', ', endPos);
 if TmpStr2 = '' then
  TmpStr := TmpStr1
 else
  TmpStr := TmpStr1 + ', ' + TmpStr2;
 TmpStr := StringReplace(TmpStr, 'More, ', '', true, true, true);
 TmpStr := StringReplace(TmpStr, ' A ', ' a ', true, false, true);
 TmpStr := StringReplace(TmpStr, ' An ', ' an ', true, false, true);
 TmpStr := StringReplace(TmpStr, ' And ', ' and ', true, false, true);
 TmpStr := StringReplace(TmpStr, ' & ', ' and ', true, false, true);
 TmpStr := StringReplace(TmpStr, ' By ', ' by ', true, false, true);
 TmpStr := StringReplace(TmpStr, ' For ', ' for ', true, false, true);
 TmpStr := StringReplace(TmpStr, ' From ', ' from ', true, false, true);
 TmpStr := StringReplace(TmpStr, ' In ', ' in ', true, false, true);
 TmpStr := StringReplace(TmpStr, ' Into ', ' into ', true, false, true);
 TmpStr := StringReplace(TmpStr, ' Of ', ' of ', true, false, true);
 TmpStr := StringReplace(TmpStr, ' On ', ' on ', true, false, true);
 TmpStr := StringReplace(TmpStr, ' Over ', ' over ', true, false, true);
 TmpStr := StringReplace(TmpStr, ' The ', ' the ', true, false, true);
 TmpStr := StringReplace(TmpStr, ' To ', ' to ', true, false, true);
 TmpStr := StringReplace(TmpStr, ' Under ', ' under ', true, false, true);
 TmpStr := StringReplace(TmpStr, ' With ', ' with ', true, false, true);

 if GET_THEMES then
AddFieldValue(mfCategory, TmpStr);
 AddCustomFieldValueByName('Themes', TmpStr)
However, in the custom field with the same code like this
Quote
Similarity, High School Life, Love Triangles, Opposites Attract, Schemes and Ruses, Schemes and Ruses, Cliques, New Kid in Town, Sibling Relationships
underline is doubled.
Title: Re: AllRovi movie script
Post by: RazorHall on July 31, 2011, 08:34:03 pm
This one is not true with this code

But that's not an official part of the script yet, is it?  So I'd have to go in and replace that section every time a new version was released, yes?  I also don't like that it puts "Similarity" among the themes.
Title: Re: AllRovi movie script
Post by: Ivek23 on July 31, 2011, 09:00:38 pm
This one is not true with this code

But that's not an official part of the script yet, is it?  

It is true that this part of the revised Rick.ca code, since the earlier part of his code, which was transferred there last theme is the "more" button.

So I'd have to go in and replace that section every time a new version was released, yes?
Unfortunately yes, because otherwise you script will not work exactly right.

 I also don't like that it puts "Similarity" among the themes.
Yes, all the theme, which they have written there are also transferred, as well as in the "Similarity" button are there links to Movies.
Title: Re: AllRovi movie script
Post by: rick.ca on August 01, 2011, 02:03:55 am
I think I've fixed everything mentioned. I appreciate the comments, but I hope you guys appreciate how many brain cells this is costing me... ;)

Version 15 attached (and to top post). Changes:

• changed 'Synopsis' to prevent adding of only a copyright notice                               
• added GET_POSTER option                                                                       
• ...use to disable getting poster for one record if bad image URL is causing HTTP 404 error     
• fixed 'Themes' handling of values behind 'more' button (was duplicating/skipping values)       
• fixed 'Themes' handling of lone theme value (i.e., only button under 'Explore Related Movies')
• changed 'Genres' as recommended by Ivek (works for custom field; mfGenres not tested)         
• converted spaces to tabs for script readability and easier editing                         


[attachment deleted by admin]
Title: Re: AllRovi movie script
Post by: rick.ca on August 01, 2011, 02:25:23 am
So I'd have to go in and replace that section every time a new version was released, yes?

I'm not sure what you mean by this. If you're making personal modifications, then keeping it up-to-date can be a PITA. To the extent possible, I recommend doing whatever you can to avoid differences. For example, use the same custom field names as used in the script. (That reminds me—I need to review those to ensure we're using a sensible name in all cases—normally, whatever Rovi calls it.) If there are other essential differences, I recommend using a text editor that does a file comparison. Then you can see the differences and quickly modify one or the other to create an updated personal version.

If you have any modifications you would like to share, we can add them to the script in the same way there are a few RICK_CA options. BTW, I trust no one minds that's 'true' by default. :)
Title: Re: AllRovi movie script
Post by: RazorHall on August 01, 2011, 02:39:25 am
So I'd have to go in and replace that section every time a new version was released, yes?

I'm not sure what you mean by this.

I was referring to Ivek's variation on the code to get those missing themes under the "More" button, a few posts earlier.
Title: Re: AllRovi movie script
Post by: RazorHall on August 01, 2011, 03:25:30 am
Really liking Version 15 so far.   :)

Here's an odd one... I can't get the Rovi Rating to download for the movie Top Model (http://www.allrovi.com/movies/movie/top-model-v130496).  I can easily edit the rating myself, but I've always used the "Additional Rating" field, and where every other movie has "AllMovie Rating" overwritten with "Rovi Rating" as the info is downloaded/updated, this one still shows "AllMovie Rating".

EDIT: Found another one, The Dallas Connection (http://www.allrovi.com/movies/movie/the-dallas-connection-v154289), that's behaving as above.
Title: Re: AllRovi movie script
Post by: rick.ca on August 01, 2011, 07:26:13 am
Quote
Here's an odd one... I can't get the Rovi Rating to download for the movie Top Model.

Although it may seem odd, it does reveal something important. We don't yet have a very good understanding of how the fundamental processing flow of the script is supposed to work. Your Top Model rating is not being updated because nothing is being updated. Following is the ParsePage routine at the end of the script (most of my musings are for my own and Ivek's benefit)...

Code: [Select]
function ParsePage(HTML : String; URL : AnsiString) : Cardinal;
begin
HTML := HTMLToText(HTML);
HTML := StringReplace (HTML, 'http://allrovi.com', 'http://www.allrovi.com', True, True, False);
if Pos('Search Results for', HTML) > 0 then begin
ParseSearchResults(HTML);
Result := prList;
Exit;
end else
if Pos('- Cast, Reviews, Summary, and Awards - AllRovi</title>', HTML) > 0 then
ParseMovie(URL, HTML)
else
if Pos('- Review - AllRovi</title>', HTML) > 0 then
ParseReview(HTML)
else
if Pos('- Cast and Crew - AllRovi</title>', HTML) > 0 then
ParseCast(HTML)
else
if Pos('- Releases - AllRovi</title>', HTML) > 0 then
ParseDVDReleases(HTML);
Mode := NextMode(Mode);

The if-then-else section is testing for possible forms of page title, which presumably indicate what tabs exist on the page. The most common one, "Cast, Reviews, Summary, and Awards," means everything is there. [Edit1: And it seems this is often used even if all the information is not there.] So ParseMovie is called. I don't really understand how, but the other parts somehow get processed in subsequent "Modes." In the case of Top Model, the "Cast and Crew" page title means there's no synopsis or review. So ParseCast is called. It works, but nothing else happens. The if-then-else logic used here is simply wrong and ineffective.

[Edit2:] Sorry. Now I get it. On each change of Mode, a new page (i.e., main, review, cast and crew, releases) is downloaded, and the if-then-else section is testing for which page is loaded. I don't understand why that can't be determined by Mode, but I've tried as see that it can't (or, at least, I couldn't).

Unfortunately, I don't have a clue what to replace it with. If I try an unconditional ParseMovie(URL, HTML), it seems everything is processed three times—once for each of the main page and the two tabs—and the three URLs are saved. My guess is the script doesn't properly follow the original design where each "Mode" is run separately in turn. But it's over my head. If Ivek can't figure it out, we'll need nostra's help (which probably won't come any time soon).

[Edit2:] So the problem is that movies like these examples have main pages with Cast and Crew titles. As a result, ParseCast is done, but ParseMovie is not. Somehow, this situation needs to be detected, and the same page processed by both... :-\

The good news is the proportion of movies affected seems to be very small. Of my 2200 movies, there's only about a dozen for which there's no Cast data. Only six without a Synopsis (one of those is Top Model). Obviously these are rare, and for most of them I wouldn't expect to find much good data anyway. When Rovi's data is incomplete, the quality of what is there often seems questionable. Nevertheless, I would very much like to see the script working properly. It's annoying to have to wonder whether the data retrieved is all there is—or the result of a script error.

Title: Re: AllRovi movie script
Post by: rick.ca on August 01, 2011, 11:46:12 am
Sorry for the ranting. Hopefully this solves the issue. But please do look for more odd-ball movies. If there are any sole 'Review' or 'Releases' pages serving as main pages, I'd like to confirm they're properly handled too.

Version 16 attached (and to top post). Changes:

• fixed handing of issue where 'Cast and Crew' serves as the main page
• ...similar fix for sole 'Review' or 'Releases' pages, but haven't found any yet
• changed 'Poster' so .GIF image is no longer downloaded
• ...normally 'no-poster' placeholders

[attachment deleted by admin]
Title: Re: AllRovi movie script
Post by: minolotus on August 01, 2011, 07:49:12 pm
..., but I hope you guys appreciate how many brain cells this is costing me... ;)
Yes, we do. Thanks again for you effort. The script helps me a lot to keep track of my movies.

And we will keep your lost brain cells in font memory  ;D

A minor issue: I think there is no comment in the script what the rick_ca option includes. The only remark I could find is related to the themes. But looking at the code I assume that this option affects also other thinks? If this is true I would suggest to add a separate comment in the upper part of the script.
Title: Re: AllRovi movie script
Post by: Ivek23 on August 01, 2011, 10:28:28 pm
Quote
Sorry for the ranting.

The following code
Code: [Select]
//Title
//modified by rick.ca 07/10/2011
//modified by Ivek23 08/01/2011
curPos := Pos('<title>', HTML) + Length('<title>');
endPos := PosFrom('- Cast, Reviews, Summary, and Awards - AllRovi</title>', HTML, curPos);
TmpStr1 := Copy(HTML, curPos, endPos - curPos)

if TmpStr1 <> '' then

AddFieldValue(mfTitle, TmpStr1);  
AddCustomFieldValueByName('Title', TmpStr1);

if TmpStr1 <> 'title' then
LogMessage('No Title available')
else

curPos := Pos('<title>', HTML) + Length('<title>');
endPos := PosFrom('- Cast and Crew - AllRovi</title>', HTML, curPos);
TmpStr3 := Copy(HTML, curPos, endPos - curPos)

if TmpStr3 <> '' then

AddFieldValue(mfTitle, TmpStr3);  
AddCustomFieldValueByName('Title', TmpStr3);

is added back to the movie title in the custom field and "Rovi rating" again returns to its place in the rating box. With a similar code would also have movie title also recovered in the "Review or Releases".
Title: Re: AllRovi movie script
Post by: rick.ca on August 02, 2011, 12:19:04 am
And we will keep your lost brain cells in font memory  ;D

That should be enough for the number that survived. I'm NOT a programmer! :-\

Quote
I think there is no comment in the script what the rick_ca option includes.

I assumed you'd search the code for 'RICK_CA' and see what it does, but I suppose this is more humane... ;)

Quote
Please note the existence of 'User Options' in the body of the script below. Set those to 'True' or 'False' as explained there. One of those, RICK_CA, is for the personal preferences of rick.ca, where they differ from those of Ivek23. Those are...

      •   add footers in the form, "—Author" to ~mfDescription~ and ~Review~
      ...used instead of headers.
      
      •   save just a link to 'Releases' page in ~mfFeatures~
      ...used instead of saving entire page to custom field;
      ...as this still requires use of links to view specific DVD information.
      
      •   display LogMessage that these options are being used.

But when I look at this, it seems rather silly. If Ivek would just concede my Description and Review are much prettier than his, we could do away with this confusing option. If the Releases link is not wanted, mfFeatures can be disabled in  Overwrite fields..., so it's not necessary for that. What do you say, Ivek?
Title: Re: AllRovi movie script
Post by: rick.ca on August 02, 2011, 01:45:43 am

The following code...is added back to the movie title in the custom field and "Rovi rating" again returns to its place in the rating box.

Does this work? It seems to, but I don't use either field... :-\

Code: [Select]
//~mfTitle~ or ~Title~

curPos := Pos('<title>', HTML) + Length('<title>');

if Pos('- Cast, Reviews, Summary, and Awards - AllRovi</title>', HTML) > 0 then
endPos := PosFrom('- Cast, Reviews, Summary, and Awards - AllRovi</title>', HTML, curPos)
else
endPos := PosFrom('- Cast and Crew - AllRovi</title>', HTML, curPos);
TmpStr1 := Copy(HTML, curPos, endPos - curPos);

AddFieldValue(mfTitle, TmpStr1); 
AddCustomFieldValueByName('Title', TmpStr1);


//Save start position for Movie data
topPos := PosFrom('<div class="page-heading">', HTML, curPos)


//~mfYear~ or ~Year~

endPos := PosFrom('</span></h1>', HTML, curPos);
curPos := endPos - 5;
TmpStr2 := IntToStr(StrToInt(Copy(HTML, curPos, 4)));

if TmpStr2 = '0' then
TmpStr2 := '';

AddFieldValue(mfYear, TmpStr2);
AddCustomFieldValueByName('Year', TmpStr2);

if TmpStr2 = '' then
TmpStr2 := 'year unknown';

if RICK_CA then
LogMessage('Parsing ' + TmpStr1 + '(' + TmpStr2 + ') using rick.ca script options')
else
LogMessage('Parsing ' + TmpStr1 + '(' + TmpStr2 + ')');

I'm also curious why you need to save a custom Title. Is that because you use mfTitle for titles translated to you native language?

Quote
With a similar code would also have movie title also recovered in the "Review or Releases".

Sorry, I don't understand. Do we need to make further changes? :o
Title: Re: AllRovi movie script
Post by: Ivek23 on August 02, 2011, 06:11:42 am
Quote
But when I look at this, it seems rather silly. If Ivek would just concede my Description and Review are much prettier than his, we could do away with this confusing option.

Description and Review to be only this
Code: [Select]
AddCustomFieldValueByName('Review', TmpStr2 + #13 + '—' + TmpStr3);
and this
Code: [Select]
AddFieldValue(mfDescription, TmpStr2 + #13 + '—' + TmpStr3);
Remove about this one part
Code: [Select]
if RICK_CA then
...
 else
AddCustomFieldValueByName('Review', '  ~~  ' + TmpStr4 + '  ~~  ' + #13 + TmpStr2 + #13 + ' - ' + TmpStr5 );

and this
Code: [Select]
if RICK_CA then
...
 else
AddFieldValue(mfDescription, '  ~~  ' + TmpStr4 + '  ~~  ' + #13 + TmpStr2 + #13 + ' - ' + TmpStr3 );

Quote
If the Releases link is not wanted, mfFeatures can be disabled in  Overwrite fields..., so it's not necessary for that.

I agree, but 'procedure ParseDVDRelease' drop in the script like this
Code: [Select]
(*
procedure ParseDVDReleases(HTML : String);
var
 curPos, EndPos : Integer;
 TmpStr : String;
 Name, Role, Years, Disc, URL : String;
begin
 curPos := Pos('<div class="tabset-content main-tab-pane">', HTML);
 if curPos < 1 then
  Exit;

  TmpStr := '';
  
  EndPos := curPos;
  EndPos := PosFrom('<td class="first">', HTML, curPos);
  curPos := PosFrom('<span>', HTML, EndPos) + 6;
  EndPos := PosFrom('</span>', HTML, curPos);
  Disc := Trim(Copy(HTML, curPos, EndPos - curPos));  
    
  EndPos := curPos;
  curPos := PosFrom('http://www.allrovi.com/movies/movie/', HTML, curPos);
  while (curPos > 0) AND (curPos < PosFrom('</table>', HTML, EndPos)) do begin
   EndPos := PosFrom('">', HTML, curPos);
  
   URL := Copy(HTML, curPos, EndPos - curPos);
  
   curPos := EndPos + 2;
   EndPos := PosFrom('</a>', HTML, curPos);
  
   Name := Copy(HTML, curPos, EndPos - curPos);
  
   curPos := PosFrom('>', HTML, EndPos);
   if curPos > 0 then begin
    curPos := curPos + 2;
    EndPos := PosFrom('</div>', HTML, curPos);
  
   //modified by rick.ca 07/11/2011 to remove unwanted tag
    Role := Copy(Trim(Copy(HTML, curPos + 13, EndPos - curPos - 13)), 20, EndPos - curPos - 19);
   end else begin
    Role := '';  
    curPos := EndPos;
   end;

  EndPos := curPos;
  EndPos := PosFrom('<td>', HTML, curPos);
  curPos := PosFrom('<td>', HTML, EndPos) + 4;
  EndPos := PosFrom('</td>', HTML, curPos);
  Years := Trim(Copy(HTML, curPos, EndPos - curPos));
 
 //modified by rick.ca 07/19/2011 to include only 'Name' in link
   if TmpStr <> '' then
    TmpStr := TmpStr + #13;
   if URL <> '' then
    TmpStr := TmpStr + '<link url="' + URL + '">';
   TmpStr := TmpStr + Name + '</link>';
   if Role <> '' then
    TmpStr := TmpStr + '  •  ' + Role;
   if Years  <> '' then
    TmpStr := TmpStr + '  •  ' +  Years;

   if curPos > 0 then
    curPos := PosFrom('http://www.allrovi.com/movies/movie/', HTML, curPos)
   else
    Exit;  
  end;

  AddCustomFieldValueByName('DVDs RoviLink', TmpStr);
 end;
*)
if anyone would like details for the 'Releases' page.

Quote
I'm also curious why you need to save a custom Title. Is that because you use mfTitle for titles translated to you native language

Not quite so, but the particular movie title is title written in the original title as it is my movie title.
Example of what I mean by that:
My movie title is A Fistful Of Dynamite (A Fistful of Dynamite Australia (imdb display title) / UK / USA (alternative title)), original movie title is Giu la testa (1971) (http://www.imdb.com/title/tt0067140/).

Quote
Quote
With a similar code would also have movie title also recovered in the "Review or Releases".

Sorry, I don't understand. Do we need to make further changes? :o

Only if the location was just a "Review" or "Releases" as was the case for the "Cast & Crew".

Title: Re: AllRovi movie script
Post by: rick.ca on August 02, 2011, 11:18:18 pm
Version 17 attached (and to top post). Changes:

• custom fields enclosed in '~' so easier to find in script with search
• updated 'Field Use' documentation
• changed name of custom fields to comply with Rovi terminology:   
    Rovi Awards   to   Awards
    Work type      to   Category.Rovi   (not to be confused with mfCategory)
    Production      to   Crew
    Rovi DVD       to   Releases
• removed RICK_CA options
• cleaned-up code and removed revision comments

Are we done yet?  ;)

[attachment deleted by admin]
Title: Re: AllRovi movie script
Post by: Ivek23 on August 03, 2011, 05:41:25 am
Quote
Are we done yet?

Let us hope that we AllRovi not prepared some more unpleasant surprise unless of course something positive to add to the script then it is now almost final script correctly for users, which now will not happen to error or confusion about what info data are transferred in standard or custom field.

Now we can say:
This is it and ready for all other registered or unregistered users in the Download section.
Title: Re: AllRovi movie script
Post by: rick.ca on August 03, 2011, 06:59:30 pm
Quote
Let us hope that we AllRovi not prepared some more unpleasant surprise...

I'm not worried. I know my co-author will monitor the situation closely, and make changes before I even realize they're necessary. ;D

Once again, Ivek, thanks very much for your hard work and persistence in making this script possible.

Quote
This is it and ready for all other registered or unregistered users in the Download section.

It should be included in the auto-update system. Nostra would have to explain to us how and where to upload updated scripts. I assume they just need to be put in a particular directory (and it may be the same as that used for files in the Download section), but I don't know. :-\
Title: Re: AllRovi movie script
Post by: Ivek23 on August 03, 2011, 07:44:36 pm
Quote
I'm not worried. I know my co-author will monitor the situation closely, and make changes before I even realize they're necessary.

I will monitor if any changes, unless something unexpected comes in between that I could not.

Quote
Once again, Ivek, thanks very much for your hard work and persistence in making this script possible.

Pleased to meet you and thank you too Rick.ca for substantial help in correcting that right now the script works better and looks for the correct text in it.

Quote
Quote
This is it and ready for all other registered or unregistered users in the Download section.

It should be included in the auto-update system. Nostra would have to explain to us how and where to upload updated scripts. I assume they just need to be put in a particular directory (and it may be the same as that used for files in the Download section), but I don't know.

Would not it be bad that the explain how to upload.



Title: Re: AllRovi movie script
Post by: rick.ca on August 04, 2011, 02:00:40 am
As indicated in the top post...

Quote
This script has now been released and is available via the program's auto-update system. Run Help > Check for updates and choose AllRovi from the list. Post any comments or questions to the Support (http://www.videodb.info/forum_en/index.php/board,1.0.html) forum.

...so locking this topic now.
Title: Re: AllRovi movie script
Post by: Ivek23 on January 07, 2014, 12:11:24 pm
Notice:

AllRovi script does not work anymore.