public static void UploadFile(string filePath, TaskSettings taskSettings = null) { if (taskSettings == null) { taskSettings = TaskSettings.GetDefaultTaskSettings(); } if (!string.IsNullOrEmpty(filePath)) { if (File.Exists(filePath)) { UploadTask task = UploadTask.CreateFileUploaderTask(filePath, taskSettings); if (task != null) { TaskManager.Start(task); } } else if (Directory.Exists(filePath)) { string[] files = Directory.GetFiles(filePath, "*.*", SearchOption.AllDirectories); UploadFile(files, taskSettings); } } }
private static void CreateListViewItem(UploadTask task) { if (ListViewControl != null) { TaskInfo info = task.Info; DebugHelper.WriteLine("Task in queue. Job: {0}, Type: {1}, Host: {2}", info.Job, info.UploadDestination, info.UploaderHost); ListViewItem lvi = new ListViewItem(); lvi.Tag = task; lvi.Text = info.FileName; lvi.SubItems.Add("In queue"); lvi.SubItems.Add(string.Empty); lvi.SubItems.Add(string.Empty); lvi.SubItems.Add(string.Empty); lvi.SubItems.Add(string.Empty); lvi.SubItems.Add(string.Empty); lvi.ImageIndex = 3; if (Program.Settings.ShowMostRecentTaskFirst) { ListViewControl.Items.Insert(0, lvi); } else { ListViewControl.Items.Add(lvi); } lvi.EnsureVisible(); ListViewControl.FillLastColumn(); } }
private static void task_UploadProgressChanged(UploadTask task) { if (task.Status == TaskStatus.Working && ListViewControl != null) { TaskInfo info = task.Info; ListViewItem lvi = FindListViewItem(task); if (lvi != null) { lvi.SubItems[1].Text = string.Format("{0:0.0}%", info.Progress.Percentage); lvi.SubItems[2].Text = string.Format("{0} / {1}", info.Progress.Position.ToSizeString(Program.Settings.BinaryUnits), info.Progress.Length.ToSizeString(Program.Settings.BinaryUnits)); if (info.Progress.Speed > 0) { lvi.SubItems[3].Text = ((long)info.Progress.Speed).ToSizeString(Program.Settings.BinaryUnits) + "/s"; } lvi.SubItems[4].Text = Helpers.ProperTimeSpan(info.Progress.Elapsed); lvi.SubItems[5].Text = Helpers.ProperTimeSpan(info.Progress.Remaining); } UpdateProgressUI(); } }
public static UploadTask CreateFileUploaderTask(string filePath, TaskSettings taskSettings) { EDataType dataType = Helpers.FindDataType(filePath); UploadTask task = new UploadTask(taskSettings); task.Info.DataType = dataType; task.Info.FilePath = filePath; if (task.Info.TaskSettings.UploadSettings.FileUploadUseNamePattern) { string ext = Path.GetExtension(task.Info.FilePath); task.Info.FileName = TaskHelpers.GetFilename(task.Info.TaskSettings, ext); } if (task.Info.TaskSettings.AdvancedSettings.ProcessImagesDuringFileUpload && dataType == EDataType.Image) { task.Info.Job = TaskJob.ImageJob; task.tempImage = ImageHelpers.LoadImage(filePath); } else { task.Info.Job = TaskJob.FileUpload; task.Data = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read); } return(task); }
public static void UploadText(string text, TaskSettings taskSettings = null, bool allowCustomText = false) { if (taskSettings == null) { taskSettings = TaskSettings.GetDefaultTaskSettings(); } if (!string.IsNullOrEmpty(text)) { if (allowCustomText) { string input = taskSettings.AdvancedSettings.TextCustom; if (!string.IsNullOrEmpty(input)) { if (taskSettings.AdvancedSettings.TextCustomEncodeInput) { text = HttpUtility.HtmlEncode(text); } text = input.Replace("%input", text); } } UploadTask task = UploadTask.CreateTextUploaderTask(text, taskSettings); TaskManager.Start(task); } }
public static UploadTask CreateDataUploaderTask(EDataType dataType, Stream stream, string fileName, TaskSettings taskSettings) { UploadTask task = new UploadTask(taskSettings); task.Info.Job = TaskJob.DataUpload; task.Info.DataType = dataType; task.Info.FileName = fileName; task.Data = stream; return task; }
public static UploadTask CreateImageUploaderTask(Image image, TaskSettings taskSettings) { UploadTask task = new UploadTask(taskSettings); task.Info.Job = TaskJob.ImageJob; task.Info.DataType = EDataType.Image; task.Info.FileName = TaskHelpers.GetImageFilename(taskSettings, image); task.tempImage = image; return(task); }
public static UploadTask CreateTextUploaderTask(string text, TaskSettings taskSettings) { UploadTask task = new UploadTask(taskSettings); task.Info.Job = TaskJob.TextUpload; task.Info.DataType = EDataType.Text; task.Info.FileName = TaskHelpers.GetFilename(taskSettings, taskSettings.AdvancedSettings.TextFileExtension); task.tempText = text; return(task); }
public static UploadTask CreateURLShortenerTask(string url, TaskSettings taskSettings) { UploadTask task = new UploadTask(taskSettings); task.Info.Job = TaskJob.ShortenURL; task.Info.DataType = EDataType.URL; task.Info.FileName = "URL shorten"; task.Info.Result.URL = url; return(task); }
public static UploadTask CreateDataUploaderTask(EDataType dataType, Stream stream, string fileName, TaskSettings taskSettings) { UploadTask task = new UploadTask(taskSettings); task.Info.Job = TaskJob.DataUpload; task.Info.DataType = dataType; task.Info.FileName = fileName; task.Data = stream; return(task); }
public static void Start(UploadTask task) { Tasks.Add(task); task.StatusChanged += task_StatusChanged; task.UploadStarted += new UploadTask.TaskEventHandler(task_UploadStarted); task.UploadProgressChanged += new UploadTask.TaskEventHandler(task_UploadProgressChanged); task.UploadCompleted += new UploadTask.TaskEventHandler(task_UploadCompleted); CreateListViewItem(task); StartTasks(); }
public static UploadTask CreateShareURLTask(string url, TaskSettings taskSettings) { UploadTask task = new UploadTask(taskSettings); task.Info.Job = TaskJob.ShareURL; task.Info.DataType = EDataType.URL; task.Info.FileName = "Share URL (" + taskSettings.URLSharingServiceDestination.GetDescription() + ")"; task.Info.Result.URL = url; return(task); }
public static void Start(UploadTask task) { Tasks.Add(task); UpdateDragAndDropTip(); task.StatusChanged += task_StatusChanged; task.UploadStarted += task_UploadStarted; task.UploadProgressChanged += task_UploadProgressChanged; task.UploadCompleted += task_UploadCompleted; CreateListViewItem(task); StartTasks(); }
public static void ShareURL(string url, URLSharingServices urlSharingService) { if (!string.IsNullOrEmpty(url)) { TaskSettings taskSettings = TaskSettings.GetDefaultTaskSettings(); taskSettings.URLSharingServiceDestination = urlSharingService; UploadTask task = UploadTask.CreateShareURLTask(url, taskSettings); TaskManager.Start(task); } }
public static void ShortenURL(string url, UrlShortenerType urlShortener) { if (!string.IsNullOrEmpty(url)) { TaskSettings taskSettings = TaskSettings.GetDefaultTaskSettings(); taskSettings.URLShortenerDestination = urlShortener; UploadTask task = UploadTask.CreateURLShortenerTask(url, taskSettings); TaskManager.Start(task); } }
private static void ChangeListViewItemStatus(UploadTask task) { if (ListViewControl != null) { ListViewItem lvi = FindListViewItem(task); if (lvi != null) { lvi.SubItems[1].Text = task.Info.Status; } } }
private void openURLToolStripMenuItem_Click(object sender, EventArgs e) { if (lvUploaders.SelectedItems.Count > 0) { UploadTask task = lvUploaders.SelectedItems[0].Tag as UploadTask; if (task != null && task.Info != null && task.Info.Result != null && !string.IsNullOrEmpty(task.Info.Result.ToString())) { TaskEx.Run(() => Process.Start(task.Info.Result.ToString())); } } }
public static void RunImageTask(Image img, TaskSettings taskSettings) { if (taskSettings == null) { taskSettings = TaskSettings.GetDefaultTaskSettings(); } if (img != null && taskSettings != null) { UploadTask task = UploadTask.CreateImageUploaderTask(img, taskSettings); TaskManager.Start(task); } }
public static void UploadText(string text, TaskSettings taskSettings = null) { if (taskSettings == null) { taskSettings = TaskSettings.GetDefaultTaskSettings(); } if (!string.IsNullOrEmpty(text)) { UploadTask task = UploadTask.CreateTextUploaderTask(text, taskSettings); TaskManager.Start(task); } }
public static void UploadImageStream(Stream stream, string filename, TaskSettings taskSettings = null) { if (taskSettings == null) { taskSettings = TaskSettings.GetDefaultTaskSettings(); } if (stream != null && stream.Length > 0 && !string.IsNullOrEmpty(filename)) { UploadTask task = UploadTask.CreateDataUploaderTask(EDataType.Image, stream, filename, taskSettings); TaskManager.Start(task); } }
public static void ShareURL(string url, TaskSettings taskSettings = null) { if (!string.IsNullOrEmpty(url)) { if (taskSettings == null) { taskSettings = TaskSettings.GetDefaultTaskSettings(); } UploadTask task = UploadTask.CreateShareURLTask(url, taskSettings); TaskManager.Start(task); } }
private ListViewItem FindListViewItem(UploadTask task) { foreach (ListViewItem lvi in lvUploaders.Items) { UploadTask x = lvi.Tag as UploadTask; if (x != null && x == task) { return(lvi); } } return(null); }
public static void Start(UploadTask task) { if (task != null) { Tasks.Add(task); UpdateMainFormTip(); task.StatusChanged += task_StatusChanged; task.UploadStarted += task_UploadStarted; task.UploadProgressChanged += task_UploadProgressChanged; task.UploadCompleted += task_UploadCompleted; CreateListViewItem(task); StartTasks(); } }
public static void PrepareFileImage(UploadTask task) { int sizeLimit = task.Info.TaskSettings.ImageSettings.ImageSizeLimit * 1000; if (sizeLimit > 0 && task.Data.Length > sizeLimit) { using (Stream stream = task.Data) using (Image img = Image.FromStream(stream)) { task.Data = SaveImage(task.Info.TaskSettings, img, task.Info.TaskSettings.ImageSettings.ImageFormat2); task.Info.FileName = Path.ChangeExtension(task.Info.FileName, task.Info.TaskSettings.ImageSettings.ImageFormat2.GetDescription()); } } }
public static void IndexFolder(string folderPath, TaskSettings taskSettings = null) { if (!string.IsNullOrEmpty(folderPath) && Directory.Exists(folderPath)) { if (taskSettings == null) { taskSettings = TaskSettings.GetDefaultTaskSettings(); } taskSettings.IndexerSettings.BinaryUnits = Program.Settings.BinaryUnits; string text = Indexer.Index(folderPath, taskSettings.IndexerSettings); UploadTask task = UploadTask.CreateTextUploaderTask(text, taskSettings); task.Info.FileName = Path.ChangeExtension(task.Info.FileName, taskSettings.IndexerSettings.Output.ToString().ToLower()); TaskManager.Start(task); } }
private static ListViewItem FindListViewItem(UploadTask task) { if (ListViewControl != null) { foreach (ListViewItem lvi in ListViewControl.Items) { UploadTask tag = lvi.Tag as UploadTask; if (tag != null && tag == task) { return(lvi); } } } return(null); }
public static void Remove(UploadTask task) { if (task != null) { task.Stop(); Tasks.Remove(task); ListViewItem lvi = FindListViewItem(task); if (lvi != null) { ListViewControl.Items.Remove(lvi); } task.Dispose(); } }
private void bw_ProgressChanged(object sender, ProgressChangedEventArgs e) { if (!IsDisposed) { UploadTask task = e.UserState as UploadTask; if (task != null) { ListViewItem lvi = FindListViewItem(task); if (lvi != null) { switch ((UploadStatus)e.ProgressPercentage) { case UploadStatus.Uploading: lvi.BackColor = Color.Gold; lvi.SubItems[1].Text = "Uploading..."; lvi.SubItems[2].Text = string.Empty; break; case UploadStatus.Uploaded: TaskInfo info = task.Info; if (info != null && info.Result != null) { if (!info.Result.IsError && !string.IsNullOrEmpty(info.Result.ToString())) { lvi.BackColor = Color.LightGreen; lvi.SubItems[1].Text = "Success: " + info.Result; } else { lvi.BackColor = Color.LightCoral; lvi.SubItems[1].Text = "Failed: " + info.Result.ErrorsToString(); txtConsole.AppendText(info.Result.ErrorsToString()); } } lvi.SubItems[2].Text = (int)info.UploadDuration.TotalMilliseconds + " ms"; break; } } } } }
public static void Remove(UploadTask task) { if (task != null) { task.Stop(); Tasks.Remove(task); UpdateDragAndDropTip(); ListViewItem lvi = FindListViewItem(task); if (lvi != null) { ListViewControl.Items.Remove(lvi); } task.Dispose(); } }
private static void task_UploadStarted(UploadTask task) { TaskInfo info = task.Info; string status = string.Format("Upload started. Filename: {0}", info.FileName); if (!string.IsNullOrEmpty(info.FilePath)) { status += ", Filepath: " + info.FilePath; } DebugHelper.WriteLine(status); ListViewItem lvi = FindListViewItem(task); if (lvi != null) { lvi.Text = info.FileName; lvi.SubItems[1].Text = info.Status; lvi.ImageIndex = 0; } }
private void copyToolStripMenuItem_Click(object sender, EventArgs e) { if (lvUploaders.SelectedItems.Count > 0) { List <string> urls = new List <string>(); foreach (ListViewItem lvi in lvUploaders.SelectedItems) { UploadTask task = lvi.Tag as UploadTask; if (task != null && task.Info != null && task.Info.Result != null && !string.IsNullOrEmpty(task.Info.Result.ToString())) { urls.Add(string.Format("{0}: {1}", lvi.Text, task.Info.Result)); } } if (urls.Count > 0) { ClipboardHelpers.CopyText(string.Join("\r\n", urls.ToArray())); } } }
public static UploadTask CreateFileJobTask(string filePath, TaskSettings taskSettings) { EDataType dataType = Helpers.FindDataType(filePath); UploadTask task = new UploadTask(taskSettings); task.Info.DataType = dataType; task.Info.FilePath = filePath; if (task.Info.TaskSettings.UploadSettings.FileUploadUseNamePattern) { string ext = Path.GetExtension(task.Info.FilePath); task.Info.FileName = TaskHelpers.GetFilename(task.Info.TaskSettings, ext); } task.Info.Job = TaskJob.Job; if (task.Info.IsUploadJob) { task.Data = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read); } return(task); }
public static UploadTask CreateURLShortenerTask(string url, TaskSettings taskSettings) { UploadTask task = new UploadTask(taskSettings); task.Info.Job = TaskJob.ShortenURL; task.Info.DataType = EDataType.URL; task.Info.FileName = string.Format(Resources.UploadTask_CreateURLShortenerTask_Shorten_URL___0__, taskSettings.URLShortenerDestination.GetLocalizedDescription()); task.Info.Result.URL = url; return task; }
private ListViewItem FindListViewItem(UploadTask task) { foreach (ListViewItem lvi in lvUploaders.Items) { UploadTask x = lvi.Tag as UploadTask; if (x != null && x == task) return lvi; } return null; }
public static UploadTask CreateDownloadUploadTask(string url, TaskSettings taskSettings) { UploadTask task = new UploadTask(taskSettings); task.Info.Job = TaskJob.DownloadUpload; task.Info.DataType = TaskHelpers.FindDataType(url, taskSettings); task.Info.FileName = URLHelpers.GetFileName(url, true); if (string.IsNullOrEmpty(task.Info.FileName)) { return null; } task.Info.Result.URL = url; return task; }
public static UploadTask CreateFileJobTask(string filePath, TaskSettings taskSettings) { UploadTask task = new UploadTask(taskSettings); task.Info.FilePath = filePath; task.Info.DataType = TaskHelpers.FindDataType(task.Info.FilePath, taskSettings); if (task.Info.TaskSettings.UploadSettings.FileUploadUseNamePattern) { string ext = Path.GetExtension(task.Info.FilePath); task.Info.FileName = TaskHelpers.GetFilename(task.Info.TaskSettings, ext); } task.Info.Job = TaskJob.Job; if (task.Info.IsUploadJob && !task.LoadFileStream()) { return null; } return task; }
private static void task_StatusChanged(UploadTask task) { DebugHelper.WriteLine("Task status: " + task.Status); ChangeListViewItemStatus(task); UpdateProgressUI(); }
private static void task_UploadCompleted(UploadTask task) { try { if (ListViewControl != null && task != null) { if (task.RequestSettingUpdate) { Program.MainForm.UpdateMainFormSettings(); } TaskInfo info = task.Info; if (info != null && info.Result != null) { ListViewItem lvi = FindListViewItem(task); if (info.Result.IsError) { string errors = string.Join("\r\n\r\n", info.Result.Errors.ToArray()); DebugHelper.WriteLine("Task failed. Filename: {0}, Errors:\r\n{1}", info.FileName, errors); if (lvi != null) { lvi.SubItems[1].Text = "Error"; lvi.SubItems[6].Text = string.Empty; lvi.ImageIndex = 1; } if (task.Info.TaskSettings.GeneralSettings.PlaySoundAfterUpload) { SystemSounds.Asterisk.Play(); } } else { DebugHelper.WriteLine("Task completed. Filename: {0}, URL: {1}, Duration: {2} ms", info.FileName, info.Result.ToString(), (int)info.UploadDuration.TotalMilliseconds); string result = info.Result.ToString(); if (string.IsNullOrEmpty(result) && !string.IsNullOrEmpty(info.FilePath)) { result = info.FilePath; } if (lvi != null) { lvi.Text = info.FileName; lvi.SubItems[1].Text = info.Status; lvi.ImageIndex = 2; if (!string.IsNullOrEmpty(result)) { lvi.SubItems[6].Text = result; } } if (!task.StopRequested && !string.IsNullOrEmpty(result)) { if (task.Info.TaskSettings.GeneralSettings.SaveHistory) { HistoryManager.AddHistoryItemAsync(Program.HistoryFilePath, info.GetHistoryItem()); } if (!info.TaskSettings.AdvancedSettings.DisableNotifications) { if (task.Info.TaskSettings.GeneralSettings.PlaySoundAfterUpload) { SystemSounds.Exclamation.Play(); } if (!string.IsNullOrEmpty(info.TaskSettings.AdvancedSettings.BalloonTipContentFormat)) { result = new UploadInfoParser().Parse(info, info.TaskSettings.AdvancedSettings.BalloonTipContentFormat); } TaskHelpers.ShowResultNotifications(result, info.TaskSettings, info.FilePath); if (info.TaskSettings.GeneralSettings.ShowAfterUploadForm) { AfterUploadForm dlg = new AfterUploadForm(info); NativeMethods.ShowWindow(dlg.Handle, (int)WindowShowStyle.ShowNoActivate); } } } } if (lvi != null) { lvi.EnsureVisible(); } } } } finally { StartTasks(); UpdateProgressUI(); } }
public static UploadTask CreateURLShortenerTask(string url, TaskSettings taskSettings) { UploadTask task = new UploadTask(taskSettings); task.Info.Job = TaskJob.ShortenURL; task.Info.DataType = EDataType.URL; task.Info.FileName = "URL shorten"; task.Info.Result.URL = url; return task; }
private static void CreateListViewItem(UploadTask task) { if (ListViewControl != null) { TaskInfo info = task.Info; DebugHelper.WriteLine("Task in queue. Job: {0}, Type: {1}, Host: {2}", info.Job, info.UploadDestination, info.UploaderHost); ListViewItem lvi = new ListViewItem(); lvi.Tag = task; lvi.Text = info.FileName; lvi.SubItems.Add(Resources.TaskManager_CreateListViewItem_In_queue); lvi.SubItems.Add(string.Empty); lvi.SubItems.Add(string.Empty); lvi.SubItems.Add(string.Empty); lvi.SubItems.Add(string.Empty); lvi.SubItems.Add(string.Empty); lvi.ImageIndex = 3; if (Program.Settings.ShowMostRecentTaskFirst) { ListViewControl.Items.Insert(0, lvi); } else { ListViewControl.Items.Add(lvi); } lvi.EnsureVisible(); ListViewControl.FillLastColumn(); } }
private static void task_UploadCompleted(UploadTask task) { try { if (ListViewControl != null && task != null) { if (task.RequestSettingUpdate) { Program.MainForm.UpdateMainFormSettings(); } TaskInfo info = task.Info; if (info != null && info.Result != null) { ListViewItem lvi = FindListViewItem(task); if (info.Result.IsError) { string errors = string.Join("\r\n\r\n", info.Result.Errors.ToArray()); DebugHelper.WriteLine("Task failed. Filename: {0}, Errors:\r\n{1}", info.FileName, errors); if (lvi != null) { lvi.SubItems[1].Text = "Error"; lvi.SubItems[8].Text = string.Empty; lvi.ImageIndex = 1; } if (Program.Settings.PlaySoundAfterUpload) { SystemSounds.Asterisk.Play(); } } else { DebugHelper.WriteLine("Task completed. Filename: {0}, URL: {1}, Duration: {2}ms", info.FileName, info.Result.ToString(), (int)info.UploadDuration.TotalMilliseconds); string result = info.Result.ToString(); if (string.IsNullOrEmpty(result) && !string.IsNullOrEmpty(info.FilePath)) { result = info.FilePath; } if (lvi != null) { lvi.Text = info.FileName; lvi.SubItems[1].Text = info.Status; lvi.ImageIndex = 2; if (!string.IsNullOrEmpty(result)) { lvi.SubItems[8].Text = result; } } if (!task.IsStopped && !string.IsNullOrEmpty(result)) { if (Program.Settings.SaveHistory) { HistoryManager.ConvertHistoryToNewFormat(Program.HistoryFilePath, Program.OldHistoryFilePath); HistoryManager.AddHistoryItemAsync(Program.HistoryFilePath, info.GetHistoryItem()); } if (!info.TaskSettings.AdvancedSettings.DisableNotifications) { string balloonTipText = result; if (!string.IsNullOrEmpty(info.TaskSettings.AdvancedSettings.BalloonTipContentFormat)) { balloonTipText = new UploadInfoParser().Parse(info, info.TaskSettings.AdvancedSettings.BalloonTipContentFormat); } if (Program.Settings.TrayBalloonTipAfterUpload && Program.MainForm.niTray.Visible) { Program.MainForm.niTray.Tag = result; Program.MainForm.niTray.ShowBalloonTip(5000, "ShareX - Task completed", balloonTipText, ToolTipIcon.Info); } if (Program.Settings.PlaySoundAfterUpload) { SystemSounds.Exclamation.Play(); } } } } if (lvi != null) { lvi.EnsureVisible(); } } } } finally { StartTasks(); UpdateProgressUI(); } }
private static void task_UploadCompleted(UploadTask task) { try { if (ListViewControl != null && task != null) { if (task.RequestSettingUpdate) { Program.MainForm.UpdateMainFormSettings(); } TaskInfo info = task.Info; if (info != null && info.Result != null) { ListViewItem lvi = FindListViewItem(task); if (info.Result.IsError) { string errors = string.Join("\r\n\r\n", info.Result.Errors.ToArray()); DebugHelper.WriteLine("Task failed. Filename: {0}, Errors:\r\n{1}", info.FileName, errors); if (lvi != null) { lvi.SubItems[1].Text = Resources.TaskManager_task_UploadCompleted_Error; lvi.SubItems[6].Text = string.Empty; lvi.ImageIndex = 1; } if (!info.TaskSettings.AdvancedSettings.DisableNotifications) { if (info.TaskSettings.GeneralSettings.PlaySoundAfterUpload) { TaskHelpers.PlayErrorSound(info.TaskSettings); } if (info.TaskSettings.GeneralSettings.PopUpNotification != PopUpNotificationType.None && Program.MainForm.niTray.Visible && !string.IsNullOrEmpty(errors)) { Program.MainForm.niTray.Tag = null; Program.MainForm.niTray.ShowBalloonTip(5000, "ShareX - " + Resources.TaskManager_task_UploadCompleted_Error, errors, ToolTipIcon.Error); } } } else { DebugHelper.WriteLine("Task completed. Filename: {0}, URL: {1}, Duration: {2} ms", info.FileName, info.Result.ToString(), (int)info.UploadDuration.TotalMilliseconds); string result = info.Result.ToString(); if (string.IsNullOrEmpty(result) && !string.IsNullOrEmpty(info.FilePath)) { result = info.FilePath; } if (lvi != null) { lvi.Text = info.FileName; lvi.SubItems[1].Text = info.Status; lvi.ImageIndex = 2; if (!string.IsNullOrEmpty(result)) { lvi.SubItems[6].Text = result; } } if (!task.StopRequested && !string.IsNullOrEmpty(result)) { if (info.TaskSettings.GeneralSettings.SaveHistory && (!info.TaskSettings.AdvancedSettings.HistorySaveOnlyURL || (!string.IsNullOrEmpty(info.Result.URL) || !string.IsNullOrEmpty(info.Result.ShortenedURL)))) { HistoryManager.AddHistoryItemAsync(Program.HistoryFilePath, info.GetHistoryItem()); } RecentManager.Add(result); if (Program.Settings.RecentLinksRemember) { Program.Settings.RecentLinks = RecentManager.Items.ToArray(); } else { Program.Settings.RecentLinks = null; } if (!info.TaskSettings.AdvancedSettings.DisableNotifications && info.Job != TaskJob.ShareURL) { if (info.TaskSettings.GeneralSettings.PlaySoundAfterUpload) { TaskHelpers.PlayTaskCompleteSound(info.TaskSettings); } if (!string.IsNullOrEmpty(info.TaskSettings.AdvancedSettings.BalloonTipContentFormat)) { result = new UploadInfoParser().Parse(info, info.TaskSettings.AdvancedSettings.BalloonTipContentFormat); } if (!string.IsNullOrEmpty(result)) { switch (info.TaskSettings.GeneralSettings.PopUpNotification) { case PopUpNotificationType.BalloonTip: if (Program.MainForm.niTray.Visible) { Program.MainForm.niTray.Tag = result; Program.MainForm.niTray.ShowBalloonTip(5000, "ShareX - " + Resources.TaskManager_task_UploadCompleted_ShareX___Task_completed, result, ToolTipIcon.Info); } break; case PopUpNotificationType.ToastNotification: NotificationFormConfig toastConfig = new NotificationFormConfig() { Action = info.TaskSettings.AdvancedSettings.ToastWindowClickAction, FilePath = info.FilePath, Text = "ShareX - " + Resources.TaskManager_task_UploadCompleted_ShareX___Task_completed + "\r\n" + result, URL = result }; NotificationForm.Show((int)(info.TaskSettings.AdvancedSettings.ToastWindowDuration * 1000), info.TaskSettings.AdvancedSettings.ToastWindowPlacement, info.TaskSettings.AdvancedSettings.ToastWindowSize, toastConfig); break; } } if (info.TaskSettings.GeneralSettings.ShowAfterUploadForm) { AfterUploadForm dlg = new AfterUploadForm(info); NativeMethods.ShowWindow(dlg.Handle, (int)WindowShowStyle.ShowNoActivate); } } } } if (lvi != null) { lvi.EnsureVisible(); } } } } finally { if (!IsBusy && Program.CLI.IsCommandExist("AutoClose")) { Application.Exit(); } else { StartTasks(); UpdateProgressUI(); } } }
public static UploadTask CreateTextUploaderTask(string text, TaskSettings taskSettings) { UploadTask task = new UploadTask(taskSettings); task.Info.Job = TaskJob.TextUpload; task.Info.DataType = EDataType.Text; task.Info.FileName = TaskHelpers.GetFilename(taskSettings, taskSettings.AdvancedSettings.TextFileExtension); task.tempText = text; return task; }
public static UploadTask CreateURLShortenerTask(string url, TaskSettings taskSettings) { UploadTask task = new UploadTask(taskSettings); task.Info.Job = TaskJob.ShortenURL; task.Info.DataType = EDataType.URL; task.Info.FileName = "Shorten URL (" + taskSettings.URLShortenerDestination.GetDescription() + ")"; task.Info.Result.URL = url; return task; }
private static void task_UploadCompleted(UploadTask task) { try { if (ListViewControl != null && task != null) { if (task.RequestSettingUpdate) { Program.MainForm.UpdateMainFormSettings(); } TaskInfo info = task.Info; if (info != null && info.Result != null) { ListViewItem lvi = FindListViewItem(task); if (info.Result.IsError) { string errors = string.Join("\r\n\r\n", info.Result.Errors.ToArray()); DebugHelper.WriteLine("Task failed. Filename: {0}, Errors:\r\n{1}", info.FileName, errors); if (lvi != null) { lvi.SubItems[1].Text = "Error"; lvi.SubItems[6].Text = string.Empty; lvi.ImageIndex = 1; } if (task.Info.TaskSettings.GeneralSettings.PlaySoundAfterUpload) { Helpers.PlaySoundAsync(Resources.ErrorSound); } } else { DebugHelper.WriteLine("Task completed. Filename: {0}, URL: {1}, Duration: {2} ms", info.FileName, info.Result.ToString(), (int)info.UploadDuration.TotalMilliseconds); string result = info.Result.ToString(); if (string.IsNullOrEmpty(result) && !string.IsNullOrEmpty(info.FilePath)) { result = info.FilePath; } if (lvi != null) { lvi.Text = info.FileName; lvi.SubItems[1].Text = info.Status; lvi.ImageIndex = 2; if (!string.IsNullOrEmpty(result)) { lvi.SubItems[6].Text = result; } } if (!task.StopRequested && !string.IsNullOrEmpty(result)) { if (task.Info.TaskSettings.GeneralSettings.SaveHistory) { HistoryManager.AddHistoryItemAsync(Program.HistoryFilePath, info.GetHistoryItem()); } if (!info.TaskSettings.AdvancedSettings.DisableNotifications && info.Job != TaskJob.ShareURL) { if (task.Info.TaskSettings.GeneralSettings.PlaySoundAfterUpload) { Helpers.PlaySoundAsync(Resources.TaskCompletedSound); } if (!string.IsNullOrEmpty(info.TaskSettings.AdvancedSettings.BalloonTipContentFormat)) { result = new UploadInfoParser().Parse(info, info.TaskSettings.AdvancedSettings.BalloonTipContentFormat); } if (!string.IsNullOrEmpty(result)) { switch (info.TaskSettings.GeneralSettings.PopUpNotification) { case PopUpNotificationType.BalloonTip: if (Program.MainForm.niTray.Visible) { Program.MainForm.niTray.Tag = result; Program.MainForm.niTray.ShowBalloonTip(5000, "ShareX - Task completed", result, ToolTipIcon.Info); } break; case PopUpNotificationType.ToastNotification: NotificationFormConfig toastConfig = new NotificationFormConfig() { Action = info.TaskSettings.AdvancedSettings.ToastWindowClickAction, FilePath = info.FilePath, Text = "ShareX - Task completed\r\n" + result, URL = result }; NotificationForm.Show((int)(info.TaskSettings.AdvancedSettings.ToastWindowDuration * 1000), info.TaskSettings.AdvancedSettings.ToastWindowPlacement, info.TaskSettings.AdvancedSettings.ToastWindowSize, toastConfig); break; } } if (info.TaskSettings.GeneralSettings.ShowAfterUploadForm) { AfterUploadForm dlg = new AfterUploadForm(info); NativeMethods.ShowWindow(dlg.Handle, (int)WindowShowStyle.ShowNoActivate); } } } } if (lvi != null) { lvi.EnsureVisible(); } } } } finally { StartTasks(); UpdateProgressUI(); } }
public static UploadTask CreateFileUploaderTask(string filePath, TaskSettings taskSettings) { UploadTask task = new UploadTask(taskSettings); task.Info.FilePath = filePath; task.Info.DataType = TaskHelpers.FindDataType(task.Info.FilePath, taskSettings); if (task.Info.TaskSettings.UploadSettings.FileUploadUseNamePattern) { string ext = Path.GetExtension(task.Info.FilePath); task.Info.FileName = TaskHelpers.GetFilename(task.Info.TaskSettings, ext); } if (task.Info.TaskSettings.AdvancedSettings.ProcessImagesDuringFileUpload && task.Info.DataType == EDataType.Image) { task.Info.Job = TaskJob.Job; task.tempImage = ImageHelpers.LoadImage(task.Info.FilePath); } else { task.Info.Job = TaskJob.FileUpload; if (!task.LoadFileStream()) { return null; } } return task; }
private static void task_UploadProgressChanged(UploadTask task) { if (task.Status == TaskStatus.Working && ListViewControl != null) { TaskInfo info = task.Info; ListViewItem lvi = FindListViewItem(task); if (lvi != null) { lvi.SubItems[1].Text = string.Format("{0:0.0}%", info.Progress.Percentage); lvi.SubItems[2].Text = string.Format("{0} / {1}", Helpers.ProperFileSize(info.Progress.Position), Helpers.ProperFileSize(info.Progress.Length)); if (info.Progress.Speed > 0) { lvi.SubItems[3].Text = Helpers.ProperFileSize((long)info.Progress.Speed, "/s"); } lvi.SubItems[4].Text = Helpers.ProperTimeSpan(info.Progress.Elapsed); lvi.SubItems[5].Text = Helpers.ProperTimeSpan(info.Progress.Remaining); } UpdateProgressUI(); } }
public static UploadTask CreateDownloadUploadTask(string url, TaskSettings taskSettings) { UploadTask task = new UploadTask(taskSettings); task.Info.Job = TaskJob.DownloadUpload; task.Info.DataType = TaskHelpers.FindDataType(url, taskSettings); task.Info.Result.URL = url; return task; }
private static void task_UploadStarted(UploadTask task) { TaskInfo info = task.Info; string status = string.Format("Upload started. Filename: {0}", info.FileName); if (!string.IsNullOrEmpty(info.FilePath)) status += ", Filepath: " + info.FilePath; DebugHelper.WriteLine(status); ListViewItem lvi = FindListViewItem(task); if (lvi != null) { lvi.Text = info.FileName; lvi.SubItems[1].Text = info.Status; lvi.ImageIndex = 0; } }
private static void CreateListViewItem(UploadTask task) { if (ListViewControl != null) { TaskInfo info = task.Info; DebugHelper.WriteLine("Task in queue. Job: {0}, Type: {1}, Host: {2}", info.Job, info.UploadDestination, info.UploaderHost); ListViewItem lvi = new ListViewItem(); lvi.Tag = task; lvi.Text = info.FileName; lvi.SubItems.Add("In queue"); lvi.SubItems.Add(string.Empty); lvi.SubItems.Add(string.Empty); lvi.SubItems.Add(string.Empty); lvi.SubItems.Add(string.Empty); lvi.SubItems.Add(info.DataType.ToString()); lvi.SubItems.Add(info.IsUploadJob ? info.UploaderHost : string.Empty); lvi.SubItems.Add(string.Empty); lvi.ImageIndex = 3; ListViewControl.Items.Add(lvi); lvi.EnsureVisible(); ListViewControl.FillLastColumn(); } }
public static UploadTask CreateFileJobTask(string filePath, TaskSettings taskSettings) { EDataType dataType = Helpers.FindDataType(filePath); UploadTask task = new UploadTask(taskSettings); task.Info.DataType = dataType; task.Info.FilePath = filePath; if (task.Info.TaskSettings.UploadSettings.FileUploadUseNamePattern) { string ext = Path.GetExtension(task.Info.FilePath); task.Info.FileName = TaskHelpers.GetFilename(task.Info.TaskSettings, ext); } task.Info.Job = TaskJob.Job; if (task.Info.IsUploadJob) { task.Data = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read); } return task; }
private static ListViewItem FindListViewItem(UploadTask task) { if (ListViewControl != null) { foreach (ListViewItem lvi in ListViewControl.Items) { UploadTask tag = lvi.Tag as UploadTask; if (tag != null && tag == task) { return lvi; } } } return null; }
public static UploadTask CreateFileUploaderTask(string filePath, TaskSettings taskSettings) { EDataType dataType = Helpers.FindDataType(filePath); UploadTask task = new UploadTask(taskSettings); task.Info.DataType = dataType; task.Info.FilePath = filePath; if (task.Info.TaskSettings.UploadSettings.FileUploadUseNamePattern) { string ext = Path.GetExtension(task.Info.FilePath); task.Info.FileName = TaskHelpers.GetFilename(task.Info.TaskSettings, ext); } if (task.Info.TaskSettings.AdvancedSettings.ProcessImagesDuringFileUpload && dataType == EDataType.Image) { task.Info.Job = TaskJob.Job; task.tempImage = ImageHelpers.LoadImage(filePath); } else { task.Info.Job = TaskJob.FileUpload; task.Data = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read); } return task; }
public void StartTest(UploadTask[] uploaders) { Testing = true; BackgroundWorker bw = new BackgroundWorker(); bw.WorkerReportsProgress = true; bw.DoWork += bw_DoWork; bw.ProgressChanged += bw_ProgressChanged; bw.RunWorkerCompleted += (x, x2) => { TaskManager.UpdateProgressUI(); Testing = false; }; bw.RunWorkerAsync(uploaders); }
public static UploadTask CreateImageUploaderTask(Image image, TaskSettings taskSettings) { UploadTask task = new UploadTask(taskSettings); task.Info.Job = TaskJob.Job; task.Info.DataType = EDataType.Image; task.Info.FileName = TaskHelpers.GetImageFilename(taskSettings, image); task.tempImage = image; return task; }
public static UploadTask CreateFileUploaderTask(string filePath, TaskSettings taskSettings) { EDataType dataType = TaskHelpers.FindDataType(filePath, taskSettings); UploadTask task = new UploadTask(taskSettings); task.Info.DataType = dataType; task.Info.FilePath = filePath; if (task.Info.TaskSettings.UploadSettings.FileUploadUseNamePattern) { string ext = Path.GetExtension(task.Info.FilePath); task.Info.FileName = TaskHelpers.GetFilename(task.Info.TaskSettings, ext); } if (task.Info.TaskSettings.AdvancedSettings.ProcessImagesDuringFileUpload && dataType == EDataType.Image) { task.Info.Job = TaskJob.Job; task.tempImage = ImageHelpers.LoadImage(filePath); } else { task.Info.Job = TaskJob.FileUpload; try { task.Data = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read); } catch (Exception e) { MessageBox.Show("ShareX - " + Resources.TaskManager_task_UploadCompleted_Error, e.Message, MessageBoxButtons.OK, MessageBoxIcon.Error); return null; } } return task; }