Skip to content

Commit 8bd4dda

Browse files
committed
Fixes; refactoring
1 parent 0e8bdb4 commit 8bd4dda

29 files changed

+214
-167
lines changed

SmartImage.Lib/Clients/Booru/BaseBooruClient.cs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,17 @@
1-
using SmartImage.Lib.Utilities;
1+

2+
using SmartImage.Lib.Utilities;
23
using System;
34
using System.Collections.Generic;
45
using System.Diagnostics.CodeAnalysis;
56
using System.Linq;
67
using System.Text;
78
using System.Threading.Tasks;
9+
using SmartImage.Lib.Utilities.Diagnostics;
810

911
namespace SmartImage.Lib.Clients.Booru;
10-
// TODO
1112

13+
// TODO
14+
[Experimental(AppSupport.DIAG_SMRTIMG_EXP001)]
1215
public abstract class BaseBooruClient : IDisposable
1316
{
1417

SmartImage.Lib/Clients/Booru/BaseGelbooruClient.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,13 @@
22
using System.Reflection;
33
using Flurl.Http;
44
using SmartImage.Lib.Utilities;
5+
using SmartImage.Lib.Utilities.Diagnostics;
56

67
namespace SmartImage.Lib.Clients.Booru;
78

89
// TODO
910

11+
[Experimental(AppSupport.DIAG_SMRTIMG_EXP001)]
1012
public abstract class BaseGelbooruClient : BaseBooruClient
1113
{
1214

SmartImage.Lib/Clients/Booru/Rule34Booru.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,12 @@
33

44
using System.Diagnostics.CodeAnalysis;
55
using SmartImage.Lib.Utilities;
6+
using SmartImage.Lib.Utilities.Diagnostics;
67

78
namespace SmartImage.Lib.Clients.Booru;
89
// TODO
910

11+
[Experimental(AppSupport.DIAG_SMRTIMG_EXP001)]
1012
public class Rule34Booru : BaseGelbooruClient
1113
{
1214

SmartImage.Lib/Clients/HydrusClient.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using System.ComponentModel;
2+
using System.Diagnostics.CodeAnalysis;
23
using System.Text.Json;
34
using System.Text.Json.Nodes;
45
using System.Text.Json.Serialization;

SmartImage.Lib/Results/Data/BrowserCookiesProvider.cs renamed to SmartImage.Lib/Cookies/BrowserCookiesProvider.cs

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,10 @@
22

33
using System.Data;
44
using System.Diagnostics;
5-
using System.Net;
65
using System.Runtime.Caching;
7-
using System.Runtime.CompilerServices;
8-
using AngleSharp.Css.Dom;
9-
using Flurl.Http;
106
using Kantan.Net.Web;
117

12-
namespace SmartImage.Lib.Results.Data;
13-
14-
using System.Runtime.Caching;
15-
using Results.Data;
8+
namespace SmartImage.Lib.Cookies;
169

1710
public class BrowserCookiesProvider : ICookiesProvider
1811
{

SmartImage.Lib/Results/Data/DefaultCookiesProvider.cs renamed to SmartImage.Lib/Cookies/DefaultCookiesProvider.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
using Kantan.Net.Web;
55

6-
namespace SmartImage.Lib.Results.Data;
6+
namespace SmartImage.Lib.Cookies;
77

88
public class DefaultCookiesProvider : ICookiesProvider
99
{

SmartImage.Lib/Results/Data/ICookiesEngine.cs renamed to SmartImage.Lib/Cookies/ICookiesEngine.cs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,8 @@
22
// Date: 2024/06/06 @ 17:06:56
33

44
using Flurl.Http;
5-
using Kantan.Net.Web;
6-
using SmartImage.Lib.Utilities;
75

8-
namespace SmartImage.Lib.Results.Data;
6+
namespace SmartImage.Lib.Cookies;
97

108
public interface ICookiesEngine
119
{

SmartImage.Lib/Results/Data/ICookiesProvider.cs renamed to SmartImage.Lib/Cookies/ICookiesProvider.cs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
11
// Author: Deci | Project: SmartImage.Lib | Name: ICookieProvider.cs
22
// Date: 2024/10/15 @ 12:10:00
33

4-
using System.Net;
5-
using Flurl.Http;
64
using Kantan.Net.Web;
75
using SmartImage.Lib.Utilities.Integration;
86

9-
namespace SmartImage.Lib.Results.Data;
7+
namespace SmartImage.Lib.Cookies;
108

119
public interface ICookiesProvider : IDisposable
1210
{

SmartImage.Lib/Engines/BaseSearchEngine.cs

Lines changed: 38 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,12 @@
44
global using R1 = SmartImage.Lib.Resources;
55
global using Url = Flurl.Url;
66
using System.Diagnostics;
7+
using System.Net.Http.Headers;
78
using Flurl.Http;
89
using Kantan.Diagnostics;
910
using Kantan.Net.Utilities;
1011
using Microsoft.Extensions.Logging;
12+
using Microsoft.Net.Http.Headers;
1113
using SmartImage.Lib.Engines.Impl.Search;
1214
using SmartImage.Lib.Engines.Impl.Search.Other;
1315
using SmartImage.Lib.Results;
@@ -17,14 +19,23 @@
1719
namespace SmartImage.Lib.Engines;
1820
#nullable enable
1921

22+
23+
public interface ISearchQueryVerifiable
24+
{
25+
26+
public ValueTask<bool> VerifyQueryAsync(SearchQuery query);
27+
28+
}
29+
2030
public abstract class BaseSearchEngine : IDisposable, IEquatable<BaseSearchEngine>
2131
{
2232

2333
static BaseSearchEngine()
2434
{
2535
Client = (FlurlClient) FlurlHttp.Clients.GetOrAdd(nameof(BaseSearchEngine), null, builder =>
2636
{
27-
builder.Headers.AddOrReplace("User-Agent", HttpUtilities.UserAgent);
37+
38+
builder.Headers.AddOrReplace(HeaderNames.UserAgent, HttpUtilities.UserAgent);
2839

2940
// builder.Settings.JsonSerializer = new DefaultJsonSerializer();
3041

@@ -41,11 +52,9 @@ static BaseSearchEngine()
4152
});
4253
}
4354

44-
protected BaseSearchEngine(Url baseUrl, Url? endpoint = null)
55+
protected BaseSearchEngine([NN] Url baseUrl)
4556
{
46-
BaseUrl = baseUrl;
47-
EndpointUrl = endpoint;
48-
MaxSize = null;
57+
BaseUrl = baseUrl;
4958
}
5059

5160
protected static readonly ILogger Logger = AppSupport.Factory.CreateLogger(nameof(BaseSearchEngine));
@@ -61,12 +70,13 @@ protected BaseSearchEngine(Url baseUrl, Url? endpoint = null)
6170
/// </summary>
6271
public virtual string Name => EngineOption.ToString();
6372

73+
/// <summary>
74+
/// Base URI
75+
/// </summary>
6476
public virtual Url BaseUrl { get; }
6577

6678
[JI]
67-
public TimeSpan Timeout { get; set; } = TimeSpan.FromSeconds(15);
68-
69-
public Url? EndpointUrl { get; }
79+
public virtual TimeSpan Timeout { get; set; } = TimeSpan.FromSeconds(15);
7080

7181
[JI]
7282
protected long? MaxSize { get; set; }
@@ -131,45 +141,49 @@ public static IEnumerable<BaseSearchEngine> GetSelectedEngines(SearchEngineOptio
131141

132142
}
133143

134-
public virtual async Task<SearchResult> GetResultAsync(SearchQuery query, CancellationToken token = default)
144+
/*public Task<SearchResult> GetTaskAsync(SearchQuery query, CancellationToken token = default)
135145
{
136-
var b = await VerifyQueryAsync(query);
146+
// TODO
137147
138-
/*
139-
if (!b) {
140-
// throw new SmartImageException($"{query}");
141-
Debug.WriteLine($"{query} : Verification error", LogCategories.C_ERROR);
148+
Task ops;
149+
if (this is ISearchQueryVerifiable sq) {
150+
ops = sq.VerifyQueryAsync(query);
142151
}
143-
*/
152+
153+
var task = GetResultAsync(query, token);
154+
155+
}*/
156+
157+
public virtual async Task<SearchResult> GetResultAsync(SearchQuery query, CancellationToken token = default)
158+
{
159+
var b = await TryVerifyQueryAsync(query);
144160

145161
var srs = b ? SearchResultStatus.None : SearchResultStatus.IllegalInput;
146162

147163
var res = new SearchResult(this)
148164
{
149-
RawUrl = GetRawUrl(query),
150-
ErrorMessage = null,
151-
Status = srs
165+
RawUrl = GetRawUrl(query),
166+
Status = srs
152167
};
153168

154169
lock (res.Results) {
155170
res.Results.Add(res.RawResultItem);
156171
}
157172

158-
Debug.WriteLine($"{Name} | {query} - {res.Status}", LogCategories.C_INFO);
159-
173+
Logger.LogInformation("{Engine} with {Query} returned {Status}", Name, query, res.Status);
160174
return res;
161175
}
162176

163177

164178
protected virtual Url GetRawUrl(SearchQuery query)
165179
{
166180
//
167-
Url u = ((BaseUrl + query.Upload));
181+
Url u = (BaseUrl + query.Upload);
168182

169183
return u;
170184
}
171185

172-
public virtual ValueTask<bool> VerifyQueryAsync(SearchQuery q)
186+
public virtual ValueTask<bool> TryVerifyQueryAsync(SearchQuery q)
173187
{
174188
bool b = true;
175189

@@ -230,13 +244,9 @@ public bool Equals(BaseSearchEngine? other)
230244
}
231245

232246
public static bool operator ==(BaseSearchEngine? left, BaseSearchEngine? right)
233-
{
234-
return Equals(left, right);
235-
}
247+
=> Equals(left, right);
236248

237249
public static bool operator !=(BaseSearchEngine? left, BaseSearchEngine? right)
238-
{
239-
return !Equals(left, right);
240-
}
250+
=> !Equals(left, right);
241251

242252
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
// Author: Deci | Project: SmartImage.Lib | Name: IEndpointEngine.cs
2+
// Date: 2025/03/27 @ 12:03:18
3+
4+
using Flurl.Http;
5+
6+
namespace SmartImage.Lib.Engines;
7+
8+
#pragma warning disable CS0649
9+
10+
public interface IEndpointEngine
11+
{
12+
13+
public Url EndpointUrl { get; }
14+
15+
// public IFlurlClient Client { get; }
16+
17+
}

0 commit comments

Comments
 (0)