Skip to content

Commit ade60dd

Browse files
committed
Misc improvements
1 parent 1272f70 commit ade60dd

File tree

15 files changed

+106
-55
lines changed

15 files changed

+106
-55
lines changed

SmartImage.Lib/Engines/BaseSearchEngine.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ protected BaseSearchEngine(string baseUrl)
2828

2929
public virtual string Name => EngineOption.ToString();
3030

31-
3231
public virtual TimeSpan Timeout { get; set; } = TimeSpan.FromSeconds(3);
3332

3433
public virtual SearchResult GetResult(ImageQuery query)
@@ -81,7 +80,7 @@ public Uri GetRawResultUri(ImageQuery query)
8180
// return null;
8281
//}
8382

84-
if (!Network.IsAlive(uri, (long) Timeout.TotalMilliseconds)) {
83+
if (!Network.IsAlive(uri, (int) Timeout.TotalMilliseconds)) {
8584
Debug.WriteLine($"{Name} is unavailable or timed out after {Timeout:g} | {uri}", C_WARN);
8685
return null;
8786
}

SmartImage.Lib/Engines/ClientSearchEngine.cs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,10 @@ protected ClientSearchEngine(string baseUrl, string endpointUrl) : base(baseUrl)
3030

3131
protected RestClient Client { get; }
3232

33-
[DebuggerHidden]
33+
//[DebuggerHidden]
3434
public override SearchResult GetResult(ImageQuery query)
3535
{
36-
var sr = base.GetResult(query);
36+
/*var sr = base.GetResult(query);
3737
3838
if (!sr.IsSuccessful) {
3939
return sr;
@@ -48,7 +48,10 @@ public override SearchResult GetResult(ImageQuery query)
4848
Trace.WriteLine($"{Name}: {e.Message}", C_ERROR);
4949
}
5050
51-
return sr;
51+
return sr;*/
52+
53+
var sr1 = base.GetResult(query);
54+
return EngineHelper.TryGet(sr1, query, (sr) => Process(query, sr));
5255
}
5356

5457
protected abstract SearchResult Process(ImageQuery query, SearchResult r);
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Diagnostics;
4+
using System.Linq;
5+
using System.Text;
6+
using System.Threading.Tasks;
7+
using Kantan.Diagnostics;
8+
using SmartImage.Lib.Searching;
9+
10+
namespace SmartImage.Lib.Engines
11+
{
12+
public static class EngineHelper
13+
{
14+
public static SearchResult TryGet(SearchResult sr, ImageQuery query, Func<SearchResult, SearchResult> f)
15+
{
16+
17+
18+
if (!sr.IsSuccessful) {
19+
return sr;
20+
}
21+
22+
try {
23+
24+
sr = f(sr);
25+
}
26+
catch (Exception e) {
27+
sr.Status = ResultStatus.Failure;
28+
Trace.WriteLine($"{sr.Engine.Name}: {e.Message}", LogCategories.C_ERROR);
29+
}
30+
31+
return sr;
32+
}
33+
}
34+
}

SmartImage.Lib/Engines/Impl/Ascii2DEngine.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
using SmartImage.Lib.Searching;
66
using System;
77
using System.Collections.Generic;
8+
using System.Diagnostics;
89
using System.Linq;
910
// ReSharper disable CognitiveComplexity
1011

@@ -36,6 +37,7 @@ private static Uri ConvertToDetailUri(Uri url)
3637
*
3738
*/
3839

40+
3941
var res = Network.GetResponse(url.ToString());
4042

4143
// Get redirect url (color url)
@@ -46,15 +48,20 @@ private static Uri ConvertToDetailUri(Uri url)
4648

4749
string detailUrl = newUrl.Replace("/color/", "/bovw/");
4850

51+
4952
return new Uri(detailUrl);
5053
}
5154

5255
protected override IDocument GetDocument(SearchResult sr)
5356
{
5457
var url = sr.RawUri;
5558

59+
60+
5661
sr.RawUri = ConvertToDetailUri(url);
5762

63+
64+
5865
return base.GetDocument(sr);
5966
}
6067

SmartImage.Lib/Engines/Impl/IqdbEngine.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,7 @@ protected override SearchResult Process(ImageQuery query, SearchResult sr)
171171

172172
var doc = GetDocument(query);
173173

174+
174175
var pages = doc.Body.SelectSingleNode("//div[@id='pages']");
175176
var tables = ((IHtmlElement) pages).SelectNodes("div/table");
176177

@@ -199,6 +200,7 @@ protected override SearchResult Process(ImageQuery query, SearchResult sr)
199200
sr.PrimaryResult.UpdateFrom(best);
200201
sr.OtherResults.AddRange(images);
201202

