提交记录修改Core/Librarys/Browser/Favicon/ChromeFaviconManager.cs+13 −4看文件
修改Core/Models/Config/GeneralModel.cs+1 −1看文件
修改Core/Servicers/Instances/BrowserObserver.cs+28 −22看文件
修改Core/Servicers/Instances/VivaldiBrowserWatch.cs+1 −2看文件
| @@ -23,10 +23,19 @@ namespace Core.Librarys.Browser.Favicon | ||
| 23 | 23 | public ChromeFaviconManager(BrowserType browserType = BrowserType.Chrome) |
| 24 | 24 | { |
| 25 | 25 | var localAppDataDir = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData); |
| 26 | 删除: _chromeFaviconsPath = | |
| 27 | 删除: browserType == BrowserType.Chrome | |
| 28 | 删除: ? Path.Combine(localAppDataDir, "Google", "Chrome", "User Data", "Default", "Favicons") | |
| 29 | 删除: : Path.Combine(localAppDataDir, "Microsoft", "Edge", "User Data", "Default", "Favicons"); | |
| 26 | 新增: | |
| 27 | 新增: switch (browserType) | |
| 28 | 新增: { | |
| 29 | 新增: case BrowserType.Chrome: | |
| 30 | 新增: _chromeFaviconsPath = Path.Combine(localAppDataDir, "Google", "Chrome", "User Data", "Default", "Favicons"); | |
| 31 | 新增: break; | |
| 32 | 新增: case BrowserType.MSEdge: | |
| 33 | 新增: _chromeFaviconsPath = Path.Combine(localAppDataDir, "Microsoft", "Edge", "User Data", "Default", "Favicons"); | |
| 34 | 新增: break; | |
| 35 | 新增: case BrowserType.Vivaldi: | |
| 36 | 新增: _chromeFaviconsPath = Path.Combine(localAppDataDir, "Vivaldi", "User Data", "Default", "Favicons"); | |
| 37 | 新增: break; | |
| 38 | 新增: } | |
| 30 | 39 | _faviconsTempPath = $"{_chromeFaviconsPath}_tai.temp"; |
| 31 | 40 | _taiFaviconsPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "WebFavicons"); |
| 32 | 41 | if (!File.Exists(_chromeFaviconsPath)) |
| @@ -60,7 +60,7 @@ namespace Core.Models.Config | ||
| 60 | 60 | /// <summary> |
| 61 | 61 | /// 是否启用网站记录功能 |
| 62 | 62 | /// </summary> |
| 63 | 删除: [Config(Name = "网站浏览统计", Description = "统计浏览器的网站访问数据,支持:Google Chrome、MSEdge", Group = "功能", IsBeta = true)] | |
| 63 | 新增: [Config(Name = "网站浏览统计", Description = "统计浏览器的网站访问数据,支持:Google Chrome、MSEdge、Vivaldi", Group = "功能", IsBeta = true)] | |
| 64 | 64 | public bool IsWebEnabled { get; set; } = false; |
| 65 | 65 | } |
| 66 | 66 | } |
| 文件末尾没有换行 | ||
| @@ -127,7 +127,7 @@ namespace Core.Servicers.Instances | ||
| 127 | 127 | { |
| 128 | 128 | case BrowserType.Chrome: |
| 129 | 129 | _browserWatcher = new ChromeBrowserWatch(); |
| 130 | 删除: break; | |
| 130 | 新增: break; | |
| 131 | 131 | case BrowserType.Vivaldi: |
| 132 | 132 | _browserWatcher = new VivaldiBrowserWatch(); |
| 133 | 133 | break; |
| @@ -223,33 +223,38 @@ namespace Core.Servicers.Instances | ||
| 223 | 223 | { |
| 224 | 224 | return; |
| 225 | 225 | } |
| 226 | 删除: try | |
| 226 | 新增: | |
| 227 | 新增: if (_savedIconUrls.Contains(site.Url)) | |
| 227 | 228 | { |
| 228 | 删除: if (_savedIconUrls.Contains(site.Url)) | |
| 229 | 删除: { | |
| 230 | 删除: // 已经缓存的链接不再重复获取 | |
| 231 | 删除: return; | |
| 232 | 删除: } | |
| 229 | 新增: // 已经缓存的链接不再重复获取 | |
| 230 | 新增: return; | |
| 231 | 新增: } | |
| 233 | 232 | |
| 234 | 删除: if (_savedIconUrls.Count > 100) | |
| 235 | 删除: { | |
| 236 | 删除: // 限制缓存链接条数 | |
| 237 | 删除: _savedIconUrls.RemoveAt(0); | |
| 238 | 删除: } | |
| 233 | 新增: if (_savedIconUrls.Count > 100) | |
| 234 | 新增: { | |
| 235 | 新增: // 限制缓存链接条数 | |
| 236 | 新增: _savedIconUrls.RemoveAt(0); | |
| 237 | 新增: } | |
| 239 | 238 | |
| 240 | 删除: Task.Run(async () => | |
| 239 | 新增: Task.Run(async () => | |
| 240 | 新增: { | |
| 241 | 新增: try | |
| 241 | 242 | { |
| 242 | 243 | // 获取favicon |
| 243 | 244 | IFaviconManager fm = null; |
| 244 | 245 | switch (browserType) |
| 245 | 246 | { |
| 247 | 新增: // chrome内核的用同一个图标管理器 | |
| 246 | 248 | case BrowserType.Chrome: |
| 247 | 删除: fm = new ChromeFaviconManager(); | |
| 248 | 删除: break; | |
| 249 | 249 | case BrowserType.MSEdge: |
| 250 | 删除: fm = new ChromeFaviconManager(BrowserType.MSEdge); | |
| 250 | 新增: case BrowserType.Vivaldi: | |
| 251 | 新增: fm = new ChromeFaviconManager(browserType); | |
| 251 | 252 | break; |
| 252 | 253 | } |
| 254 | 新增: if (fm == null) | |
| 255 | 新增: { | |
| 256 | 新增: throw new Exception("FaviconManager is null!"); | |
| 257 | 新增: } | |
| 253 | 258 | |
| 254 | 259 | var data = await fm.GetIconDataAsync(site.Url); |
| 255 | 260 | if (data == null) |
| @@ -280,13 +285,14 @@ namespace Core.Servicers.Instances | ||
| 280 | 285 | _webData.UpdateUrlFavicon(site, webSite.IconFile); |
| 281 | 286 | } |
| 282 | 287 | } |
| 283 | 删除: }); | |
| 288 | 新增: } | |
| 289 | 新增: catch (Exception ex) | |
| 290 | 新增: { | |
| 291 | 新增: Logger.Error(ex.ToString()); | |
| 292 | 新增: } | |
| 293 | 新增: }); | |
| 294 | 新增: | |
| 284 | 295 | |
| 285 | 删除: } | |
| 286 | 删除: catch (Exception ex) | |
| 287 | 删除: { | |
| 288 | 删除: Logger.Error(ex.ToString()); | |
| 289 | 删除: } | |
| 290 | 296 | } |
| 291 | 297 | #endregion |
| 292 | 298 | |
| @@ -186,7 +186,6 @@ namespace Core.Servicers.Instances | ||
| 186 | 186 | { |
| 187 | 187 | var condtionEdit = automation.CreatePropertyCondition(30003, 50004); |
| 188 | 188 | var condtionName = automation.CreatePropertyCondition(30011, "urlFieldInput"); |
| 189 | 删除: var condtion = automation.CreateAndCondition(condtionEdit, condtionAccessKey); | |
| 190 | 189 | var addressElement = rootElement.FindFirst(TreeScope.TreeScope_Subtree, condtionName); |
| 191 | 190 | if (addressElement != null) |
| 192 | 191 | { |
| @@ -209,7 +208,7 @@ namespace Core.Servicers.Instances | ||
| 209 | 208 | { |
| 210 | 209 | this.url = url; |
| 211 | 210 | this.title = title; |
| 212 | 删除: OnSiteChanged?.Invoke(BrowserType.Chrome, new Models.WebPage.Site() | |
| 211 | 新增: OnSiteChanged?.Invoke(BrowserType.Vivaldi, new Models.WebPage.Site() | |
| 213 | 212 | { |
| 214 | 213 | Url = url, |
| 215 | 214 | Title = title |

