跳到主要内容

github/tai

公开

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

提交记录
修改Core/Servicers/Instances/Data.cs+29 −54看文件
@@ -19,7 +19,7 @@ namespace Core.Servicers.Instances
1919 {
2020 this.appData = appData;
2121 }
22删除: public void Set(string processName, string processDescription, string file, int seconds, DateTime? time_ = null)
22新增: public void Set(string processName, int seconds, DateTime? time_ = null)
2323 {
2424 DateTime time = !time_.HasValue ? DateTime.Now : time_.Value;
2525 var today = time.Date;
@@ -31,7 +31,6 @@ namespace Core.Servicers.Instances
3131 {
3232 return;
3333 }
34删除: processDescription = processDescription == null ? string.Empty : processDescription;
3534
3635 AppModel app = appData.GetApp(processName);
3736
@@ -70,6 +69,15 @@ namespace Core.Servicers.Instances
7069 if (hourslog == null)
7170 {
7271 // 没有时创建
72新增:
73新增: if (seconds > 3600)
74新增: {
75新增: int overflowSeconds = seconds - 3600;
76新增: Set(processName, overflowSeconds, nowtime.AddHours(1));
77新增:
78新增: seconds = 3600;
79新增: }
80新增:
7381 db.HoursLog.Add(new Models.HoursLogModel()
7482 {
7583 DataTime = nowtime,
@@ -79,7 +87,18 @@ namespace Core.Servicers.Instances
7987 }
8088 else
8189 {
82删除: hourslog.Time += seconds;
90新增: if (hourslog.Time + seconds > 3600)
91新增: {
92新增: hourslog.Time = 3600;
93新增:
94新增: int overflowSeconds = hourslog.Time + seconds - 3600;
95新增:
96新增: Set(processName, overflowSeconds, nowtime.AddHours(1));
97新增: }
98新增: else
99新增: {
100新增: hourslog.Time += seconds;
101新增: }
83102 }
84103
85104 // 统计使用时长
@@ -91,6 +110,7 @@ namespace Core.Servicers.Instances
91110 }
92111 }
93112
113新增:
94114 public List<DailyLogModel> GetTodaylogList()
95115 {
96116
@@ -189,57 +209,6 @@ namespace Core.Servicers.Instances
189209 return GetDateRangelogList(weekStartDate, weekEndDate);
190210 }
191211
192删除: public void Set(string processName, int seconds, DateTime? time_ = null)
193删除: {
194删除: DateTime time = !time_.HasValue ? DateTime.Now : time_.Value;
195删除: var today = time.Date;
196删除:
197删除: // 当前时段
198删除: var nowtime = new DateTime(today.Year, today.Month, today.Day, time.Hour, 0, 0);
199删除:
200删除: if (string.IsNullOrEmpty(processName) || seconds <= 0)
201删除: {
202删除: return;
203删除: }
204删除:
205删除: AppModel app = appData.GetApp(processName);
206删除: if (app == null)
207删除: {
208删除: return;
209删除: }
210删除:
211删除: using (var db = new TaiDbContext())
212删除: {
213删除: var res = db.DailyLog.SingleOrDefault(m => m.Date == today && m.AppModelID == app.ID);
214删除: if (res != null)
215删除: {
216删除: res.Time += seconds;
217删除: }
218删除:
219删除: // 分时段记录数据
220删除:
221删除: var hourslog = db.HoursLog.SingleOrDefault(
222删除: m =>
223删除: m.DataTime == nowtime
224删除: && m.AppModelID == app.ID);
225删除: if (hourslog != null)
226删除: {
227删除: hourslog.Time += seconds;
228删除: }
229删除:
230删除:
231删除: // 统计使用时长
232删除:
233删除: app.TotalTime += seconds;
234删除:
235删除: appData.UpdateApp(app);
236删除:
237删除:
238删除: db.SaveChanges();
239删除: }
240删除:
241删除: }
242删除:
243212 public List<DailyLogModel> GetProcessMonthLogList(int appID, DateTime month)
244213 {
245214 //var app = appData.GetApp(processName);
@@ -276,6 +245,12 @@ namespace Core.Servicers.Instances
276245 m.AppModelID == appID
277246 && m.Date.Year == month.Year
278247 && m.Date.Month == month.Month));
248新增:
249新增: db.HoursLog.RemoveRange(
250新增: db.HoursLog.Where(m => m.AppModelID == appID
251新增: && m.DataTime.Year == month.Year
252新增: && m.DataTime.Month == month.Month));
253新增:
279254 db.SaveChanges();
280255 }
281256 }
修改Core/Servicers/Instances/Main.cs+4 −2看文件
@@ -275,11 +275,13 @@ namespace Core.Servicers.Instances
275275
276276 if (isCheck && sleepStatus != SleepStatus.Sleep)
277277 {
278新增: if (activeProcess == null)
279新增: {
280新增: activeStartTime = DateTime.Now;
281新增: }
278282 activeProcess = processName;
279283 activeProcessDescription = description;
280284 activeProcessFile = file;
281删除:
282删除: activeStartTime = DateTime.Now;
283285 }
284286 else
285287 {
修改Core/Servicers/Interfaces/IData.cs+3 −11看文件
@@ -14,11 +14,9 @@ namespace Core.Servicers.Interfaces
1414 /// <summary>
1515 /// 设置进程数据
1616 /// </summary>
17删除: /// <param name="processName"></param>
18删除: /// <param name="processDescription"></param>
19删除: /// <param name="file"></param>
20删除: /// <param name="seconds"></param>
21删除: void Set(string processName, string processDescription, string file, int seconds, DateTime? time = null);
17新增: /// <param name="processName">进程名称</param>
18新增: /// <param name="seconds">时长(秒)</param>
19新增: void Set(string processName, int seconds, DateTime? time = null);
2220
2321 /// <summary>
2422 /// 获取今天的数据
@@ -43,12 +41,6 @@ namespace Core.Servicers.Interfaces
4341 /// </summary>
4442 /// <returns></returns>
4543 IEnumerable<DailyLogModel> GetLastWeeklogList();
46删除: /// <summary>
47删除: /// 设置进程数据(仅通过进程名可能会出现重复的问题
48删除: /// </summary>
49删除: /// <param name="processName"></param>
50删除: /// <param name="seconds"></param>
51删除: void Set(string processName, int seconds, DateTime? time = null);
5244
5345 /// <summary>
5446 /// 获取指定进程某个月的数据
修改UI/Properties/AssemblyInfo.cs+1 −1看文件
@@ -51,5 +51,5 @@ using System.Windows;
5151//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
5252//通过使用 "*",如下所示:
5353// [assembly: AssemblyVersion("1.0.*")]
54删除:[assembly: AssemblyVersion("1.0.0.4")]
54新增:[assembly: AssemblyVersion("1.0.0.5")]
5555[assembly: AssemblyFileVersion("1.0.0.0")]