Skip to content

Commit d515799

Browse files
committed
Further Refactor & add CustomBrowsers UI
1 parent 7ff9b68 commit d515799

16 files changed

+218
-41
lines changed

Plugins/Flow.Launcher.Plugin.BrowserBookmark/ChromeBookmarkLoader.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
using System;
1+
using Flow.Launcher.Plugin.BrowserBookmark.Models;
2+
using System;
23
using System.Collections.Generic;
34
using System.IO;
45
using System.Linq;

Plugins/Flow.Launcher.Plugin.BrowserBookmark/ChromiumBookmarkLoader.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
using Microsoft.AspNetCore.Authentication;
1+
using Flow.Launcher.Plugin.BrowserBookmark.Models;
2+
using Microsoft.AspNetCore.Authentication;
23
using System.Collections.Generic;
34
using System.IO;
45
using System.Text.Json;
@@ -28,6 +29,8 @@ protected List<Bookmark> LoadBookmarks(string browserDataPath, string name)
2829

2930
protected List<Bookmark> LoadBookmarksFromFile(string path, string source)
3031
{
32+
if (!File.Exists(path))
33+
return new();
3134
var bookmarks = new List<Bookmark>();
3235
using var jsonDocument = JsonDocument.Parse(File.ReadAllText(path));
3336
if (!jsonDocument.RootElement.TryGetProperty("roots", out var rootElement))
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
using System.Collections.Generic;
22
using System.Linq;
33
using Flow.Launcher.Infrastructure;
4+
using Flow.Launcher.Plugin.BrowserBookmark.Models;
45
using Flow.Launcher.Plugin.SharedModels;
56

67
namespace Flow.Launcher.Plugin.BrowserBookmark.Commands
78
{
8-
internal static class Bookmarks
9+
internal static class BookmarkLoader
910
{
1011
internal static MatchResult MatchProgram(Bookmark bookmark, string queryString)
1112
{
@@ -18,23 +19,24 @@ internal static MatchResult MatchProgram(Bookmark bookmark, string queryString)
1819

1920
internal static List<Bookmark> LoadAllBookmarks()
2021
{
21-
var allbookmarks = new List<Bookmark>();
2222

2323
var chromeBookmarks = new ChromeBookmarkLoader();
2424
var mozBookmarks = new FirefoxBookmarkLoader();
2525
var edgeBookmarks = new EdgeBookmarkLoader();
2626

27+
var allBookmarks = new List<Bookmark>();
28+
2729
//TODO: Let the user select which browser's bookmarks are displayed
2830
// Add Firefox bookmarks
29-
mozBookmarks.GetBookmarks().ForEach(x => allbookmarks.Add(x));
31+
allBookmarks.AddRange(mozBookmarks.GetBookmarks());
3032

3133
// Add Chrome bookmarks
32-
chromeBookmarks.GetBookmarks().ForEach(x => allbookmarks.Add(x));
34+
allBookmarks.AddRange(chromeBookmarks.GetBookmarks());
3335

3436
// Add Edge (Chromium) bookmarks
35-
edgeBookmarks.GetBookmarks().ForEach(x => allbookmarks.Add(x));
37+
allBookmarks.AddRange(edgeBookmarks.GetBookmarks());
3638

37-
return allbookmarks.Distinct().ToList();
39+
return allBookmarks.Distinct().ToList();
3840
}
3941
}
40-
}
42+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
using Flow.Launcher.Plugin.BrowserBookmark.Models;
2+
using System.Collections.Generic;
3+
4+
namespace Flow.Launcher.Plugin.BrowserBookmark
5+
{
6+
public class CustomChromiumBookmarkLoader : ChromiumBookmarkLoader
7+
{
8+
public string BrowserDataPath { get; init; }
9+
public string BookmarkFilePath { get; init; }
10+
public string BrowserName { get; init; }
11+
12+
public override List<Bookmark> GetBookmarks() => BrowserDataPath != null ? LoadBookmarks(BrowserDataPath, BrowserName) : LoadBookmarksFromFile(BookmarkFilePath, BrowserName);
13+
}
14+
}

Plugins/Flow.Launcher.Plugin.BrowserBookmark/EdgeBookmarkLoader.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
using Flow.Launcher.Plugin.BrowserBookmark.Models;
12
using System;
23
using System.Collections.Generic;
34
using System.IO;

Plugins/Flow.Launcher.Plugin.BrowserBookmark/FirefoxBookmarkLoader.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
using Flow.Launcher.Plugin.BrowserBookmark.Models;
12
using System;
23
using System.Collections.Generic;
34
using System.Data.SQLite;

Plugins/Flow.Launcher.Plugin.BrowserBookmark/Flow.Launcher.Plugin.BrowserBookmark.csproj

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,4 +69,8 @@
6969
<PackageReference Include="UnidecodeSharp" Version="1.0.0" />
7070
</ItemGroup>
7171

72+
<ItemGroup>
73+
<Compile Remove="Bookmark.cs" />
74+
</ItemGroup>
75+
7276
</Project>

Plugins/Flow.Launcher.Plugin.BrowserBookmark/IBookmarkLoader.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
using System.Collections.Generic;
1+
using Flow.Launcher.Plugin.BrowserBookmark.Models;
2+
using System.Collections.Generic;
23

34
namespace Flow.Launcher.Plugin.BrowserBookmark
45
{

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ public void Init(PluginInitContext context)
2626

2727
_settings = context.API.LoadSettingJsonStorage<Settings>();
2828

29-
cachedBookmarks = Bookmarks.LoadAllBookmarks();
29+
cachedBookmarks = BookmarkLoader.LoadAllBookmarks();
3030
}
3131

3232
public List<Result> Query(Query query)
@@ -45,7 +45,7 @@ public List<Result> Query(Query query)
4545
Title = c.Name,
4646
SubTitle = c.Url,
4747
IcoPath = @"Images\bookmark.png",
48-
Score = Bookmarks.MatchProgram(c, param).Score,
48+
Score = BookmarkLoader.MatchProgram(c, param).Score,
4949
Action = _ =>
5050
{
5151
if (_settings.OpenInNewBrowserWindow)
@@ -93,7 +93,7 @@ public void ReloadData()
9393
{
9494
cachedBookmarks.Clear();
9595

96-
cachedBookmarks = Bookmarks.LoadAllBookmarks();
96+
cachedBookmarks = BookmarkLoader.LoadAllBookmarks();
9797
}
9898

9999
public string GetTranslatedPluginTitle()

Plugins/Flow.Launcher.Plugin.BrowserBookmark/Bookmark.cs renamed to Plugins/Flow.Launcher.Plugin.BrowserBookmark/Models/Bookmark.cs

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,6 @@
1-
using BinaryAnalysis.UnidecodeSharp;
2-
using System;
3-
using System.Collections.Generic;
4-
using System.Linq;
5-
using System.Text;
1+
using System.Collections.Generic;
62

7-
8-
namespace Flow.Launcher.Plugin.BrowserBookmark
3+
namespace Flow.Launcher.Plugin.BrowserBookmark.Models
94
{
105
// Source may be important in the future
116
public record Bookmark(string Name, string Url, string Source = "")
@@ -21,5 +16,7 @@ public virtual bool Equals(Bookmark other)
2116
{
2217
return other != null && Name == other.Name && Url == other.Url;
2318
}
19+
20+
public List<CustomBrowser> CustomBrowsers { get; set; }= new();
2421
}
2522
}

0 commit comments

Comments
 (0)