1313using Novus . Win32 ;
1414using SimpleCore . Net ;
1515using SimpleCore . Utilities ;
16+ using static SimpleCore . Diagnostics . LogCategories ;
1617
1718// ReSharper disable CognitiveComplexity
1819// ReSharper disable PossibleNullReferenceException
@@ -114,35 +115,39 @@ public static bool IsDirect(string url, DirectImageType directType = DirectImage
114115
115116 }
116117
117- public static Dictionary < string , string > InstalledUtilities
118+
119+ #region Cli
120+
121+ private const string MAGICK_EXE = "magick.exe" ;
122+ private const string GALLERY_DL_EXE = "gallery-dl.exe" ;
123+ private const string YOUTUBE_DL_EXE = "youtube-dl.exe" ;
124+ private const string FFPROBE_EXE = "ffprobe.exe" ;
125+ private const string FFMPEG_EXE = "ffmpeg.exe" ;
126+
127+ public static Dictionary < string , string > UtilitiesMap
118128 {
119129 get
120130 {
121- var utils = new List < string >
122- {
123- FFMPEG_EXE , FFPROBE_EXE , MAGICK_EXE , YOUTUBE_DL_EXE , GALLERY_DL_EXE
124- } ;
125-
126131 var rg = new Dictionary < string , string > ( ) ;
127132
128- foreach ( string s in utils ) {
129- var x = FileSystem . SearchInPath ( s ) ;
133+ foreach ( string exe in Utilities ) {
134+ var path = FileSystem . SearchInPath ( exe ) ;
130135
131136
132- rg . Add ( s , x ) ;
137+ rg . Add ( exe , path ) ;
133138 }
134139
135140 return rg ;
136141
137142 }
138143 }
139144
145+ public static readonly List < string > Utilities = new ( )
146+ {
147+ FFMPEG_EXE , FFPROBE_EXE , MAGICK_EXE , YOUTUBE_DL_EXE , GALLERY_DL_EXE
148+ } ;
140149
141- private const string MAGICK_EXE = "magick.exe" ;
142- private const string GALLERY_DL_EXE = "gallery-dl.exe" ;
143- private const string YOUTUBE_DL_EXE = "youtube-dl.exe" ;
144- private const string FFPROBE_EXE = "ffprobe.exe" ;
145- private const string FFMPEG_EXE = "ffmpeg.exe" ;
150+ #endregion
146151
147152
148153 /// <summary>
@@ -161,11 +166,11 @@ public static List<DirectImage> FindDirectImages(string url, DirectImageType dir
161166 {
162167 var directImages = new List < DirectImage > ( ) ;
163168
164- string gallerydl = InstalledUtilities [ GALLERY_DL_EXE ] ;
169+ string gallerydl = UtilitiesMap [ GALLERY_DL_EXE ] ;
165170
166171 if ( gallerydl != null ) {
167172
168- Trace . WriteLine ( $ "Using gallery-dl!") ;
173+ // Trace.WriteLine($"Using gallery-dl!");
169174
170175 var output = new Process
171176 {
@@ -174,6 +179,7 @@ public static List<DirectImage> FindDirectImages(string url, DirectImageType dir
174179 FileName = gallerydl ,
175180 Arguments = $ "-G { url } ",
176181 RedirectStandardOutput = true ,
182+ RedirectStandardError = true ,
177183 CreateNoWindow = true
178184 }
179185 } ;
@@ -190,9 +196,17 @@ public static List<DirectImage> FindDirectImages(string url, DirectImageType dir
190196 Direct = new Uri ( str ) ,
191197 Image = Image . FromStream ( WebUtilities . GetStream ( str ) )
192198 } ) ;
199+ //Debug.WriteLine($">>{d}");
200+ }
201+
202+ var standardError = output . StandardError ;
203+
204+ while ( ! standardError . EndOfStream ) {
205+ var line = standardError . ReadLine ( ) ;
206+ Debug . WriteLine ( $ "{ GALLERY_DL_EXE } : { line } ", C_ERROR ) ;
193207 }
194208
195- return directImages ;
209+ return directImages . OrderByDescending ( x => x . Image . Width * x . Image . Height ) . ToList ( ) ;
196210 }
197211
198212 imageFilter ??= ( x ) => true ;
@@ -248,7 +262,7 @@ public static List<DirectImage> FindDirectImages(string url, DirectImageType dir
248262 if ( ! Network . IsUri ( currentUrl , out var uri ) )
249263 continue ;
250264
251- if ( ! Network . IsUriAlive ( uri , pingTime ) )
265+ if ( ! Network . IsAlive ( uri , ( long ) pingTime . TotalMilliseconds ) )
252266 continue ;
253267
254268 if ( ! IsDirect ( currentUrl , directType ) )
@@ -301,7 +315,7 @@ public static List<DirectImage> FindDirectImages(string url, DirectImageType dir
301315 Task . WaitAll ( tasks . ToArray ( ) ) ;
302316
303317
304- return directImages ;
318+ return directImages . OrderByDescending ( x => x . Image . Width * x . Image . Height ) . ToList ( ) ;
305319
306320 }
307321
0 commit comments