Skip to content

Commit 788eb55

Browse files
committed
Fix trace.moe; work on indexing/scanned results
1 parent 8ff35eb commit 788eb55

21 files changed

Lines changed: 571 additions & 200 deletions

SmartImage.Lib/Engines/BaseSearchEngine.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ static BaseSearchEngine()
5151
{
5252
Client = (FlurlClient) FlurlHttp.Clients.GetOrAdd(nameof(BaseSearchEngine), null, static builder =>
5353
{
54-
builder.Headers.AddOrReplace(HeaderNames.UserAgent, HttpUtilities.UserAgent);
54+
builder.Headers.AddOrReplace(HeaderNames.UserAgent, R1.UserAgent1);
5555

5656
// builder.Settings.JsonSerializer = new DefaultJsonSerializer();
5757

@@ -139,7 +139,7 @@ public override string ToString()
139139
}
140140

141141

142-
public override bool Equals(object? obj)
142+
public override bool Equals([CBN] object obj)
143143
{
144144
if (obj is null) {
145145
return false;
@@ -163,7 +163,7 @@ public override bool Equals(object? obj)
163163

164164
public abstract void Dispose();
165165

166-
public bool Equals(BaseSearchEngine? other)
166+
public bool Equals([CBN] BaseSearchEngine other)
167167
{
168168
if (other is null) {
169169
return false;
@@ -182,10 +182,10 @@ public override int GetHashCode()
182182
return (Name != null ? Name.GetHashCode() : 0);
183183
}
184184

185-
public static bool operator ==(BaseSearchEngine? left, BaseSearchEngine? right)
185+
public static bool operator ==([CBN] BaseSearchEngine left, [CBN] BaseSearchEngine right)
186186
=> Equals(left, right);
187187

188-
public static bool operator !=(BaseSearchEngine? left, BaseSearchEngine? right)
188+
public static bool operator !=([CBN] BaseSearchEngine left, [CBN] BaseSearchEngine right)
189189
=> !Equals(left, right);
190190

191191
}

SmartImage.Lib/Engines/Results/SearchResult.cs

Lines changed: 100 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,12 @@
1-
using System.ComponentModel;
2-
using System.Diagnostics;
1+
using AngleSharp.Css.Values;
2+
using AngleSharp.Html.Parser;
33
using JetBrains.Annotations;
44
using Kantan.Diagnostics;
5+
using SmartImage.Lib.Images;
56
using SmartImage.Lib.Utilities;
7+
using System.Collections.Concurrent;
8+
using System.ComponentModel;
9+
using System.Diagnostics;
610

711
namespace SmartImage.Lib.Engines.Results;
812

@@ -42,6 +46,7 @@ public Url RawUrl
4246
[NN]
4347
public List<SearchResultItem> Results { get; }
4448

49+
4550
[CBN]
4651
public string ErrorMessage { get; internal set; }
4752

@@ -86,7 +91,7 @@ public virtual void Update()
8691
}
8792

8893

89-
#region
94+
#region
9095

9196
public event PropertyChangedEventHandler PropertyChanged;
9297

@@ -105,7 +110,7 @@ private bool SetField<T>(ref T field, T value, [CMN] string propertyName = null)
105110
return true;
106111
}
107112

108-
#endregion
113+
#endregion
109114

110115
[CBN]
111116
public SearchResultItem GetBestResult()
@@ -118,6 +123,87 @@ public SearchResultItem GetBestResult()
118123
.FirstOrDefault();
119124
}
120125

126+
/*public int Index(SearchResultItem item, SearchResultItem scn)
127+
{
128+
int root;
129+
int scKi = 0;
130+
int scKi2 = 0;
131+
132+
root = Results.IndexOf(item);
133+
134+
// scKi = ScannedResults.IndexOf(item);
135+
if (scn != null) {
136+
scKi = 1;
137+
}
138+
139+
/*foreach ((SearchResultItem key, SearchResultItem[] value) in ScannedResults) {
140+
if (key == item) {
141+
scKi2 = Array.IndexOf(value, scn);
142+
143+
/*if (scKi2==0) {
144+
scKi2++;
145+
}#2#
146+
if (scKi2==-1) {
147+
// scKi2=0;
148+
}
149+
150+
// break;
151+
}
152+
else {
153+
scKi += value.Length;
154+
155+
}
156+
157+
// scKi += value.Length;
158+
159+
}#1#
160+
161+
162+
/*if (ScannedResults.TryGetValue(sri, out SearchResultItem[] sci)) {
163+
var i = Array.IndexOf(sci, sri);
164+
root += i == -1 ? 0 : i;
165+
}
166+
167+
for (int i = 0; i < ScannedResults.Count; i++) { }#1#
168+
169+
return root + scKi + scKi2;
170+
171+
}
172+
173+
public int Index(SearchResultItem sri)
174+
{
175+
var root = Results.IndexOf(sri.Parent);
176+
177+
// var scKi = ScannedResults.IndexOf(sri);
178+
var scKi2 = 0;
179+
180+
/*if (scKi != -1) {
181+
for (int sc = 0; sc < scKi; sc++) {
182+
var scannedItems = ScannedResults[sri];
183+
var scI2 = Array.IndexOf(scannedItems, sri);
184+
185+
if (scI2 != -1) {
186+
scKi2 += scI2;
187+
}
188+
}
189+
}
190+
else {
191+
scKi = 0;
192+
}#1#
193+
194+
195+
/*if (ScannedResults.TryGetValue(sri, out SearchResultItem[] sci)) {
196+
var i = Array.IndexOf(sci, sri);
197+
root += i == -1 ? 0 : i;
198+
}
199+
200+
for (int i = 0; i < ScannedResults.Count; i++) { }#1#
201+
202+
// return root + scKi + scKi2;
203+
204+
return root + scKi2;
205+
}*/
206+
121207
public override string ToString()
122208
{
123209
return $"[{Engine.Name}] {RawUrl} | {Results.Count} | {Status} {ErrorMessage}";
@@ -127,10 +213,19 @@ public void Dispose()
127213
{
128214
GC.SuppressFinalize(this);
129215
Debug.WriteLine($"Disposing {Engine.Name} with {Results.Count}", LogCategories.C_VERBOSE);
130-
216+
131217
foreach (SearchResultItem item in Results) {
218+
/*if (ScannedResults.TryGetValue(item, out var scanned)) {
219+
foreach (var sci in scanned) {
220+
sci.Dispose();
221+
}
222+
}*/
223+
132224
item.Dispose();
133225
}
226+
227+
// ScannedResults.Clear();
228+
134229
}
135230

136231
}

0 commit comments

Comments
 (0)