@@ -23,7 +23,7 @@ public YandexEngine() : base("https://yandex.com/images/search?rpt=imageview&url
2323
2424 private struct YandexResult : ISearchResult
2525 {
26- public bool Filter { get ; set ; }
26+ public bool Filter { get ; set ; }
2727 public float ? Similarity { get ; set ; }
2828
2929 public int ? Width { get ; set ; }
@@ -47,7 +47,7 @@ internal YandexResult(int width, int height, string url)
4747
4848 public override string ToString ( )
4949 {
50- return String . Format ( "{0 }x{1 } {2 } [{3:N}]" , Width , Height , Url , ( ( ISearchResult ) this ) . FullResolution ) ;
50+ return $ " { Width } x{ Height } { Url } [{ ( ( ISearchResult ) this ) . FullResolution : N } ]" ;
5151 }
5252 }
5353
@@ -66,33 +66,42 @@ private static ISearchResult[] FilterAndSelectBestImages(List<ISearchResult> rg)
6666
6767 private static string GetYandexAnalysis ( HtmlDocument doc )
6868 {
69- var nodes = doc . DocumentNode . SelectNodes ( "//div[contains(@class, 'Tags_type_simple')]/*" ) ;
69+ const string TAGS_XP = "//div[contains(@class, 'Tags_type_simple')]/*" ;
7070
71+ var nodes = doc . DocumentNode . SelectNodes ( TAGS_XP ) ;
7172
72- var appearsToContain = nodes . Select ( n=> n . InnerText ) . QuickJoin ( ) ;
73-
73+ string ? appearsToContain = nodes . Select ( n => n . InnerText ) . QuickJoin ( ) ;
7474
7575 return appearsToContain ;
7676 }
7777
78+
7879 private static List < ISearchResult > GetYandexImages ( HtmlDocument doc )
7980 {
80- var tagsItem = doc . DocumentNode . SelectNodes ( "//a[contains(@class, 'Tags-Item')]" ) ;
81+ const string TAGS_ITEM_XP = "//a[contains(@class, 'Tags-Item')]" ;
82+
83+ const string CBIR_ITEM = "CbirItem" ;
84+
85+
86+ var tagsItem = doc . DocumentNode . SelectNodes ( TAGS_ITEM_XP ) ;
8187
8288 var sizeTags = tagsItem . Where ( sx =>
83- ! sx . ParentNode . ParentNode . Attributes [ "class" ] . Value . Contains ( "CbirItem" ) ) ;
89+ ! sx . ParentNode . ParentNode . Attributes [ "class" ] . Value . Contains ( CBIR_ITEM ) ) ;
8490
91+
8592
8693 var images = new List < ISearchResult > ( ) ;
8794
8895 foreach ( var siz in sizeTags ) {
89- var link = siz . Attributes [ "href" ] . Value ;
96+ string ? link = siz . Attributes [ "href" ] . Value ;
9097
91- var resText = siz . FirstChild . InnerText ;
92- var resFull = resText . Split ( '×' ) ;
93- var w = Int32 . Parse ( resFull [ 0 ] ) ;
94- var h = Int32 . Parse ( resFull [ 1 ] ) ;
95- var totalRes = w * h ;
98+ string ? resText = siz . FirstChild . InnerText ;
99+
100+ string [ ] ? resFull = resText . Split ( Formatting . MUL_SIGN ) ;
101+
102+ int w = Int32 . Parse ( resFull [ 0 ] ) ;
103+ int h = Int32 . Parse ( resFull [ 1 ] ) ;
104+ int totalRes = w * h ;
96105
97106 if ( totalRes >= TOTAL_RES_MIN ) {
98107 var restRes = Network . GetSimpleResponse ( link ) ;
@@ -103,9 +112,6 @@ private static List<ISearchResult> GetYandexImages(HtmlDocument doc)
103112 images . Add ( yi ) ;
104113 }
105114 }
106-
107-
108- // todo
109115 }
110116
111117 return images ;
@@ -116,20 +122,20 @@ public override FullSearchResult GetResult(string url)
116122 // todo: slow
117123
118124 var sr = base . GetResult ( url ) ;
119-
125+
120126 try {
121127
122128 // Get more info from Yandex
123129
124- var html = Network . GetString ( sr . RawUrl ) ;
125- var doc = new HtmlDocument ( ) ;
130+ string ? html = Network . GetString ( sr . RawUrl ) ;
131+ var doc = new HtmlDocument ( ) ;
126132 doc . LoadHtml ( html ) ;
127133
128134 /*
129135 * Parse what the image looks like
130136 */
131137
132- var looksLike = GetYandexAnalysis ( doc ) ;
138+ string ? looksLike = GetYandexAnalysis ( doc ) ;
133139 sr . Caption = looksLike ;
134140
135141
@@ -143,9 +149,9 @@ public override FullSearchResult GetResult(string url)
143149
144150 //
145151 var best = images [ 0 ] ;
146- sr . Width = best . Width ;
152+ sr . Width = best . Width ;
147153 sr . Height = best . Height ;
148- sr . Url = best . Url ;
154+ sr . Url = best . Url ;
149155
150156
151157 sr . AddExtendedResults ( bestImages ) ;
0 commit comments