跳到主要内容

github/tai

公开

Tai · Windows 软件与网站使用时长统计。上游 Planshit/Tai 的源码镜像,非灵栈原创;MIT 许可。来源:https://github.com/Planshit/Tai 。本次为手动同步,暂不提供安装包。

提交记录
修改Core/Librarys/Browser/Favicon/ChromeFaviconManager.cs+23 −13看文件
@@ -3,10 +3,12 @@ using System;
33using System.Collections.Generic;
44using System.Data.SQLite;
55using System.Diagnostics;
6新增:using System.Drawing;
67using System.IO;
78using System.Linq;
89using System.Net;
910using System.Security.Cryptography;
11新增:using System.Security.Policy;
1012using System.Text;
1113using System.Threading;
1214using System.Threading.Tasks;
@@ -35,13 +37,13 @@ namespace Core.Librarys.Browser.Favicon
3537 {
3638 Directory.CreateDirectory(_taiFaviconsPath);
3739 }
38删除: Debug.WriteLine(_chromeFaviconsPath);
3940 }
4041 public async Task<object> GetIconDataAsync(string url)
4142 {
4243 if (string.IsNullOrEmpty(url)) { throw new ArgumentNullException("url"); }
4344
4445 url = UrlHelper.ChromeURLEncode(url);
46新增:
4547 var result = await Task.Run(() =>
4648 {
4749 byte[] icon = { };
@@ -52,18 +54,9 @@ namespace Core.Librarys.Browser.Favicon
5254 using (var con = new SQLiteConnection($"Data Source={_faviconsTempPath}"))
5355 {
5456 con.Open();
55删除: string iconId = string.Empty;
56删除: using (var cmd = new SQLiteCommand($"select * from icon_mapping where page_url like'{url}%' LIMIT 1", con))
57删除: {
58删除: using (SQLiteDataReader dr = cmd.ExecuteReader())
59删除: {
60删除: if (dr.Read())
61删除: {
62删除: iconId = dr["icon_id"].ToString();
63删除: }
64删除: }
65删除: cmd.CommandText = "select * from ";
66删除: }
57新增:
58新增: string iconId = GetIconId(url, con);
59新增:
6760 if (iconId != string.Empty)
6861 {
6962 using (var cmd = new SQLiteCommand($"select * from favicon_bitmaps where icon_id={iconId} order by width desc LIMIT 1", con))
@@ -91,6 +84,23 @@ namespace Core.Librarys.Browser.Favicon
9184 return result.Length == 0 ? null : result;
9285 }
9386
87新增: private string GetIconId(string url_, SQLiteConnection con_)
88新增: {
89新增: string iconId = string.Empty;
90新增: string sqlStr = url_.IndexOf("://") == -1 ? $"%{url_}%" : $"{url_}%";
91新增: using (var cmd = new SQLiteCommand($"select * from icon_mapping where page_url like'{sqlStr}' LIMIT 1", con_))
92新增: {
93新增: using (SQLiteDataReader dr = cmd.ExecuteReader())
94新增: {
95新增: if (dr.Read())
96新增: {
97新增: iconId = dr["icon_id"].ToString();
98新增: }
99新增: }
100新增: }
101新增: return iconId;
102新增: }
103新增:
94104 public async Task<string> SaveToLocalIconAsync(object data)
95105 {
96106 if (data == null) { throw new ArgumentNullException("data"); }