2019-10-06 01:55:57 +00:00
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
|
using System.Linq;
|
2021-09-22 23:09:30 +00:00
|
|
|
|
using Flow.Launcher.Plugin.BrowserBookmark.Models;
|
2021-01-26 07:01:39 +00:00
|
|
|
|
using Flow.Launcher.Plugin.SharedModels;
|
2019-10-06 01:55:57 +00:00
|
|
|
|
|
2024-04-16 07:00:19 +00:00
|
|
|
|
namespace Flow.Launcher.Plugin.BrowserBookmark.Commands;
|
|
|
|
|
|
|
|
|
|
|
|
internal static class BookmarkLoader
|
2019-10-06 01:55:57 +00:00
|
|
|
|
{
|
2024-04-16 07:00:19 +00:00
|
|
|
|
internal static MatchResult MatchProgram(Bookmark bookmark, string queryString)
|
2019-10-06 01:55:57 +00:00
|
|
|
|
{
|
2025-06-23 04:38:27 +00:00
|
|
|
|
var match = Main.Context.API.FuzzySearch(queryString, bookmark.Name);
|
2024-04-16 07:00:19 +00:00
|
|
|
|
if (match.IsSearchPrecisionScoreMet())
|
|
|
|
|
|
return match;
|
2020-11-01 11:22:31 +00:00
|
|
|
|
|
2025-06-23 04:38:27 +00:00
|
|
|
|
return Main.Context.API.FuzzySearch(queryString, bookmark.Url);
|
2024-04-16 07:00:19 +00:00
|
|
|
|
}
|
2019-10-06 01:55:57 +00:00
|
|
|
|
|
2024-04-16 07:00:19 +00:00
|
|
|
|
internal static List<Bookmark> LoadAllBookmarks(Settings setting)
|
|
|
|
|
|
{
|
|
|
|
|
|
var allBookmarks = new List<Bookmark>();
|
2021-09-22 23:09:30 +00:00
|
|
|
|
|
2024-04-16 07:00:19 +00:00
|
|
|
|
if (setting.LoadChromeBookmark)
|
|
|
|
|
|
{
|
|
|
|
|
|
// Add Chrome bookmarks
|
|
|
|
|
|
var chromeBookmarks = new ChromeBookmarkLoader();
|
|
|
|
|
|
allBookmarks.AddRange(chromeBookmarks.GetBookmarks());
|
|
|
|
|
|
}
|
2019-10-06 01:55:57 +00:00
|
|
|
|
|
2024-04-16 07:00:19 +00:00
|
|
|
|
if (setting.LoadFirefoxBookmark)
|
|
|
|
|
|
{
|
|
|
|
|
|
// Add Firefox bookmarks
|
|
|
|
|
|
var mozBookmarks = new FirefoxBookmarkLoader();
|
|
|
|
|
|
allBookmarks.AddRange(mozBookmarks.GetBookmarks());
|
|
|
|
|
|
}
|
2019-10-06 01:55:57 +00:00
|
|
|
|
|
2024-04-16 07:00:19 +00:00
|
|
|
|
if (setting.LoadEdgeBookmark)
|
|
|
|
|
|
{
|
|
|
|
|
|
// Add Edge (Chromium) bookmarks
|
|
|
|
|
|
var edgeBookmarks = new EdgeBookmarkLoader();
|
|
|
|
|
|
allBookmarks.AddRange(edgeBookmarks.GetBookmarks());
|
|
|
|
|
|
}
|
2020-07-16 09:44:11 +00:00
|
|
|
|
|
2024-04-16 07:00:19 +00:00
|
|
|
|
foreach (var browser in setting.CustomChromiumBrowsers)
|
|
|
|
|
|
{
|
|
|
|
|
|
IBookmarkLoader loader = browser.BrowserType switch
|
2021-09-23 18:07:40 +00:00
|
|
|
|
{
|
2024-04-16 07:00:19 +00:00
|
|
|
|
BrowserType.Chromium => new CustomChromiumBookmarkLoader(browser),
|
|
|
|
|
|
BrowserType.Firefox => new CustomFirefoxBookmarkLoader(browser),
|
|
|
|
|
|
_ => new CustomChromiumBookmarkLoader(browser),
|
|
|
|
|
|
};
|
|
|
|
|
|
allBookmarks.AddRange(loader.GetBookmarks());
|
2019-10-06 01:55:57 +00:00
|
|
|
|
}
|
2024-04-16 07:00:19 +00:00
|
|
|
|
|
|
|
|
|
|
return allBookmarks.Distinct().ToList();
|
2019-10-06 01:55:57 +00:00
|
|
|
|
}
|
2023-02-03 05:07:46 +00:00
|
|
|
|
}
|