Skip to content

Commit 3a04d61

Browse files
committed
Refactoring; cleanup; misc
1 parent ec23b60 commit 3a04d61

File tree

10 files changed

+173
-77
lines changed

10 files changed

+173
-77
lines changed

SmartImage/Core/Info.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ public static string AppFolder
9393
public static string ExeLocation => FileSystem.FindExecutableLocation(NAME_EXE)!;
9494

9595

96-
public static bool IsAppFolderInPath => OS.IsFolderInPath(AppFolder);
96+
public static bool IsAppFolderInPath => FileSystem.IsFolderInPath(AppFolder);
9797

9898
/// <summary>
9999
/// Setup

SmartImage/Core/Integration.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -94,29 +94,29 @@ internal static void HandlePath(IntegrationOption option)
9494
switch (option) {
9595
case IntegrationOption.Add:
9696
{
97-
string oldValue = OS.EnvironmentPath;
97+
string oldValue = FileSystem.EnvironmentPath;
9898
string appFolder = Info.AppFolder;
9999

100100
if (Info.IsAppFolderInPath) {
101101
return;
102102
}
103103

104104
bool appFolderInPath = oldValue
105-
.Split(OS.PATH_DELIM)
105+
.Split(FileSystem.PATH_DELIM)
106106
.Any(p => p == appFolder);
107107

108108
string cd = Environment.CurrentDirectory;
109109
string exe = Path.Combine(cd, Info.NAME_EXE);
110110

111111
if (!appFolderInPath) {
112-
string newValue = oldValue + OS.PATH_DELIM + cd;
113-
OS.EnvironmentPath = newValue;
112+
string newValue = oldValue + FileSystem.PATH_DELIM + cd;
113+
FileSystem.EnvironmentPath = newValue;
114114
}
115115

116116
break;
117117
}
118118
case IntegrationOption.Remove:
119-
OS.RemoveFromPath(Info.AppFolder);
119+
FileSystem.RemoveFromPath(Info.AppFolder);
120120
break;
121121
default:
122122
throw new ArgumentOutOfRangeException(nameof(option), option, null);

SmartImage/Core/Interface.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -368,6 +368,7 @@ private static string GetContextMenuString(bool added) =>
368368
@"..\..\..\..\Test1.jpg",
369369
@"..\..\..\..\Test2.jpg",
370370
@"..\..\..\..\Test3.png",
371+
@"C:\Users\Deci\Pictures\fucking_epic.jpg",
371372
"https://kemono.party/files/224580/46935364/beidou_800.jpg",
372373
"https://i.imgur.com/QtCausw.jpg"
373374
};

SmartImage/Engines/Other/TidderEngine.cs

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ public override FullSearchResult GetResult(string url)
3131

3232
var sr = base.GetResult(url);
3333

34-
Debug.WriteLine(sr.RawUrl!);
34+
3535

3636
try {
3737

@@ -48,7 +48,7 @@ public override FullSearchResult GetResult(string url)
4848
return sr;
4949
}
5050

51-
Debug.WriteLine(findings.Count);
51+
//Debug.WriteLine(findings.Count);
5252

5353
var list = new List<ISearchResult>();
5454

@@ -89,8 +89,8 @@ public override FullSearchResult GetResult(string url)
8989
list.Add(bsr);
9090

9191

92-
Debug.WriteLine(
93-
$"{i}: {sub.Count} {dist} {score} {posted} {title} {author} {subreddit} --> {link}");
92+
//Debug.WriteLine(
93+
// $"{i}: {sub.Count} {dist} {score} {posted} {title} {author} {subreddit} --> {link}");
9494
}
9595

9696
var best = list[0];
@@ -101,16 +101,11 @@ public override FullSearchResult GetResult(string url)
101101

102102
}
103103
catch (Exception e) {
104-
Debug.WriteLine(e.Message);
105-
104+
// ...
105+
sr.AddErrorMessage(e.Message);
106106
}
107107

108108
return sr;
109109
}
110-
111-
public override string GetRawResultUrl(string url)
112-
{
113-
return base.GetRawResultUrl(url);
114-
}
115110
}
116111
}

SmartImage/Engines/Other/YandexEngine.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ public override FullSearchResult GetResult(string url)
118118
return sr;
119119
}
120120

121-
Debug.WriteLine($"{Name} has {images.Count} results");
121+
122122
ISearchResult[] bestImages = FullSearchResult.FilterAndSelectBestImages(images);
123123

124124
//

SmartImage/Engines/SauceNao/SauceNaoEngine.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -145,8 +145,6 @@ private static IEnumerable<SauceNaoDataResult> ParseResults(string url)
145145
Creator = creator,
146146
};
147147

148-
Debug.WriteLine($">>> {i}");
149-
150148
images.Add(i);
151149
}
152150

