Skip to content

Commit 6a16d84

Browse files
committed
Minor fixes
1 parent f914aa8 commit 6a16d84

File tree

12 files changed

+66
-84
lines changed

12 files changed

+66
-84
lines changed

SmartImage.Lib/Engines/Search/Base/BaseSearchEngine.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ protected virtual SearchResultOrigin GetResultOrigin(ImageQuery query, Cancellat
119119
}
120120

121121

122-
string content = null;
122+
// string content = null;
123123

124124
if (success && res is { }) {
125125
// var task = res.Content.ReadAsStringAsync();
@@ -165,8 +165,10 @@ public static BaseSearchEngine[] GetAllSearchEngines()
165165
return engines.ToArray();
166166
}
167167

168-
public virtual void Dispose() { }
169-
168+
public virtual void Dispose()
169+
{
170+
GC.SuppressFinalize(this);
171+
}
170172
}
171173

172174
/// <summary>

SmartImage.Lib/Engines/Search/Base/ClientSearchEngine.cs

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,4 @@ protected ClientSearchEngine(string baseUrl, string endpointUrl) : base(baseUrl)
1717
public abstract override EngineSearchType SearchType { get; }
1818

1919
protected string EndpointUrl { get; }
20-
21-
protected override object GetProcessingObject(SearchResult sr)
22-
{
23-
return sr.Origin.Query;
24-
}
25-
26-
2720
}

SmartImage.Lib/Engines/Search/Base/ProcessedSearchEngine.cs

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ protected ProcessedSearchEngine(string baseUrl) : base(baseUrl) { }
1919
public abstract override EngineSearchType SearchType { get; }
2020

2121

22-
2322
public sealed override SearchResult GetResult(ImageQuery query, CancellationToken? c = null)
2423
{
2524
var sr = base.GetResult(query, c);
@@ -59,13 +58,10 @@ public sealed override SearchResult GetResult(ImageQuery query, CancellationToke
5958
return sr;
6059
}
6160

62-
protected abstract object GetProcessingObject(SearchResult sr);
61+
protected virtual object GetProcessingObject(SearchResult sr) => sr.Origin.Query;
6362

6463
/// <summary>
6564
/// Processes engine results
6665
/// </summary>
67-
/// <param name="obj">Content upon which to operate, returned by <see cref="SearchResult.ParseContent"/></param>
68-
/// <param name="sr"><see cWebContentSearchEngineineineParseContent"/> to build</param>
69-
/// <returns>Final <see cref="WebContentSearchEngine"/></returns>
7066
protected abstract SearchResult Process(object obj, SearchResult sr);
7167
}

SmartImage.Lib/Engines/Search/Base/WebContentSearchEngine.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ protected WebContentSearchEngine(string baseUrl) : base(baseUrl) { }
1717

1818
protected override object GetProcessingObject(SearchResult sr) => ParseContent(sr.Origin);
1919