203+
202204
return sr;
203205
}
204206
}

SmartImage.Lib/Engines/Impl/SauceNaoEngine.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,7 @@ public override SearchResult GetResult(ImageQuery query)
115115

116116
private IEnumerable<SauceNaoDataResult> GetHTMLResults(ImageQuery query)
117117
{
118+
118119
Trace.WriteLine($"{Name}: | Parsing HTML", LogCategories.C_INFO);
119120

120121
var docp = new HtmlParser();
@@ -135,6 +136,7 @@ private IEnumerable<SauceNaoDataResult> GetHTMLResults(ImageQuery query)
135136
var execute = m_client.Execute(req);
136137

137138
string html = execute.Content;
139+
138140

139141
/*
140142
* Daily Search Limit Exceeded.

SmartImage.Lib/Engines/InterpretedSearchEngine.cs

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ protected InterpretedSearchEngine(string baseUrl) : base(baseUrl) { }
2929
[DebuggerHidden]
3030
public override SearchResult GetResult(ImageQuery query)
3131
{
32-
var sr = base.GetResult(query);
32+
/*var sr = base.GetResult(query);
3333
3434
if (!sr.IsSuccessful) {
3535
return sr;
@@ -38,15 +38,23 @@ public override SearchResult GetResult(ImageQuery query)
3838
try {
3939
var doc = GetDocument(sr);
4040
41+
4142
sr = Process(doc, sr);
4243
}
4344
catch (Exception e) {
4445
sr.Status = ResultStatus.Failure;
4546
Trace.WriteLine($"{Name}: {e.Message}", C_ERROR);
4647
}
4748
48-
return sr;
49-
49+
return sr;*/
50+
51+
var sr1 = base.GetResult(query);
52+
return EngineHelper.TryGet(sr1, query, sr =>
53+
{
54+
var doc = this.GetDocument(sr);
55+
sr = Process(doc, sr);
56+
return sr;
57+
});
5058
}
5159

5260
protected virtual IDocument GetDocument(SearchResult sr)

SmartImage.Lib/SearchClient.cs

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -245,7 +245,7 @@ public ImageResult[] FindDirectResults(int count = 5)
245245

246246
var best = FindBestResults().ToList();
247247

248-
Debug.WriteLine($"Found {best.Count} best results");
248+
Debug.WriteLine($"{nameof(SearchClient)}: Found {best.Count} best results", C_DEBUG);
249249

250250
var images = new ConcurrentBag<ImageResult>();
251251

@@ -262,15 +262,15 @@ public ImageResult[] FindDirectResults(int count = 5)
262262
continue;
263263
}
264264

265-
Debug.WriteLine($"{nameof(FindDirectResult)}: Adding {item.Direct}");
265+
//Debug.WriteLine($"{nameof(FindDirectResult)}: Adding {item.Direct}");
266266

267267
images.Add(item);
268268

269-
269+
270270
} while (++i != best.Count && i < count /*!images.Any(x=>x.Direct!=null)*/);
271271

272272

273-
Debug.WriteLine($"Found {images.Count} direct results");
273+
Debug.WriteLine($"{nameof(SearchClient)}: Found {images.Count} direct results", C_DEBUG);
274274

275275
return images.OrderByDescending(r => r.Similarity)
276276
.ToArray();
@@ -291,16 +291,11 @@ public ImageResult[] FindBestResults()
291291
var x = r.OtherResults;
292292
x.Insert(0, r.PrimaryResult);
293293
return x;
294-
});
295-
296-
//==================================================================//
297-
298-
299-
best = best
300-
.AsParallel()
301-
.OrderByDescending(r => r.Similarity)
302-
.ThenByDescending(r => r.PixelResolution)
303-
.ThenByDescending(r => r.DetailScore);
294+
})
295+
.AsParallel()
296+
.OrderByDescending(r => r.Similarity)
297+
.ThenByDescending(r => r.PixelResolution)
298+
.ThenByDescending(r => r.DetailScore);
304299

305300

306301
return best.ToArray();

SmartImage.Lib/Searching/ImageQuery.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ public ImageQuery([NotNull] string value, [CanBeNull] BaseUploadEngine engine =
6464
Value = value;
6565

6666

67-
UploadEngine = engine ?? new LitterboxEngine(); //todo
67+
UploadEngine = engine ?? new LitterboxEngine(); //note: default upload engine
6868

6969
UploadUri = IsUri ? new Uri(Value) : UploadEngine.Upload(Value);
7070

SmartImage.Lib/Searching/ImageResult.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ public int DetailScore
154154
{
155155
get
156156
{
157-
//todo: WIP
157+
158158

159159
/*
160160
* The number of non-null fields

0 commit comments

Comments
 (0)