SmartImage/Searching/BasicSearchResult.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public struct BasicSearchResult : ISearchResult
2929
public string? Characters { get; set; }
3030

3131

32-
public string? SiteName { get; set; }
32+
public string? Site { get; set; }
3333

3434

3535
public bool Filter { get; set; }
@@ -63,7 +63,7 @@ public BasicSearchResult(string url, float? similarity, int? width, int? height,
6363
Artist = artist;
6464
Source = source;
6565
Characters = characters;
66-
SiteName = siteName;
66+
Site = siteName;
6767
Filter = filter;
6868
Date = null;//todo
6969
}

SmartImage/Searching/FullSearchResult.cs

Lines changed: 91 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
using System;
44
using System.Collections.Generic;
55
using System.Diagnostics;
6+
using System.Diagnostics.CodeAnalysis;
67
using System.Drawing;
78
using System.IO;
89
using System.Linq;
@@ -57,6 +58,7 @@ public FullSearchResult(BaseSearchEngine src, Color color, string name, string u
5758
private FullSearchResult(Color color, string name, string url, float? similarity = null)
5859
: this(null!, color, name, url, similarity) { }
5960

61+
#region Properties
6062

6163
/// <summary>
6264
/// Search engine
@@ -79,11 +81,11 @@ public override NConsoleFunction? AltFunction
7981
{
8082
return () =>
8183
{
82-
if (!ExtendedResults.Any()) {
84+
if (!Enumerable.Any<FullSearchResult>(ExtendedResults)) {
8385
return null;
8486
}
8587

86-
NConsole.ReadOptions(ExtendedResults);
88+
NConsole.ReadOptions<FullSearchResult>(ExtendedResults);
8789

8890
return null;
8991
};
@@ -206,6 +208,39 @@ public override NConsoleFunction ComboFunction
206208
/// </summary>
207209
public bool IsOriginal { get; set; }
208210

211+
[CanBeNull]
212+
213+
public string AspectRatio
214+
{
215+
get
216+
{
217+
if (HasResolution) {
218+
219+
220+
// ReSharper disable PossibleInvalidOperationException
221+
222+
var fraction = new Fraction(Width.Value, Height.Value);
223+
224+
225+
var fractionStr = fraction.ToString();
226+
227+
if (fractionStr == "1") {
228+
fractionStr = "1:1";
229+
}
230+
231+
string? aspectRatio = fractionStr.Replace('/', ':');
232+
233+
234+
return aspectRatio;
235+
236+
// ReSharper restore PossibleInvalidOperationException
237+
238+
}
239+
240+
return null;
241+
}
242+
}
243+
209244

210245
/// <inheritdoc cref="ISearchResult.Description" />
211246
public string? Description { get; set; }
@@ -234,10 +269,32 @@ public override NConsoleFunction ComboFunction
234269
/// <inheritdoc cref="ISearchResult.Characters" />
235270
public string? Characters { get; set; }
236271

237-
/// <inheritdoc cref="ISearchResult.SiteName" />
238-
public string? SiteName { get; set; }
272+
/// <inheritdoc cref="ISearchResult.Site" />
273+
public string? Site { get; set; }
274+
275+
public DateTime? Date { get; set; }
276+
public bool HasResolution => Width.HasValue && Height.HasValue;
277+
278+
public float? PixelResolution
279+
{
280+
get
281+
{
282+
if (HasResolution) {
283+
// ReSharper disable PossibleInvalidOperationException
284+
285+
float mpx = (float) MathHelper.ConvertToUnit(Width.Value * Height.Value, MetricUnit.Mega);
239286

240-
public DateTime? Date { get; set; }
287+
288+
return mpx;
289+
290+
// ReSharper restore PossibleInvalidOperationException
291+
}
292+
293+
return null;
294+
}
295+
}
296+
297+
#endregion
241298

242299
public void AddErrorMessage(string msg)
243300
{
@@ -306,19 +363,22 @@ public override string ToString()
306363

307364
AppendResultInfo(sb, nameof(Similarity), $"{Similarity / 100:P}", Similarity.HasValue && !IsOriginal);
308365

366+
AppendResultInfo(sb, "Resolution",
367+
$"{Width}x{Height} ({AspectRatio}) ({PixelResolution:F} MP)", HasResolution);
368+
309369
AppendResultInfo(sb, nameof(Artist), Artist);
310370
AppendResultInfo(sb, nameof(Characters), Characters);
311371
AppendResultInfo(sb, nameof(Source), Source);
312372
AppendResultInfo(sb, nameof(Description), Description);
313-
AppendResultInfo(sb, "Site", SiteName);
373+
AppendResultInfo(sb, nameof(Site), Site);
314374
AppendResultInfo(sb, nameof(Date), Date.ToString());
315375

316-
AppendResultInfo(sb, "Resolution", $"{Width}x{Height}", Width.HasValue && Height.HasValue);
317-
376+
318377
foreach (var (key, value) in Metadata) {
319378
AppendResultInfo(sb, key, value.ToString());
320379
}
321380

381+
322382
return sb.ToString();
323383
}
324384

@@ -355,7 +415,7 @@ public void UpdateFrom(ISearchResult result)
355415
Source = result.Source;
356416
Characters = result.Characters;
357417
Artist = result.Artist;
358-
SiteName = result.SiteName;
418+
Site = result.Site;
359419
Description = result.Description;
360420
Date = result.Date;
361421
}
@@ -370,7 +430,7 @@ private FullSearchResult CreateExtendedResult(ISearchResult result)
370430
Artist = result.Artist,
371431
Source = result.Source,
372432
Characters = result.Characters,
373-
SiteName = result.SiteName
433+
Site = result.Site
374434
};
375435
return extendedResult;
376436
}
@@ -399,20 +459,33 @@ private IEnumerable<FullSearchResult> CreateExtendedResults(IReadOnlyList<ISearc
399459

400460
private const float MAX_SIMILARITY = 100.0f;
401461

402-
private void AddImageInfo(ImageInputInfo info)
462+
/// <summary>
463+
/// Creates a <see cref="FullSearchResult" /> for the original image
464+
/// </summary>
465+
public static FullSearchResult GetOriginalImageResult(ImageInputInfo info)
403466
{
404-
//todo
467+
using var bmp = (Bitmap) Image.FromStream(info.Stream);
468+
469+
var result = new FullSearchResult(Interface.ColorMisc2, ORIGINAL_IMAGE_NAME, info.ImageUrl)
470+
{
471+
IsOriginal = true,
472+
Similarity = MAX_SIMILARITY,
473+
Width = bmp.Width,
474+
Height = bmp.Height
475+
476+
};
477+
478+
/*
479+
*
480+
*/
405481

406-
Bitmap bmp;
407482
string name;
408483
FileFormatType fileFormat;
409484
double bytes;
410485

411486
if (info.IsUrl) {
412487
name = info.Value.ToString();
413488

414-
//using var netStream = Network.GetStreamFromUrl(info.ImageUrl);
415-
bmp = (Bitmap) Image.FromStream(info.Stream);
416489

417490
info.Stream.Position = 0;
418491
using var ms = new MemoryStream();
@@ -426,7 +499,6 @@ private void AddImageInfo(ImageInputInfo info)
426499

427500
fileFormat = FileSystem.ResolveFileType(imageFile.FullName);
428501

429-
bmp = new Bitmap(imageFile.FullName);
430502
name = imageFile.Name;
431503
bytes = FileSystem.GetFileSize(imageFile.FullName);
432504
}
@@ -436,44 +508,13 @@ private void AddImageInfo(ImageInputInfo info)
436508

437509
string imgSize = MathHelper.ConvertToUnit(bytes);
438510

439-
(int width, int height) = (bmp.Width, bmp.Height);
440-
441-
Width = width;
442-
Height = height;
443-
444-
double mpx = MathHelper.ConvertToUnit(width * height, MetricUnit.Mega);
445-
446-
447-
var fraction = new Fraction(width, height);
448-
var fractionStr = fraction.ToString();
449-
450-
if (fractionStr == "1") {
451-
fractionStr = "1:1";
452-
}
453-
454-
string? aspectRatio = fractionStr.Replace('/', ':');
455511

456512
string imageInfoStr = $"{name} ({imgSize})";
457513

458-
string infoStr = $"({aspectRatio}) ({mpx:F} MP) ({fileFormat.Name})";
459-
460-
Metadata.Add("Info", imageInfoStr);
461-
Metadata.Add("Image", infoStr);
462-
}
463-
464-
/// <summary>
465-
/// Creates a <see cref="FullSearchResult" /> for the original image
466-
/// </summary>
467-
public static FullSearchResult GetOriginalImageResult(ImageInputInfo info)
468-
{
469-
var result = new FullSearchResult(Interface.ColorMisc2, ORIGINAL_IMAGE_NAME, info.ImageUrl)
470-
{
471-
IsOriginal = true,
472-
Similarity = MAX_SIMILARITY,
473-
474-
};
514+
string infoStr = $"({fileFormat.Name})";
475515

476-
result.AddImageInfo(info);
516+
result.Metadata.Add("Info", imageInfoStr);
517+
result.Metadata.Add("Image", infoStr);
477518

478519
return result;
479520
}

SmartImage/Searching/ISearchResult.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ public interface ISearchResult
5555
/// <summary>
5656
/// Site name of <see cref="Url"/>
5757
/// </summary>
58-
public string? SiteName { get; set; }
58+
public string? Site { get; set; }
5959

6060
/// <summary>
6161
/// Filter this result if <see cref="SearchConfig.FilterResults"/> is used

0 commit comments

Comments
 (0)