2121using Torch . Collections ;
2222using Torch . Commands ;
2323using Torch . Utils ;
24+ using static Torch . API . WebAPI . PluginQuery ;
2425
2526namespace Torch . Managers
2627{
@@ -61,6 +62,8 @@ private class PluginItem
6162
6263 public PluginManager ( ITorchBase torchInstance ) : base ( torchInstance )
6364 {
65+ Task . Run ( async ( ) => await TestApiConnection ( ) ) . Wait ( ) ;
66+
6467 if ( ! Directory . Exists ( PluginDir ) )
6568 Directory . CreateDirectory ( PluginDir ) ;
6669 }
@@ -164,28 +167,33 @@ public void LoadPlugins()
164167
165168 pluginsToLoad . Add ( pluginItem ) ;
166169 }
167-
168-
169- if ( Torch . Config . ShouldUpdatePlugins )
170+
171+ _log . Info ( $ "Is plugin API reachable: { IsApiReachable } " ) ;
172+ if ( IsApiReachable )
170173 {
171- if ( DownloadPluginUpdates ( pluginsToLoad ) )
174+
175+ if ( Torch . Config . ShouldUpdatePlugins )
172176 {
173- // Resort the plugins just in case updates changed load hints.
174- pluginItems = GetLocalPlugins ( PluginDir ) ;
175- pluginsToLoad . Clear ( ) ;
176- foreach ( var item in pluginItems )
177+ if ( DownloadPluginUpdates ( pluginsToLoad ) )
177178 {
178- var pluginItem = item ;
179- if ( ! TryValidatePluginDependencies ( pluginItems , ref pluginItem , out var missingPlugins ) )
179+ // Resort the plugins just in case updates changed load hints.
180+ pluginItems = GetLocalPlugins ( PluginDir ) ;
181+ pluginsToLoad . Clear ( ) ;
182+ foreach ( var item in pluginItems )
180183 {
181- foreach ( var missingPlugin in missingPlugins )
182- _log . Warn ( $ "{ item . Manifest . Name } is missing dependency { missingPlugin } . Skipping plugin.") ;
183- continue ;
184- }
184+ var pluginItem = item ;
185+ if ( ! TryValidatePluginDependencies ( pluginItems , ref pluginItem , out var missingPlugins ) )
186+ {
187+ foreach ( var missingPlugin in missingPlugins )
188+ _log . Warn (
189+ $ "{ item . Manifest . Name } is missing dependency { missingPlugin } . Skipping plugin.") ;
190+ continue ;
191+ }
185192
186- pluginsToLoad . Add ( pluginItem ) ;
193+ pluginsToLoad . Add ( pluginItem ) ;
194+ }
187195 }
188- }
196+ }
189197 }
190198
191199 // Sort based on dependencies.
@@ -317,7 +325,7 @@ private bool DownloadPluginUpdates(List<PluginItem> plugins)
317325 return ;
318326 }
319327 item . Manifest . Version . TryExtractVersion ( out Version currentVersion ) ;
320- var latest = await PluginQuery . Instance . QueryOne ( item . Manifest . Guid ) ;
328+ var latest = await Instance . QueryOne ( item . Manifest . Guid ) ;
321329
322330 if ( latest ? . LatestVersion == null )
323331 {
@@ -340,7 +348,7 @@ private bool DownloadPluginUpdates(List<PluginItem> plugins)
340348 }
341349
342350 _log . Info ( $ "Updating plugin '{ item . Manifest . Name } ' from { currentVersion } to { newVersion } .") ;
343- await PluginQuery . Instance . DownloadPlugin ( latest , item . Path ) ;
351+ await Instance . DownloadPlugin ( latest , item . Path ) ;
344352 Interlocked . Increment ( ref count ) ;
345353 }
346354 catch ( Exception e )
0 commit comments