Recent posts

#41
PVD Python Scripts / Re: PVD Selenium v4.3 All Scri...
Last post by Ivek23 - 4 06 June, 2026, 04:56:51 PM
Below is my slightly corrected and with some corrections and additions to the code IMDB_Movie_[EN][Selenium]-v4.psf script. Some information is now in a nicer form in the fields and therefore has a better appearance.

The IMDB_Movie_[EN][Selenium]-v4 MOD.7z file has been added so that it will be known that it is my version. When the file is unpacked, you will have IMDB_Movie_[EN][Selenium]-v4.psf script.

And this.

All comment fields in the script must be blocked or the comment fields must be removed, otherwise the information will still be written to the comment field, even if you set the option to write to the comment field in the Script Configurator to false.
#42
PVD Python Scripts / Re: PVD Selenium v4.3 All Scri...
Last post by afrocuban - 2 05 June, 2026, 02:23:17 PM
Here's fixed FA Movie Script, FA Related Movies field just got new html layout
#43
PVD Python Scripts / Re: PVD Selenium v4.3 All Scri...
Last post by afrocuban - 10 04 June, 2026, 10:16:59 PM
Quote from: Ivek23 on  4 04 June, 2026, 04:16:20 PMHowever, there was a problem when I selected only the main page in the Script Configurator, the Script Configurator did not save the settings and there was no restart of PVD. It also warned for the PlotSummary page that at least one field associated with this page must be checked. When I checked the fields associated with PlotSummary as well as the PlotSummary additional page, the Script Configurator saved the settings and restarted PVD.
If you don't want plot summary page then you should uncheck ALL of the Parse_xxx_SUMMARY boxes in Configurator and then click on "No" and PVD would restart then. It is not enough to unchek downloading pages only. You need to uncheck parsing those pages too in Configurator. This is the message on that dialog box:
QuoteTo enable downloading the plot summary page by IMDb Movie Script,
you ALSO need to check at least one of the XXX_SUMMARY boxes.
To disable downloading the plot summary page, you also need to uncheck
ALL of the Parse_xxx_SUMMARY boxes.
Press 'Yes' to go back to Configurator and set them accordingly,
or press 'No' to continue restarting PVD with leaving them as they were.
#44
PVD Python Scripts / Re: PVD Selenium v4.3 All Scri...
Last post by afrocuban - 8 04 June, 2026, 08:04:16 PM
Good. Is "trailer" fragile, because not all titles have trailers?
#45
PVD Python Scripts / Re: PVD Selenium v4.3 All Scri...
Last post by Ivek23 - 4 04 June, 2026, 04:16:20 PM
After restarting PVD, I checked the Overwrite Tags option when I selected Main Page Only in the Script Configurator.

However, there was a problem when I selected only the main page in the Script Configurator, the Script Configurator did not save the settings and there was no restart of PVD. It also warned for the PlotSummary page that at least one field associated with this page must be checked. When I checked the fields associated with PlotSummary as well as the PlotSummary additional page, the Script Configurator saved the settings and restarted PVD. Then I checked the Overwrite All Tags option and the keywords from the main page were also transferred.

I also noticed that jondak's Selenium_Chrome_People_Additional_pages_v4.py script may be a little faster at transferring data.

It works with the help of this code in Function ParsePage_IMDBMovieBASE .

