mirror of
https://github.com/ShareX/ShareX.git
synced 2024-09-29 17:02:05 +13:00
Added UploadCompleted event to Task, Added upload duration to TaskInfo which separate from task duration
This commit is contained in:
parent
d941ec0cf5
commit
25c4bc4435
4 changed files with 53 additions and 7 deletions
|
@ -1758,7 +1758,7 @@ private void InitHotkeys()
|
|||
|
||||
private void HandleHotkeys(HotkeySettings hotkeySetting)
|
||||
{
|
||||
DebugHelper.WriteLine("Hotkey triggered: " + hotkeySetting);
|
||||
DebugHelper.WriteLine("Hotkey triggered. " + hotkeySetting);
|
||||
|
||||
if (hotkeySetting.TaskSettings.Job != HotkeyType.None)
|
||||
{
|
||||
|
|
|
@ -138,6 +138,8 @@ public TimeSpan TaskDuration
|
|||
}
|
||||
}
|
||||
|
||||
public Stopwatch UploadDuration { get; set; }
|
||||
|
||||
public UploadResult Result { get; set; }
|
||||
|
||||
public TaskInfo(TaskSettings taskSettings)
|
||||
|
|
|
@ -65,6 +65,7 @@ public static void Start(WorkerTask task)
|
|||
task.StatusChanged += task_StatusChanged;
|
||||
task.UploadStarted += task_UploadStarted;
|
||||
task.UploadProgressChanged += task_UploadProgressChanged;
|
||||
task.UploadCompleted += task_UploadCompleted;
|
||||
task.TaskCompleted += task_TaskCompleted;
|
||||
task.UploadersConfigWindowRequested += Task_UploadersConfigWindowRequested;
|
||||
}
|
||||
|
@ -272,6 +273,28 @@ private static void task_UploadProgressChanged(WorkerTask task)
|
|||
}
|
||||
}
|
||||
|
||||
private static void task_UploadCompleted(WorkerTask task)
|
||||
{
|
||||
TaskInfo info = task.Info;
|
||||
|
||||
if (info != null && info.Result != null && !info.Result.IsError)
|
||||
{
|
||||
string url = info.Result.ToString();
|
||||
|
||||
if (!string.IsNullOrEmpty(url))
|
||||
{
|
||||
string text = $"Upload completed. URL: {url}";
|
||||
|
||||
if (info.UploadDuration != null)
|
||||
{
|
||||
text += $", Duration: {info.UploadDuration.ElapsedMilliseconds} ms";
|
||||
}
|
||||
|
||||
DebugHelper.WriteLine(text);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static void task_TaskCompleted(WorkerTask task)
|
||||
{
|
||||
try
|
||||
|
@ -318,7 +341,7 @@ private static void task_TaskCompleted(WorkerTask task)
|
|||
}
|
||||
else
|
||||
{
|
||||
DebugHelper.WriteLine($"Task completed. Filename: {info.FileName}, URL: {info.Result}, Duration: {info.TaskDuration.TotalMilliseconds:d} ms");
|
||||
DebugHelper.WriteLine($"Task completed. Filename: {info.FileName}, Duration: {(long)info.TaskDuration.TotalMilliseconds} ms");
|
||||
|
||||
string result = info.Result.ToString();
|
||||
|
||||
|
|
|
@ -28,6 +28,7 @@ You should have received a copy of the GNU General Public License
|
|||
using ShareX.UploadersLib;
|
||||
using ShareX.UploadersLib.OtherServices;
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.Drawing;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
|
@ -46,6 +47,7 @@ public class WorkerTask : IDisposable
|
|||
public event TaskEventHandler StatusChanged;
|
||||
public event TaskEventHandler UploadStarted;
|
||||
public event TaskEventHandler UploadProgressChanged;
|
||||
public event TaskEventHandler UploadCompleted;
|
||||
public event TaskEventHandler TaskCompleted;
|
||||
public event UploaderServiceEventHandler UploadersConfigWindowRequested;
|
||||
|
||||
|
@ -253,6 +255,8 @@ public void Start()
|
|||
{
|
||||
if (Status == TaskStatus.InQueue && !StopRequested)
|
||||
{
|
||||
Info.TaskStartTime = DateTime.UtcNow;
|
||||
|
||||
threadWorker = new ThreadWorker();
|
||||
Prepare();
|
||||
threadWorker.DoWork += ThreadDoWork;
|
||||
|
@ -302,8 +306,6 @@ public void Stop()
|
|||
|
||||
private void ThreadDoWork()
|
||||
{
|
||||
Info.TaskStartTime = DateTime.UtcNow;
|
||||
|
||||
CreateTaskReferenceHelper();
|
||||
|
||||
try
|
||||
|
@ -343,8 +345,6 @@ private void ThreadDoWork()
|
|||
DoAfterUploadJobs();
|
||||
}
|
||||
}
|
||||
|
||||
Info.TaskEndTime = DateTime.UtcNow;
|
||||
}
|
||||
|
||||
private void CreateTaskReferenceHelper()
|
||||
|
@ -425,6 +425,11 @@ private void DoUploadJob()
|
|||
isError = DoUpload(retry);
|
||||
}
|
||||
}
|
||||
|
||||
if (!isError)
|
||||
{
|
||||
OnUploadCompleted();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -851,7 +856,13 @@ public UploadResult UploadData(IGenericUploaderService service, Stream stream, s
|
|||
uploader.EarlyURLCopyRequested += url => ClipboardHelpers.CopyText(url);
|
||||
}
|
||||
|
||||
return uploader.Upload(stream, fileName);
|
||||
Info.UploadDuration = Stopwatch.StartNew();
|
||||
|
||||
UploadResult result = uploader.Upload(stream, fileName);
|
||||
|
||||
Info.UploadDuration.Stop();
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
return null;
|
||||
|
@ -1023,6 +1034,14 @@ private void OnUploadStarted()
|
|||
}
|
||||
}
|
||||
|
||||
private void OnUploadCompleted()
|
||||
{
|
||||
if (UploadCompleted != null)
|
||||
{
|
||||
threadWorker.InvokeAsync(() => UploadCompleted(this));
|
||||
}
|
||||
}
|
||||
|
||||
private void OnUploadProgressChanged()
|
||||
{
|
||||
if (UploadProgressChanged != null)
|
||||
|
@ -1033,6 +1052,8 @@ private void OnUploadProgressChanged()
|
|||
|
||||
private void OnTaskCompleted()
|
||||
{
|
||||
Info.TaskEndTime = DateTime.UtcNow;
|
||||
|
||||
Status = TaskStatus.Completed;
|
||||
|
||||
if (StopRequested)
|
||||
|
|
Loading…
Reference in a new issue