20-
2120
protected virtual object ParseContent(SearchResultOrigin origin)
2221
{
2322
var parser = new HtmlParser();

SmartImage.Lib/Engines/Search/Base/WebDriverSearchEngine.cs

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,7 @@ protected WebDriverSearchEngine(string baseUrl) : base(baseUrl) { }
2323
public abstract override EngineSearchType SearchType { get; }
2424

2525
protected abstract Task<List<ImageResult>> BrowseAsync(ImageQuery sd, SearchResult r);
26-
27-
protected override object GetProcessingObject(SearchResult sr)
28-
{
29-
return sr.Origin.Query;
30-
}
31-
26+
3227
protected static async Task<PuppeteerExtra> GetBrowserAsync()
3328
{
3429
using var browserFetcher = new BrowserFetcher();

SmartImage.Lib/SearchClient.cs

Lines changed: 6 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ public SearchClient(SearchConfig config)
4242
DetailedResults = new List<ImageResult>();
4343
ContinueTasks = new List<Task>();
4444

45-
DirectResultsWaitHandle = new();
45+
ContinueTaskCompletionSource = new();
4646

4747
Reload();
4848

@@ -100,7 +100,7 @@ public SearchClient(SearchConfig config)
100100

101101
public List<Task> ContinueTasks { get; }
102102

103-
public TaskCompletionSource DirectResultsWaitHandle { get; private set; }
103+
public TaskCompletionSource ContinueTaskCompletionSource { get; private set; }
104104

105105

106106
/// <summary>
@@ -138,14 +138,14 @@ public void Reset()
138138
IsComplete = false;
139139
IsContinueComplete = false;
140140

141-
DirectResultsWaitHandle = new();
141+
ContinueTaskCompletionSource = new();
142142
Reload();
143143
}
144144

145145
/// <summary>
146146
/// Performs an image search asynchronously.
147147
/// </summary>
148-
public async Task RunSearchAsync(CancellationToken cts, CancellationTokenSource cts2)
148+
public async Task RunSearchAsync(CancellationTokenSource cts2, CancellationToken cts)
149149
{
150150
if (IsComplete) {
151151
Reset();
@@ -262,40 +262,20 @@ private void GetResultContinueCallback(Task<SearchResult> task, object state)
262262
if (result.Any()) {
263263

264264
DirectResults.AddRange(result);
265-
266265
value.Scanned = true;
267266

268267
if (DirectResults.Count > 0 /*||
269268
!DirectResultsWaitHandle.SafeWaitHandle.IsClosed*/ /*|| ContinueTasks.Count==1*/) {
270269

271-
if (DirectResultsWaitHandle.TrySetResult()) {
272-
Debug.WriteLine("wait handle set");
273-
274-
270+
if (ContinueTaskCompletionSource.TrySetResult()) {
271+
Debug.WriteLine($"{nameof(ContinueTaskCompletionSource)} set");
275272
}
276-
277273
}
278274

279275
ContinueCompleted?.Invoke(null, EventArgs.Empty);
280-
281-
// if (result.Any()) { }
282-
283-
284276
}
285277
}
286278

287-
public static List<ImageResult> ApplyPredicateFilter(List<SearchResult> results, Predicate<SearchResult> predicate)
288-
{
289-
var query = results.Where(r => predicate(r))
290-
.SelectMany(r => r.AllResults)
291-
.OrderByDescending(r => r.Similarity)
292-
.ThenByDescending(r => r.PixelResolution)
293-
.ThenByDescending(r => r.DetailScore)
294-
.ToList();
295-
296-
return query;
297-
}
298-
299279

300280
/// <summary>
301281
/// Fires when <see cref="GetResultContinueCallback"/> returns
@@ -313,9 +293,6 @@ public static List<ImageResult> ApplyPredicateFilter(List<SearchResult> results,
313293
public event EventHandler<SearchCompletedEventArgs> SearchCompleted;
314294

315295

316-
private static readonly SmartImageException SearchException = new("Search not complete");
317-
318-
319296
public void Dispose()
320297
{
321298
/*foreach (ImageResult result in DirectResults) {

SmartImage.Lib/SearchConfig.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ public void Update()
5959
if (!map.ContainsKey(key)) {
6060
map.Add(key, value);
6161
}
62+
6263
}
6364

6465
SearchEngines = Enum.Parse<SearchEngineOptions>(map[Resources.K_Engines]);

SmartImage.Lib/Searching/ImageQuery.cs

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -54,11 +54,11 @@ public sealed class ImageQuery : IDisposable, IConsoleOption
5454

5555
public TimeSpan UploadTime { get; }
5656

57-
public MediaResourceInfo Info { get; }
58-
59-
public Image Image { get; }
57+
public MediaResourceInfo Info { get; }
6058

61-
public ImageResult AsImageResult { get; }
59+
public Image Image { get; }
60+
61+
public ImageResult AsImageResult { get; }
6262

6363
public ImageQuery([NotNull] string value, [CanBeNull] BaseUploadEngine engine = null)
6464
{
@@ -72,8 +72,9 @@ public ImageQuery([NotNull] string value, [CanBeNull] BaseUploadEngine engine =
7272

7373
Info = ImageMedia.GetMediaInfo(value);
7474

75-
if (!((bool) Info)) {
76-
throw new ArgumentException($"Input error: {Info.Message?.ReasonPhrase}");
75+
if (!(bool) Info) {
76+
var errStr = !Info.IsFile ? "Invalid file" : "Invalid URI";
77+
throw new ArgumentException($"Input error: {errStr}");
7778
}
7879

7980
Value = value;

SmartImage.Lib/Utilities/MediaResourceInfo.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ namespace SmartImage.Lib.Utilities;
3333
/// <returns><see cref="IsValid"/></returns>
3434
public static explicit operator bool(MediaResourceInfo mri) => mri.IsValid;
3535

36+
37+
3638
public override string ToString()
3739
{
3840
return $"{nameof(Resource)}: {Resource}, " +

SmartImage/App/AppToast.cs

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -64,9 +64,10 @@ private static void AddNotificationImage(ToastContentBuilder builder)
6464
{
6565
Task.WaitAny(Program.Client.ContinueTasks.ToArray());
6666

67-
// var w = Program.Client.DirectResultsWaitHandle;
67+
var w = Program.Client.ContinueTaskCompletionSource;
6868
// w.WaitOne();
6969
// w.Dispose();
70+
w.Task.Wait();
7071

7172
var directResults = Program.Client.DirectResults;
7273

@@ -86,20 +87,9 @@ private static void AddNotificationImage(ToastContentBuilder builder)
8687
}*/
8788

8889
var query = Program.Config.Query.AsImageResult;
89-
var ar1 = (double) query.Width.Value / query.Height.Value;
90+
// var ar1 = (double) query.Width.Value / query.Height.Value;
9091

91-
var mediaResources = directResults.SelectMany(d => (d.DirectImages)).OrderBy(mr =>
92-
{
93-
var img = Image.FromStream(mr.Response.Content.ReadAsStream());
94-
95-
var ar2 = (double) img.Width / img.Height;
96-
97-
double d = ar1 / ar2;
98-
99-
Debug.WriteLine($"{mr.Url}: {ar2} | {d}");
100-
101-
return d;
102-
}).ToList();
92+
var mediaResources = directResults.SelectMany(d => (d.DirectImages)).ToList();
10393

10494
// var directImage = directResults.First();
10595

0 commit comments

Comments
 (0)