@@ -32,6 +32,19 @@ public function get(object $page, string $element)
3232
3333 return $ this ->strClean ($ title );
3434 break ;
35+
36+ case "genre " :
37+ $ allGenres = $ dom ->find ($ page , "div[data-testid=genres] a " );
38+ $ genres = [];
39+
40+ if ($ this ->count ($ allGenres )) {
41+ foreach ($ allGenres as $ genre ) {
42+ $ genres [] = $ genre ->find ('span ' )->text ();
43+ }
44+ }
45+
46+ return $ this ->strClean (implode (", " , $ genres ));
47+ break ;
3548
3649 case "year " :
3750 $ patterns = ["section section div div div ul li a " , ".title_wrapper h1 #titleYear a " , ".title_wrapper .subtext a[title='See more release dates'] " ];
@@ -80,14 +93,14 @@ public function get(object $page, string $element)
8093 break ;
8194
8295 case "plot " :
83- $ patterns = ["p[data-testid=plot] div " , ".plot_summary .summary_text " ];
96+ $ patterns = ["p[data-testid=plot] > span[data-testid=plot-xl] " , ".plot_summary .summary_text " ];
8497 $ plot = $ this ->findMatchInPatterns ($ dom , $ page , $ patterns );
8598
8699 return $ this ->strClean ($ plot );
87100 break ;
88101
89102 case "rating " :
90- $ patterns = ["main div[data-testid=hero-title-block__aggregate -rating__score] span " , ".ratings_wrapper .ratingValue span[itemprop=ratingValue] " ];
103+ $ patterns = ["main div[data-testid=hero-rating-bar__aggregate -rating__score] span " , ".ratings_wrapper .ratingValue span[itemprop=ratingValue] " ];
91104 $ rating = $ this ->findMatchInPatterns ($ dom , $ page , $ patterns );
92105
93106 return $ this ->strClean ($ rating );
@@ -139,7 +152,7 @@ public function get(object $page, string $element)
139152 case "cast " :
140153 $ cast = [];
141154 $ findAllCastOld = $ dom ->find ($ page , 'table.cast_list tr ' );
142- $ findAllCast = $ dom ->find ($ page , 'section. title-cast div.title-cast__grid div ' );
155+ $ findAllCast = $ dom ->find ($ page , 'section[data-testid= title-cast] div.title-cast__grid div.ipc-sub-grid div ' );
143156
144157 // Use $findAllCastOld
145158 if ($ this ->count ($ findAllCastOld )) {
@@ -183,6 +196,7 @@ public function get(object $page, string $element)
183196
184197 $ actor = [];
185198 $ actor ["actor " ] = "" ;
199+ $ actor ["avatar " ] = "" ;
186200 $ actor ["actor_id " ] = "" ;
187201 $ actor ["character " ] = "" ;
188202
@@ -191,6 +205,12 @@ public function get(object $page, string $element)
191205 if ($ this ->count ($ actorLink )) {
192206 $ actor ["actor " ] = $ actorLink ->text ;
193207 }
208+
209+ // Avatar
210+ $ actorAvatar = $ castRow ->find ('img.ipc-image ' );
211+ if ($ this ->count ($ actorAvatar )) {
212+ $ actor ["avatar " ] = $ actorAvatar ->getAttribute ('src ' );
213+ }
194214
195215 // Actor ID
196216 $ link = $ castRow ->find ('a ' );
@@ -203,13 +223,14 @@ public function get(object $page, string $element)
203223 }
204224
205225 // Character
206- $ characterLink = $ castRow ->find ('a [data-testid=cast-item-characters-link ] ' );
226+ $ characterLink = $ castRow ->find ('span [data-testid=cast-item-characters-with-as ] ' );
207227 if ($ this ->count ($ characterLink )) {
208228 $ actor ["character " ] = $ characterLink ->text ;
209229 }
210230
211231 $ actor ["character " ] = $ this ->strClean ($ actor ["character " ]);
212232 $ actor ["actor " ] = $ this ->strClean ($ actor ["actor " ]);
233+ $ actor ["avatar " ] = $ this ->strClean ($ actor ["avatar " ]);
213234 $ actor ["actor_id " ] = $ this ->strClean ($ actor ["actor_id " ]);
214235
215236 array_push ($ cast , $ actor );
@@ -369,7 +390,7 @@ public function extractImdbId($str)
369390 */
370391 public function strClean ($ string )
371392 {
372- return empty ($ string ) ? "" : str_replace (chr (194 ).chr (160 ), '' , html_entity_decode (trim ($ string )));
393+ return empty ($ string ) ? "" : str_replace (chr (194 ).chr (160 ), '' , html_entity_decode (trim ($ string ), ENT_QUOTES ));
373394 }
374395
375396 /**
0 commit comments