Skip to content

Commit 2292111

Browse files
committed
Fixes & optimizations
1 parent 935046d commit 2292111

File tree

7 files changed

+105
-54
lines changed

7 files changed

+105
-54
lines changed

SmartImage.Lib 3/Engines/Impl/Search/EHentaiEngine.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -193,13 +193,11 @@ public async Task<bool> LoginAsync()
193193

194194
#endregion
195195

196-
protected override async Task<IDocument> GetDocumentAsync(SearchResult origin, SearchQuery query,
196+
protected override async Task<IDocument> GetDocumentAsync(SearchResult sr, SearchQuery query,
197197
CancellationToken token = default)
198198
{
199199
const string name = "a.jpg";
200200

201-
var sr = origin as SearchResult;
202-
203201
(string t, bool b) = await query.GetFilePathOrTempAsync(name);
204202

205203
if (b) {
@@ -266,6 +264,7 @@ protected override async Task<IDocument> GetDocumentAsync(SearchResult origin, S
266264

267265
if (content.Contains("Please wait a bit longer between each file search.")) {
268266
Debug.WriteLine($"cooldown", Name);
267+
sr.Status = SearchResultStatus.Cooldown;
269268
return null;
270269
}
271270

SmartImage.Lib 3/Engines/Impl/Search/SauceNaoEngine.cs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -217,10 +217,14 @@ private static SauceNaoDataResult Parse(INode result)
217217
// var thumbnail = resultImg2.TryGetAttribute("src");
218218
// var thumbnailTitle = resultImg2.TryGetAttribute("title");
219219

220-
var thumbnail = ri.GetAttribute("src");
220+
var thumbnail = ri.GetAttribute("src");
221221
var thumbnailTitle = ri.GetAttribute("title");
222+
var pixelated = ri.GetAttribute("class");
223+
var isPixelated = pixelated == "pixelated";
222224

223-
var ds = ri.Attributes.Where(x => x.Name.Contains("data-src")).ToArray();
225+
var ds = ri.Attributes.Where(x => x.Name.Contains("data-src")).ToArray();
226+
227+
thumbnail = isPixelated? ds.LastOrDefault()?.Value : thumbnail;
224228

225229
var resulttablecontent = result.FirstChild
226230
.FirstChild

SmartImage.Lib 3/Engines/Impl/Search/YandexEngine.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ public sealed class YandexEngine : WebSearchEngine
2222
{
2323
public YandexEngine() : base("https://yandex.com/images/search?rpt=imageview&url=")
2424
{
25-
Timeout = TimeSpan.FromSeconds(15);
25+
Timeout = TimeSpan.FromSeconds(30);
2626
}
2727

2828
protected override string NodesSelector => Serialization.S_Yandex_Images;

SmartImage.Lib 3/Engines/WebSearchEngine.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -108,13 +108,13 @@ protected virtual ValueTask<INode[]> GetNodes(IDocument d)
108108
protected bool Validate([CBN] IDocument doc, SearchResult sr)
109109
{
110110
if (doc is null or { Body: null }) {
111-
sr.Status = SearchResultStatus.Failure;
111+
// sr.Status = SearchResultStatus.Failure;
112112
return false;
113113
}
114114

115115
foreach (string s in ErrorBodyMessages) {
116116
if (doc.Body.TextContent.Contains(s)) {
117-
sr.Status = SearchResultStatus.IllegalInput;
117+
// sr.Status = SearchResultStatus.IllegalInput;
118118
return false;
119119
}
120120

SmartImage.UI/MainWindow.Handlers.cs

Lines changed: 38 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
global using VBFS = Microsoft.VisualBasic.FileIO.FileSystem;
55
using System;
6+
using System.Collections.ObjectModel;
67
using System.ComponentModel;
78
using System.Diagnostics;
89
using System.IO;
@@ -134,10 +135,13 @@ private void Lb_Queue_PreviewDragOver(object sender, DragEventArgs e)
134135

135136
private void Lb_Queue_SelectionChanged(object sender, SelectionChangedEventArgs e)
136137
{
138+
Debug.WriteLine($"lqs: {sender} {e}");
137139
if (e.OriginalSource != sender) {
138140
return;
139141
}
140142

143+
CheckMedia();
144+
141145
e.Handled = true;
142146
}
143147

@@ -208,21 +212,33 @@ private void Btn_Run_Loaded(object sender, RoutedEventArgs e)
208212
private void Btn_Remove_Click(object sender, RoutedEventArgs e)
209213
{
210214
// var q = MathHelper.Wrap(QueueSelectedIndex + 1, Queue.Count);
211-
215+
212216
var old = CurrentQueueItem;
213-
var i = Queue.IndexOf(old);
217+
218+
if (old == null) {
219+
goto ret;
220+
}
221+
var i = Queue.IndexOf(old);
214222
Queue.Remove(old);
215223

216224
// TrySeekQueue(q);
217225
// AdvanceQueue(-1);
218226

219227
if (m_queries.TryRemove(old, out var sq)) {
220-
foreach (var r in m_resultMap[sq]) {
228+
m_resultMap.TryRemove(sq, out var result);
229+
230+
foreach (var r in result) {
221231
r.Dispose();
222232
}
223-
233+
result.Clear();
234+
/*foreach (var r in m_resultMap[sq]) {
235+
r.Dispose();
236+
}*/
237+
224238
m_images.TryRemove(sq, out var img);
239+
img = null;
225240
}
241+
// ClearQueryControls();
226242

227243
var i2 = i - 1;
228244

@@ -233,14 +249,16 @@ private void Btn_Remove_Click(object sender, RoutedEventArgs e)
233249
n = String.Empty;
234250
else
235251
n = Queue[i2];
236-
237-
CurrentQueueItem = n;
252+
CurrentQueueItem = n;
253+
// Lb_Queue.ItemsSource. = n;
254+
// AdvanceQueue(i-1);
238255

239256
sq?.Dispose();
240257
GC.Collect();
241258
GC.WaitForPendingFinalizers();
242259
GC.Collect();
243260
// AdvanceQueue();
261+
ret:
244262
e.Handled = true;
245263
}
246264

@@ -250,7 +268,7 @@ private void Btn_Delete_Click(object sender, RoutedEventArgs e)
250268
ClearResults();
251269
m_cbDispatch.Stop();
252270
var old = CurrentQueueItem;
253-
m_clipboard.Remove(old);
271+
m_clipboardHistory.Remove(old);
254272
CurrentQueueItem = String.Empty;
255273
m_queries.TryRemove(old, out var q);
256274
m_resultMap.TryRemove(Query, out var x);
@@ -303,14 +321,15 @@ private void Lv_Results_SelectionChanged(object sender, SelectionChangedEventArg
303321
UpdatePreview(uri);
304322
CheckMedia();
305323
}
306-
else if (ri.Result.Root.Engine.EngineOption != SearchEngineOptions.TraceMoe){
324+
else if (ri.Result.Root.Engine.EngineOption != SearchEngineOptions.TraceMoe) {
307325
UpdatePreview(ri);
308326
CheckMedia();
309327
}
310328
else {
311329
UpdatePreview();
330+
312331
if (ri.Result.Metadata is TraceMoeEngine.TraceMoeDoc doc) {
313-
332+
314333
Me_Preview.ScrubbingEnabled = false;
315334
Me_Preview.UnloadedBehavior = MediaState.Close;
316335
Me_Preview.LoadedBehavior = MediaState.Manual;
@@ -332,18 +351,17 @@ private void Lv_Results_SelectionChanged(object sender, SelectionChangedEventArg
332351
e.Handled = true;
333352
return;
334353

335-
void CheckMedia()
336-
{
337-
if (ShowMedia) {
338-
Me_Preview.Stop();
339-
Me_Preview.Close();
340-
Me_Preview.Source = null;
341-
ShowMedia = false;
342-
}
343-
else {
354+
}
344355

345-
}
356+
private void CheckMedia()
357+
{
358+
if (ShowMedia) {
359+
Me_Preview.Stop();
360+
Me_Preview.Close();
361+
Me_Preview.Source = null;
362+
ShowMedia = false;
346363
}
364+
else { }
347365
}
348366

349367
private void Lv_Results_KeyDown(object sender, KeyEventArgs e)
@@ -379,7 +397,7 @@ private void Lv_Results_KeyDown(object sender, KeyEventArgs e)
379397
Dispatcher.InvokeAsync(() =>
380398
{
381399
var text = CurrentResultItem.Url;
382-
m_clipboard.Add(text);
400+
m_clipboardHistory.Add(text);
383401
Clipboard.SetText(text);
384402
});
385403
break;

SmartImage.UI/MainWindow.xaml

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@
6363
</ContextMenu>
6464

6565
<BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter" />
66-
<controls:InvertableBooleanToVisibilityConverter x:Key="BooleanVisConverter"/>
66+
<controls:InvertableBooleanToVisibilityConverter x:Key="BooleanVisConverter" />
6767

6868
<Style x:Key="BoldGridViewCellStyle" TargetType="{x:Type TextBlock}">
6969
<Setter Property="FontWeight" Value="Bold" />
@@ -298,7 +298,7 @@
298298
DragOver="Lb_Queue_DragOver" PreviewDragOver="Lb_Queue_PreviewDragOver" AllowDrop="True"
299299
Background="{DynamicResource Black2}" Foreground="White"
300300
SelectionChanged="Lb_Queue_SelectionChanged"
301-
SelectedItem="{Binding CurrentQueueItem, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, IsAsync=True}"
301+
SelectedItem="{Binding CurrentQueueItem, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
302302
IsSynchronizedWithCurrentItem="True"
303303
KeyDown="Lb_Queue_KeyDown" Margin="0,2,174,0" HorizontalAlignment="Right"
304304
VerticalAlignment="Top" Width="320" Height="150" Grid.Column="1" Grid.RowSpan="2" />
@@ -356,9 +356,11 @@
356356
<Border x:Name="Br_Preview2" Height="150" Margin="0,2,11,0" Width="150"
357357
Background="{DynamicResource Black2}"
358358
VerticalAlignment="Top" HorizontalAlignment="Right" Grid.RowSpan="2" Panel.ZIndex="1"
359-
Grid.Column="1" Visibility="{Binding ShowMedia, Converter={StaticResource BooleanVisConverter}, ConverterParameter=Normal}">
359+
Grid.Column="1"
360+
Visibility="{Binding ShowMedia, Converter={StaticResource BooleanVisConverter}, ConverterParameter=Normal}">
360361
<MediaElement x:Name="Me_Preview" HorizontalAlignment="Right" VerticalAlignment="Top"
361-
Width="150" MouseDown="Me_Preview_MouseDown" Visibility="{Binding ShowMedia, Converter={StaticResource BooleanVisConverter}, ConverterParameter=Normal}">
362+
Width="150" MouseDown="Me_Preview_MouseDown"
363+
Visibility="{Binding ShowMedia, Converter={StaticResource BooleanVisConverter}, ConverterParameter=Normal}">
362364
<MediaElement.RenderTransformOrigin>
363365
<Point X="1" Y="0"></Point>
364366
</MediaElement.RenderTransformOrigin>
@@ -517,8 +519,15 @@
517519
</GridViewColumn.CellTemplate>
518520
</GridViewColumn>
519521

520-
<GridViewColumn Header="URL"
521-
DisplayMemberBinding="{Binding Url, Mode=OneTime}" Width="400" />
522+
<GridViewColumn Header="URL" Width="400">
523+
<GridViewColumn.CellTemplate>
524+
<DataTemplate>
525+
<TextBlock Text="{Binding Url, Mode=OneTime}"
526+
ToolTip="Double-click to open" />
527+
528+
</DataTemplate>
529+
</GridViewColumn.CellTemplate>
530+
</GridViewColumn>
522531

523532
<GridViewColumn Header="Similarity"
524533
DisplayMemberBinding="{Binding Result.Similarity, Mode=OneTime}"
@@ -582,7 +591,9 @@
582591
TextChanged="Tb_Search_TextChanged" Grid.ColumnSpan="2" />
583592
<ComboBox x:Name="Cb_SearchFields" HorizontalAlignment="Right" Margin="0,17,499,0" Grid.Row="1"
584593
VerticalAlignment="Top" Width="148" Grid.ColumnSpan="2" />
585-
<TextBlock x:Name="Tb_Preview" Grid.Column="1" HorizontalAlignment="Right" Margin="0,65,11,0" Grid.Row="1" VerticalAlignment="Top" TextDecorations="Underline" Foreground="White" Width="150"/>
594+
<TextBlock x:Name="Tb_Preview" Grid.Column="1" HorizontalAlignment="Right" Margin="0,65,11,0"
595+
Grid.Row="1" VerticalAlignment="Top" TextDecorations="Underline" Foreground="White"
596+
Width="150" />
586597
</Grid>
587598
</TabItem>
588599
<TabItem x:Name="Ti_Config" HorizontalAlignment="Center" Height="20" Header="Config"

0 commit comments

Comments
 (0)