跳到主要内容

github/tai

公开

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

提交记录
修改Core/Models/Config/BehaviorModel.cs+5 −0看文件
@@ -11,6 +11,11 @@ namespace Core.Models.Config
1111 /// </summary>
1212 public class BehaviorModel
1313 {
14新增: [Config(Name = "睡眠监测", Description = "离开电脑时自动停止统计,重启软件生效。(一般情况不建议关闭)", Group = "偏好")]
15新增: /// <summary>
16新增: /// 睡眠监测
17新增: /// </summary>
18新增: public bool IsSleepWatch { get; set; } = true;
1419 [Config(IsCanImportExport = true, Name = "忽略应用", Description = "可以通过进程名称或者正则表达式进行匹配。当使用正则表达式时可以匹配程序路径", Group = "忽略应用", Placeholder = "进程名称,不需要输入.exe。支持正则表达式")]
1520 /// <summary>
1621 /// 忽略的进程列表
修改Core/Models/Config/GeneralModel.cs+5 −0看文件
@@ -46,6 +46,11 @@ namespace Core.Models.Config
4646 /// </summary>
4747 [Config(Options = "概览|统计|详细|分类", Name = "启动页", Description = "设置打开主界面时显示的页面", Group = "基础")]
4848 public int StartPage { get; set; } = 0;
49新增: [Config(Name = "启动软件时显示主界面", Description = "在开机自启动时此选项无效", Group = "基础")]
50新增: /// <summary>
51新增: /// 启动软件时显示主界面
52新增: /// </summary>
53新增: public bool IsStartupShowMainWindow { get; set; } = true;
4954 /// <summary>
5055 /// 概览页最为频繁显示条数
5156 /// </summary>
修改Core/Properties/AssemblyInfo.cs+2 −2看文件
@@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
3232//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
3333//通过使用 "*",如下所示:
3434// [assembly: AssemblyVersion("1.0.*")]
35删除:[assembly: AssemblyVersion("1.1.0.1")]
36删除:[assembly: AssemblyFileVersion("1.1.0.1")]
35新增:[assembly: AssemblyVersion("1.1.0.2")]
36新增:[assembly: AssemblyFileVersion("1.1.0.2")]
修改Core/Servicers/Instances/Main.cs+5 −5看文件
@@ -158,11 +158,6 @@ namespace Core.Servicers.Instances
158158 config = appConfig.GetConfig();
159159 UpdateConfigIgnoreProcess();
160160
161删除:
162删除:
163删除: // 启动睡眠监测
164删除: sleepdiscover.Start();
165删除:
166161 // 初始化过滤器
167162 _webFilter.Init();
168163
@@ -180,6 +175,11 @@ namespace Core.Servicers.Instances
180175 {
181176 _webServer.Start();
182177 }
178新增: if (config.Behavior.IsSleepWatch)
179新增: {
180新增: // 启动睡眠监测
181新增: sleepdiscover.Start();
182新增: }
183183 }
184184 public void Stop()
185185 {
修改Core/Servicers/Instances/Sleepdiscover.cs+5 −0看文件
@@ -68,6 +68,11 @@ namespace Core.Servicers.Instances
6868 Win32API.SetKeyboardHook(keyboardProc);
6969 }
7070
71新增: public void Stop()
72新增: {
73新增: StopTimer();
74新增: }
75新增:
7176 private void StartTimer()
7277 {
7378 StopTimer();
修改Core/Servicers/Interfaces/ISleepdiscover.cs+4 −0看文件
@@ -13,6 +13,10 @@ namespace Core.Servicers.Interfaces
1313 /// 启动
1414 /// </summary>
1515 void Start();
16新增: /// <summary>
17新增: /// 停止
18新增: /// </summary>
19新增: void Stop();
1620
1721 /// <summary>
1822 /// 休眠状态发生更改
修改UI/Properties/AssemblyInfo.cs+2 −2看文件
@@ -51,5 +51,5 @@ using System.Windows;
5151//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
5252//通过使用 "*",如下所示:
5353// [assembly: AssemblyVersion("1.0.*")]
54删除:[assembly: AssemblyVersion("1.5.0.1")]
55删除:[assembly: AssemblyFileVersion("1.5.0.1")]
54新增:[assembly: AssemblyVersion("1.5.0.2")]
55新增:[assembly: AssemblyFileVersion("1.5.0.2")]
修改UI/Servicers/MainServicer.cs+5 −2看文件
@@ -15,6 +15,7 @@ namespace UI.Servicers
1515 private readonly IAppContextMenuServicer appContextMenuServicer;
1616 private readonly IWebSiteContextMenuServicer _webSiteContext;
1717 private readonly IStatusBarIconServicer _statusBarIconServicer;
18新增: private readonly IAppConfig _config;
1819 private bool isSelfStart = false;
1920 public MainServicer(
2021 IMain main,
@@ -22,7 +23,8 @@ namespace UI.Servicers
2223 IInputServicer inputServicer,
2324 IAppContextMenuServicer appContextMenuServicer,
2425 IWebSiteContextMenuServicer webSiteContext_,
25删除: IStatusBarIconServicer statusBarIconServicer_)
26新增: IStatusBarIconServicer statusBarIconServicer_,
27新增: IAppConfig config_)
2628 {
2729 this.main = main;
2830 this.themeServicer = themeServicer;
@@ -30,6 +32,7 @@ namespace UI.Servicers
3032 this.appContextMenuServicer = appContextMenuServicer;
3133 _webSiteContext = webSiteContext_;
3234 _statusBarIconServicer = statusBarIconServicer_;
35新增: _config = config_;
3336 }
3437 public void Start(bool isSelfStart)
3538 {
@@ -47,7 +50,7 @@ namespace UI.Servicers
4750 appContextMenuServicer.Init();
4851 _webSiteContext.Init();
4952
50删除: if(!isSelfStart)
53新增: if (!isSelfStart && _config.GetConfig().General.IsStartupShowMainWindow)
5154 {
5255 _statusBarIconServicer.ShowMainWindow();
5356 }
修改UI/ViewModels/DataPageVM.cs+58 −45看文件
@@ -204,32 +204,39 @@ namespace UI.ViewModels
204204 private List<ChartsDataModel> MapToChartsData(IEnumerable<Core.Models.DailyLogModel> list)
205205 {
206206 var resData = new List<ChartsDataModel>();
207删除: var config = appConfig.GetConfig();
208删除:
209删除: foreach (var item in list)
207新增: try
210208 {
211删除: var bindModel = new ChartsDataModel();
212删除: bindModel.Data = item;
213删除: bindModel.Name = string.IsNullOrEmpty(item.AppModel?.Description) ? item.AppModel.Name : item.AppModel.Description;
214删除: bindModel.Value = item.Time;
215删除: bindModel.Tag = Time.ToString(item.Time);
216删除: bindModel.PopupText = item.AppModel?.File;
217删除: bindModel.Icon = item.AppModel?.IconFile;
218删除: bindModel.BadgeList = new List<ChartBadgeModel>();
219删除: if (item.AppModel.Category != null)
209新增: var config = appConfig.GetConfig();
210新增:
211新增: foreach (var item in list)
220212 {
221删除: bindModel.BadgeList.Add(new ChartBadgeModel()
213新增: var bindModel = new ChartsDataModel();
214新增: bindModel.Data = item;
215新增: bindModel.Name = string.IsNullOrEmpty(item.AppModel?.Description) ? item.AppModel.Name : item.AppModel.Description;
216新增: bindModel.Value = item.Time;
217新增: bindModel.Tag = Time.ToString(item.Time);
218新增: bindModel.PopupText = item.AppModel?.File;
219新增: bindModel.Icon = item.AppModel?.IconFile;
220新增: bindModel.BadgeList = new List<ChartBadgeModel>();
221新增: if (item.AppModel.Category != null)
222222 {
223删除: Name = item.AppModel.Category.Name,
224删除: Color = item.AppModel.Category.Color,
225删除: Type = ChartBadgeType.Category
226删除: });
227删除: }
228删除: if (config.Behavior.IgnoreProcessList.Contains(item.AppModel.Name))
229删除: {
230删除: bindModel.BadgeList.Add(ChartBadgeModel.IgnoreBadge);
223新增: bindModel.BadgeList.Add(new ChartBadgeModel()
224新增: {
225新增: Name = item.AppModel.Category.Name,
226新增: Color = item.AppModel.Category.Color,
227新增: Type = ChartBadgeType.Category
228新增: });
229新增: }
230新增: if (config.Behavior.IgnoreProcessList.Contains(item.AppModel.Name))
231新增: {
232新增: bindModel.BadgeList.Add(ChartBadgeModel.IgnoreBadge);
233新增: }
234新增: resData.Add(bindModel);
231235 }
232删除: resData.Add(bindModel);
236新增: }
237新增: catch (Exception e)
238新增: {
239新增: Logger.Error(e.ToString());
233240 }
234241
235242 return resData;
@@ -238,34 +245,40 @@ namespace UI.ViewModels
238245 private List<ChartsDataModel> MapToChartsWebData(IEnumerable<Core.Models.Db.WebSiteModel> list)
239246 {
240247 var resData = new List<ChartsDataModel>();
241删除: var config = appConfig.GetConfig();
242删除:
243删除: foreach (var item in list)
248新增: try
244249 {
245删除: var bindModel = new ChartsDataModel();
246删除: bindModel.Data = item;
247删除: bindModel.Name = item.Title;
248删除: bindModel.Value = item.Duration;
249删除: bindModel.Tag = Time.ToString(item.Duration);
250删除: bindModel.PopupText = item.Domain;
251删除: bindModel.Icon = item.IconFile;
252删除: bindModel.BadgeList = new List<ChartBadgeModel>();
253删除: if (item.Category != null)
250新增: var config = appConfig.GetConfig();
251新增:
252新增: foreach (var item in list)
254253 {
255删除: bindModel.BadgeList.Add(new ChartBadgeModel()
254新增: var bindModel = new ChartsDataModel();
255新增: bindModel.Data = item;
256新增: bindModel.Name = item.Title;
257新增: bindModel.Value = item.Duration;
258新增: bindModel.Tag = Time.ToString(item.Duration);
259新增: bindModel.PopupText = item.Domain;
260新增: bindModel.Icon = item.IconFile;
261新增: bindModel.BadgeList = new List<ChartBadgeModel>();
262新增: if (item.Category != null)
256263 {
257删除: Name = item.Category.Name,
258删除: Color = item.Category.Color,
259删除: Type = ChartBadgeType.Category
260删除: });
261删除: }
262删除: if (config.Behavior.IgnoreURLList.Contains(item.Domain))
263删除: {
264删除: bindModel.BadgeList.Add(ChartBadgeModel.IgnoreBadge);
264新增: bindModel.BadgeList.Add(new ChartBadgeModel()
265新增: {
266新增: Name = item.Category.Name,
267新增: Color = item.Category.Color,
268新增: Type = ChartBadgeType.Category
269新增: });
270新增: }
271新增: if (config.Behavior.IgnoreURLList.Contains(item.Domain))
272新增: {
273新增: bindModel.BadgeList.Add(ChartBadgeModel.IgnoreBadge);
274新增: }
275新增: resData.Add(bindModel);
265276 }
266删除: resData.Add(bindModel);
267277 }
268删除:
278新增: catch (Exception e)
279新增: {
280新增: Logger.Error(e.ToString());
281新增: }
269282 return resData;
270283 }
271284 #endregion