Skip to content

Commit 5a03587

Browse files
committed
Update PluginManifest if last update time is 12 hours ago
1 parent deaac1c commit 5a03587

File tree

3 files changed

+25
-9
lines changed

3 files changed

+25
-9
lines changed

Plugins/Flow.Launcher.Plugin.PluginsManager/Main.cs

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
using System.Linq;
77
using System.Windows.Controls;
88
using Flow.Launcher.Infrastructure;
9+
using System;
10+
using System.Threading.Tasks;
911

1012
namespace Flow.Launcher.Plugin.PluginsManager
1113
{
@@ -21,6 +23,8 @@ public class Main : ISettingProvider, IPlugin, ISavable, IContextMenu, IPluginI1
2123

2224
internal PluginsManager pluginManager;
2325

26+
internal DateTime _lastUpdateTime;
27+
2428
public Control CreateSettingPanel()
2529
{
2630
return new PluginsManagerSettings(viewModel);
@@ -33,6 +37,7 @@ public void Init(PluginInitContext context)
3337
Settings = viewModel.Settings;
3438
contextMenu = new ContextMenu(Context, Settings);
3539
pluginManager = new PluginsManager(Context, Settings);
40+
_lastUpdateTime = DateTime.Now;
3641
}
3742

3843
public List<Result> LoadContextMenus(Result selectedResult)
@@ -43,10 +48,19 @@ public List<Result> LoadContextMenus(Result selectedResult)
4348
public List<Result> Query(Query query)
4449
{
4550
var search = query.Search.ToLower();
46-
51+
4752
if (string.IsNullOrWhiteSpace(search))
4853
return Settings.HotKeys;
4954

55+
if ((DateTime.Now - _lastUpdateTime).TotalSeconds > 43200) // 12 hours
56+
{
57+
Task.Run(async () =>
58+
{
59+
await pluginManager.UpdateManifest();
60+
_lastUpdateTime = DateTime.Now;
61+
});
62+
}
63+
5064
return search switch
5165
{
5266
var s when s.StartsWith(Settings.HotKeyInstall) => pluginManager.RequestInstallOrUpdate(s),

Plugins/Flow.Launcher.Plugin.PluginsManager/Models/PluginsManifest.cs

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,19 +12,15 @@ internal class PluginsManifest
1212
internal List<UserPlugin> UserPlugins { get; private set; }
1313
internal PluginsManifest()
1414
{
15-
DownloadManifest();
15+
Task.Run(() => DownloadManifest()).Wait();
1616
}
1717

18-
private void DownloadManifest()
18+
internal async Task DownloadManifest()
1919
{
2020
var json = string.Empty;
2121
try
2222
{
23-
var t = Task.Run(
24-
async () =>
25-
json = await Http.Get("https://raw.githubusercontent.com/Flow-Launcher/Flow.Launcher.PluginsManifest/main/plugins.json"));
26-
27-
t.Wait();
23+
json = await Http.Get("https://raw.githubusercontent.com/Flow-Launcher/Flow.Launcher.PluginsManifest/main/plugins.json");
2824

2925
UserPlugins = JsonConvert.DeserializeObject<List<UserPlugin>>(json);
3026
}

Plugins/Flow.Launcher.Plugin.PluginsManager/PluginsManager.cs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,14 @@
77
using System.Collections.Generic;
88
using System.IO;
99
using System.Linq;
10+
using System.Threading.Tasks;
1011
using System.Windows;
1112

1213
namespace Flow.Launcher.Plugin.PluginsManager
1314
{
1415
internal class PluginsManager
1516
{
16-
private readonly PluginsManifest pluginsManifest;
17+
private PluginsManifest pluginsManifest;
1718

1819
private PluginInitContext Context { get; set; }
1920

@@ -44,6 +45,11 @@ internal PluginsManager(PluginInitContext context, Settings settings)
4445
Settings = settings;
4546
}
4647

48+
internal async Task UpdateManifest()
49+
{
50+
await pluginsManifest.DownloadManifest();
51+
}
52+
4753
internal void InstallOrUpdate(UserPlugin plugin)
4854
{
4955
if (PluginExists(plugin.ID))

0 commit comments

Comments
 (0)