Quote//Get ~imdbrating~~IMDB Rating~~IMDBRating~
                ItemValue := TextBetWeenFirst(ItemList,'"worstRating":1,"ratingValue":','},"');  //Strings which opens/closes the data. WEB_SPECIFIC
                //ItemValue := FloatToStr((StrToFloat(ItemValue) * 1));
                AddFieldValueXML('imdbrating',ItemValue);
                AddCustomFieldValueByName('IMDB Rating',ItemValue);
                AddCustomFieldValueByName('IMDBRating',ItemValue);
                LogMessage('Function ParsePage_IMDBMovieBASE - Get result ratingValue ~imdbrating~ (CF~IMDB Rating~~IMDBRating~):|' + ItemValue + '||');
            End;  //If Not (ReferencePageDownloaded) Then Begin should end here
           
            //(*
            If Not (ReferencePageDownloaded) And Not (KeywordsPageDownloaded) Then Begin
                //Get ~tags~ "keywords" (field with multiple values in a comma separated list)
                //curPos := Pos('","keywords":"', HTML);  //WEB_SPECIFIC
                //If 0 < curPos Then Begin
                //    endPos := curPos;
                    //EndPos := PosFrom('","trailer":', HTML, curPos);
                    //ItemValue := HTMLValues(HTML, '"keywords":{', '"TitleKeywordConnection"', '"text":"', '","', ', ', endPos);
                    //ItemValue := TextBetWeen(HTML,'","keywords":"','","trailer":',false,curPos);
                    ItemValue := TextBetWeenFirst(ItemList,'","keywords":"','","');
                    AddFieldValueXML('tags', ItemValue);
                    LogMessage('Function ParsePage_IMDBMovieBASE - Get results Tags:|' + ItemValue + '||');
                //End;  //If 0 < curPos Then Begin should end here
            End;  //If Not (ReferencePageDownloaded) And Not (KeywordsPageDownloaded) Then Begin should end here       
            //*)   
#46
PVD Python Scripts / Re: PVD Selenium v4.3 All Scri...
Last post by afrocuban - 1 04 June, 2026, 01:12:03 PM
Quote from: Ivek23 on  8 04 June, 2026, 08:17:25 AMYes, it's interesting, because I checked it myself, and found everything the same in the source code as stated here. There is something behind the scenes that doesn't let this data be downloaded.
Did you check to Overwrite Tags after restarting PVD (not before!) when choosing Main Page only in Script Configurator?

