SMF - Just Installed!
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?
Quote from: afrocuban on 9 03 June, 2026, 09:54:00 PMQuote"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...
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>
Quote from: afrocuban on 5 03 June, 2026, 05:27:30 PMQuote 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?
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 hereQuote 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.
Quote from: afrocuban on 2 03 June, 2026, 02:22:40 PMI can confirm this. IMDb completely changed html layout for the keywords page.
Here's fixed script for it.
Please let me know if you find out something else.
Quote from: Ivek23 on 9 03 June, 2026, 09:51:15 AMIMDB_Movie_[EN][Selenium]-v4 script does not transfer keyword information. I found this error when I did a quick test, the rest of the script works for now, but I will see when I do more tests. The problem is this title below.
10 Things I Hate About You
Page created in 0.069 seconds with 13 queries.