@@ -85,6 +85,7 @@ SearchResultItem Parse(INode siz)
8585
8686 private static ( int ? w , int ? h ) ParseResolution ( string resText )
8787 {
88+
8889 string [ ] resFull = resText . Split ( Strings . Constants . MUL_SIGN ) ;
8990
9091 int ? w = null , h = null ;
@@ -157,7 +158,8 @@ public override async Task<SearchResult> GetResultAsync(SearchQuery query, Cance
157158 var otherImages = GetOtherImages ( doc , sr ) ;
158159 sr . Results . AddRange ( otherImages ) ;
159160
160- await ParseExternalInfo ( doc , sr ) ;
161+ var ext = await ParseExternalInfo ( doc , sr ) ;
162+ sr . Results . AddRange ( ext ) ;
161163
162164 //
163165
@@ -186,27 +188,34 @@ public override async Task<SearchResult> GetResultAsync(SearchQuery query, Cance
186188 /// <summary>
187189 /// Parses <em>sites containing information about the image</em>
188190 /// </summary>
189- private static async ValueTask ParseExternalInfo ( IDocument doc , SearchResult r )
191+ private static async ValueTask < IEnumerable < SearchResultItem > > ParseExternalInfo ( IDocument doc , SearchResult r )
190192 {
191- var items = doc . Body . SelectNodes ( "//li[contains(@class,'CbirSites-Item')]" ) ;
193+ var items = doc . Body . SelectNodes ( Serialization . S_Yandex_ExtInfo ) ;
194+ var rg = new List < SearchResultItem > ( items . Count ) ;
192195
193196 foreach ( INode item in items ) {
194197 // var thumb = item.ChildNodes[0];
195198 var info = item . ChildNodes [ 1 ] ;
196199 var title = info . ChildNodes [ 0 ] . TextContent ;
197200 var href = info . ChildNodes [ 0 ] . ChildNodes [ 0 ] . TryGetAttribute ( Serialization . Atr_href ) ;
198- var thumb = item . ChildNodes [ 0 ] . ChildNodes [ 0 ] . TryGetAttribute ( Serialization . Atr_href ) ;
201+ var n = item . ChildNodes [ 0 ] . ChildNodes [ 0 ] ;
202+ var thumb = n . TryGetAttribute ( Serialization . Atr_href ) ;
203+ var res = n . ChildNodes [ 1 ] . TextContent ;
199204
200205 var sri = new SearchResultItem ( r )
201206 {
202207 Title = title ,
203- Url = href
208+ Url = href ,
204209 } ;
205210
211+ ( sri . Width , sri . Height ) = ParseResolution ( res ) ;
212+
206213 sri . Metadata . thumb = thumb ;
207214
208- r . Results . Add ( sri ) ;
215+ rg . Add ( sri ) ;
209216 }
217+
218+ return rg ;
210219 }
211220
212221 public override void Dispose ( ) { }
0 commit comments