#47
PVD Python Scripts / Re: PVD Selenium v4.3 All Scri...
Last post by Ivek23 - 8 04 June, 2026, 08:17:25 AM
Quote from: afrocuban on  9 03 June, 2026, 09:54:00 PM
Quote"keywords":{
"TitleKeywordConnection"
"text":"
data-testid="storyline-plot-keywords"
data-testid="storyline-plot-links">
<span class="ipc-chip__text">
</span>


all still exist on a main page and in proper places...

Yes, it's interesting, because I checked it myself, and found everything the same in the source code as stated here. There is something behind the scenes that doesn't let this data be downloaded.

By the way, both your Selenium_Chrome_People_Additional_pages_v4.py script and jondak's Selenium_Chrome_People_Additional_pages_v4.py script work normally.
#48
PVD Python Scripts / Re: PVD Selenium v4.3 All Scri...
Last post by afrocuban - 9 03 June, 2026, 09:54:00 PM
Quote from: Ivek23 on  8 03 June, 2026, 08:39:01 PMMy mistake, between lines 3620 and 3683.
Oh, ok. I was confused for a moment, hahah. I will check that later, although I checked all html layout from the script from that range and it exists on main page, so I am very curious what wouldn't work then
Quote"keywords":{
"TitleKeywordConnection"
"text":"
data-testid="storyline-plot-keywords"
data-testid="storyline-plot-links">
<span class="ipc-chip__text">
</span>


all still exist on a main page and in proper places...
#49
PVD Python Scripts / Re: PVD Selenium v4.3 All Scri...
Last post by Ivek23 - 8 03 June, 2026, 08:39:01 PM
Quote from: afrocuban on  5 03 June, 2026, 05:27:30 PM
Quote from: Ivek23 on  3 03 June, 2026, 03:29:33 PMIn Function ParsePage_IMDBMovieBASE the keyword code between lines 3620 and 3833 still doesn't work unless the data from the Plot Keywords web page is loaded.

Can you provide more details which fields aren't working specifically?

My mistake, between lines 3620 and 3683.

This whole code doesn't work when you want to download keywords from the basic Imdb page, not from the page where all the keywords are displayed.

        If Not (ReferencePageDownloaded) And Not (KeywordsPageDownloaded) Then Begin
            //Get ~tags~ "keywords" (field with multiple values in a comma separated list)
            curPos := Pos('"keywords":{', HTML);  //WEB_SPECIFIC
            If 0 < curPos Then Begin
                endPos := curPos;
                ItemValue := HTMLValues(HTML, '"keywords":{', '"TitleKeywordConnection"', '"text":"', '","', ', ', endPos);
                AddFieldValueXML('tags', ItemValue);
                LogMessage('Function ParsePage_IMDBMovieBASE - Get results Tags:|' + ItemValue + '||');
            End;  //If 0 < curPos Then Begin should end here
        End;  //If Not (ReferencePageDownloaded) And Not (KeywordsPageDownloaded) Then Begin should end here

        If Not (KeywordsPageDownloaded) Then Begin
            //Extract "Plot Keywords" ~tags~ And (CF~Plot Keywords~) information
            curPos := Pos('data-testid="storyline-plot-keywords"', HTML);
            LogMessage('Function ParsePage_IMDBMovieBASE - Get result curPos: #' + IntToStr(curPos) + '|');
            If 0 < curPos Then Begin
                endPos := PosFrom('data-testid="storyline-plot-links">', HTML, curPos);
                LogMessage('Function ParsePage_IMDBMovieBASE - Get result endPos: #' + IntToStr(endPos) + '|');
            End;  //If 0 < curPos Then Begin should end here

            //Check for "no keywords" message
            If (Pos('It looks like we don' + Chr(39) + 't have any Plot Keywords for this title yet.', HTML) > 0) Then Begin
                LogMessage('Function ParsePage_IMDBMovieBASE - Found no keywords message. Exiting...');
            End;  //If (Pos('It looks like we don' + Chr(39) + 't have any Plot Keywords for this title yet.', HTML) > 0) Then Begin should end here

            //Find the position of the keywords chip list
            curPos := PosFrom('<span class="ipc-chip__text">', HTML, curPos);
            If 0 < curPos Then Begin

                //Initialize counters
                updateCount := 0;
                extraCount := 0;

                //Iterate through all <span class="ipc-chip__text"> tags within the section
                While curPos > 0 Do Begin
                    //Stop if the update count reaches the limit
                    If updateCount >= PLOTKEYWORDS_LIMIT Then Break;

                    //Find the end of the current <span>
                    tagendPos := PosFrom('</span>', HTML, curPos);

                    //Extract the keyword text
                    ItemValue := Copy(HTML, curPos + Length('<span class="ipc-chip__text">'), tagendPos - (curPos + Length('<span class="ipc-chip__text">')));

                    //Check if this is a "... more" link
                    If Pos('more', LowerCase(ItemValue)) > 0 Then Begin
                        tmpStr := Trim(StringReplace(ItemValue, 'more', '', True, True, False));
                        extraCount := StrToIntDef(tmpStr, 0);
                    End Else Begin
                        updateCount := updateCount + 1;
                    End;  //If Pos('more', LowerCase(ItemValue)) > 0 Then Begin should end here

                    //Move curPos past the </span> to find the next one
                    curPos := PosFrom('<span class="ipc-chip__text">', HTML, tagendPos);
                End;  //While curPos > 0 Do Begin should end here

                //Calculate total count including "xxx more"
                totalCount := updateCount + extraCount;

                //Use extracted MoviesID and Category to form the link for (CF~Plot Keywords~)
                AddCustomFieldValueByName('Plot Keywords', '<link url="' + MovieURL + 'keywords/">Plot Keywords</link>' + '      ' + Chr(149) + '     Total Plot keywords / Tags (' + IntToStr(totalCount) + ')' + '     ' + Chr(149));
                LogMessage('Function ParsePage_IMDBMoviePLOTKEYWORDS - Added custom field value for Plot Keywords: <link url="' + MovieURL + 'keywords/">Plot Keywords</link>' + '      ' + Chr(149) + '     Total Plot keywords / Tags (' + IntToStr(totalCount) + ')' + '     ' + Chr(149));
            End;  //If 0 < curPos Then Begin should end here
        End;  //If Not (KeywordsPageDownloaded) Then Begin should end here


#50
PVD Python Scripts / Re: PVD Selenium v4.3 All Scri...
Last post by afrocuban - 5 03 June, 2026, 05:27:30 PM
Quote from: Ivek23 on  3 03 June, 2026, 03:29:33 PMIn Function ParsePage_IMDBMovieBASE the keyword code between lines 3620 and 3833 still doesn't work unless the data from the Plot Keywords web page is loaded.

Can you provide more details which fields aren't working specifically?