1818using JsonArray = System . Json . JsonArray ;
1919using JsonObject = System . Json . JsonObject ;
2020// ReSharper disable PropertyCanBeMadeInitOnly.Local
21+ // ReSharper disable StringLiteralTypo
22+ // ReSharper disable UnusedAutoPropertyAccessor.Local
2123
2224// ReSharper disable PossibleMultipleEnumeration
2325
@@ -38,16 +40,15 @@ public sealed class SauceNaoEngine : BaseSearchEngine
3840 private const string ENDPOINT = BASE_URL + "search.php" ;
3941
4042 private readonly RestClient m_client ;
41-
42- // todo
43+
4344
4445 public SauceNaoEngine ( string authentication ) : base ( BASIC_RESULT )
4546 {
4647 m_client = new RestClient ( ENDPOINT ) ;
4748 Authentication = authentication ;
4849 }
4950
50- public SauceNaoEngine ( ) : this ( String . Empty ) { } //todo
51+ public SauceNaoEngine ( ) : this ( String . Empty ) { }
5152
5253 public string Authentication { get ; init ; }
5354
@@ -176,9 +177,9 @@ public override SearchResult GetResult(ImageQuery url)
176177
177178 // aggregate all info for primary result
178179
179- string character = orig . FirstOrDefault ( o => ! String . IsNullOrWhiteSpace ( o . Character ) ) ? . Character ;
180- string creator = orig . FirstOrDefault ( o => ! String . IsNullOrWhiteSpace ( o . Creator ) ) ? . Creator ;
181- string material = orig . FirstOrDefault ( o => ! String . IsNullOrWhiteSpace ( o . Material ) ) ? . Material ;
180+ // string character = orig.FirstOrDefault(o => !String.IsNullOrWhiteSpace(o.Character))?.Character;
181+ // string creator = orig.FirstOrDefault(o => !String.IsNullOrWhiteSpace(o.Creator))?.Creator;
182+ // string material = orig.FirstOrDefault(o => !String.IsNullOrWhiteSpace(o.Material))?.Material;
182183
183184 var extended = orig . AsParallel ( ) . Select ( ConvertToImageResult ) ;
184185
@@ -193,16 +194,15 @@ public override SearchResult GetResult(ImageQuery url)
193194 return sresult ;
194195 }
195196
196- var best = ordered . First ( ) ;
197-
198197 // Copy
199- result . UpdateFrom ( best ) ;
200-
201- result . Characters = character ;
202- result . Artist = creator ;
203- result . Source = material ;
198+ result . UpdateFrom ( ordered . First ( ) ) ;
199+
200+ // result.Characters = character;
201+ // result.Artist = creator;
202+ // result.Source = material;
204203
205- sresult . OtherResults . AddRange ( extended ) ;
204+ sresult . OtherResults . AddRange ( ordered ) ;
205+
206206
207207 if ( ! String . IsNullOrWhiteSpace ( Authentication ) ) {
208208 Debug . WriteLine ( $ "{ Name } API key: { Authentication } ") ;
@@ -214,6 +214,7 @@ public override SearchResult GetResult(ImageQuery url)
214214 }
215215
216216 sresult . PrimaryResult = result ;
217+ sresult . Consolidate ( ) ;
217218
218219 return sresult ;
219220 }
@@ -266,11 +267,11 @@ private static ImageResult ConvertToImageResult(SauceNaoDataResult sn)
266267 {
267268 Url = String . IsNullOrWhiteSpace ( url ) ? default : new Uri ( url ) ,
268269 Similarity = MathF . Round ( sn . Similarity , 2 ) ,
269- Description = sn . WebsiteTitle ,
270- Artist = sn . Creator ,
271- Source = sn . Material ,
272- Characters = sn . Character ,
273- Site = siteName
270+ Description = Strings . NullIfNullOrWhiteSpace ( sn . WebsiteTitle ) ,
271+ Artist = Strings . NullIfNullOrWhiteSpace ( sn . Creator ) ,
272+ Source = Strings . NullIfNullOrWhiteSpace ( sn . Material ) ,
273+ Characters = Strings . NullIfNullOrWhiteSpace ( sn . Character ) ,
274+ Site = Strings . NullIfNullOrWhiteSpace ( siteName )
274275 } ;
275276
276277 return imageResult ;
@@ -289,9 +290,7 @@ private SauceNaoDataResult[] GetDataResults(string url)
289290 req . AddQueryParameter ( "url" , url ) ;
290291
291292 var res = m_client . Execute ( req ) ;
292-
293- //Debug.WriteLine($"{res.StatusCode}");
294-
293+
295294 if ( res . StatusCode == HttpStatusCode . Forbidden ) {
296295 return null ;
297296 }
0 commit comments