Skip to content

Commit 38ab1ac

Browse files
committed
Test
1 parent e33e390 commit 38ab1ac

File tree

2 files changed

+53
-8
lines changed

2 files changed

+53
-8
lines changed

SmartImage.UI/MainWindow.Handlers.cs

Lines changed: 51 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,13 @@
33

44
global using VBFS = Microsoft.VisualBasic.FileIO.FileSystem;
55
using System;
6+
using System.Collections.Concurrent;
67
using System.ComponentModel;
78
using System.Diagnostics;
89
using System.IO;
910
using System.Linq;
1011
using System.Threading;
12+
using System.Threading.Tasks;
1113
using System.Windows;
1214
using System.Windows.Controls;
1315
using System.Windows.Controls.Primitives;
@@ -20,6 +22,7 @@
2022
using Kantan.Net.Utilities;
2123
using Kantan.Numeric;
2224
using Microsoft.VisualBasic.FileIO;
25+
using Novus.FileTypes;
2326
using SmartImage.Lib;
2427
using SmartImage.Lib.Engines.Impl.Search;
2528
using SmartImage.Lib.Engines.Impl.Search.Other;
@@ -268,14 +271,19 @@ private void Lv_Results_SelectionChanged(object sender, SelectionChangedEventArg
268271
{
269272
if (e.AddedItems.Count > 0) {
270273

271-
if (e.AddedItems[0] is ResultItem ri) {
272-
Img_Preview.Source = m_image;
274+
var ai = e.AddedItems[0];
273275

274-
ChangeInfo2(ri);
275-
}
276+
switch (ai) {
277+
case UniResultItem uri:
278+
Img_Preview.Source = uri.Image;
279+
break;
280+
case ResultItem ri:
281+
282+
Img_Preview.Source = m_image;
283+
284+
ChangeInfo2(ri);
285+
break;
276286

277-
if (e.AddedItems[0] is UniResultItem uri) {
278-
Img_Preview.Source = uri.Image;
279287
}
280288

281289
}
@@ -318,6 +326,43 @@ private void Lv_Results_KeyDown(object sender, KeyEventArgs e)
318326
m_clipboard.Add(text);
319327
Clipboard.SetText(text);
320328
});
329+
break;
330+
case Key.X when ctrl:
331+
Application.Current.Dispatcher.InvokeAsync(async () =>
332+
{
333+
var cri = CurrentResultItem;
334+
335+
var p = Process.Start(new ProcessStartInfo("gallery-dl", $"-G {cri.Url}")
336+
{
337+
CreateNoWindow = true,
338+
RedirectStandardOutput = true,
339+
RedirectStandardError = true,
340+
});
341+
var s = await p.StandardOutput.ReadToEndAsync();
342+
var s2 = s.Split(Environment.NewLine);
343+
var rg = new ConcurrentBag<UniSource>();
344+
await Parallel.ForEachAsync(s2, async (s1, token) =>
345+
{
346+
var uni = await UniSource.TryGetAsync(s1, ct: token);
347+
348+
if (uni != null) {
349+
rg.Add(uni);
350+
}
351+
});
352+
cri.Result.Uni = rg.ToArray();
353+
354+
for (int i = 0; i < s2.Length; i++) {
355+
var rii = new UniResultItem(cri, i)
356+
{
357+
StatusImage = AppComponents.picture,
358+
CanDownload = true,
359+
CanScan = false,
360+
CanOpen = true
361+
};
362+
Results.Insert(Results.IndexOf(cri) + 1 + i, rii);
363+
}
364+
});
365+
321366
break;
322367
}
323368

SmartImage.UI/MainWindow.xaml.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -673,7 +673,7 @@ private async Task ScanResultAsync(ResultItem ri)
673673
if (d) {
674674
Debug.WriteLine($"{ri}");
675675
var resultUni = ri.Result.Uni;
676-
var resultItems = new ResultItem[resultUni.Length];
676+
// var resultItems = new ResultItem[resultUni.Length];
677677

678678
for (int i = 0; i < resultUni.Length; i++) {
679679
var rii = new UniResultItem(ri, i)
@@ -683,7 +683,7 @@ private async Task ScanResultAsync(ResultItem ri)
683683
CanScan = false,
684684
CanOpen = true
685685
};
686-
resultItems[i] = rii;
686+
// resultItems[i] = rii;
687687
Results.Insert(Results.IndexOf(ri) + 1 + i, rii);
688688
}
689689
}

0 commit comments

Comments
 (0)