Exemplo n.º 1
0
        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);
                }
            }
        }
Exemplo n.º 2
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(string.Empty);
                lvi.ImageIndex = 3;
                if (Program.Settings.ShowMostRecentTaskFirst)
                {
                    ListViewControl.Items.Insert(0, lvi);
                }
                else
                {
                    ListViewControl.Items.Add(lvi);
                }
                lvi.EnsureVisible();
                ListViewControl.FillLastColumn();
            }
        }
Exemplo n.º 3
0
        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();
            }
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        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);
            }
        }
Exemplo n.º 6
0
 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;
 }
Exemplo n.º 7
0
        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);
        }
Exemplo n.º 8
0
        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);
        }
Exemplo n.º 9
0
        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);
        }
Exemplo n.º 10
0
        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);
        }
Exemplo n.º 11
0
 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();
 }
Exemplo n.º 12
0
        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);
        }
Exemplo n.º 13
0
 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();
 }
Exemplo n.º 14
0
        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);
            }
        }
Exemplo n.º 15
0
 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();
 }
Exemplo n.º 16
0
        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);
            }
        }
Exemplo n.º 17
0
        private static void ChangeListViewItemStatus(UploadTask task)
        {
            if (ListViewControl != null)
            {
                ListViewItem lvi = FindListViewItem(task);

                if (lvi != null)
                {
                    lvi.SubItems[1].Text = task.Info.Status;
                }
            }
        }
Exemplo n.º 18
0
        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()));
                }
            }
        }
Exemplo n.º 19
0
        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);
            }
        }
Exemplo n.º 20
0
        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);
            }
        }
Exemplo n.º 21
0
        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);
            }
        }
Exemplo n.º 22
0
        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);
            }
        }
Exemplo n.º 23
0
        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);
        }
Exemplo n.º 24
0
 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();
     }
 }
Exemplo n.º 25
0
        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());
                }
            }
        }
Exemplo n.º 26
0
        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);
            }
        }
Exemplo n.º 27
0
        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);
        }
Exemplo n.º 28
0
        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();
            }
        }
Exemplo n.º 29
0
        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;
                        }
                    }
                }
            }
        }
Exemplo n.º 30
0
        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();
            }
        }
Exemplo n.º 31
0
        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;
            }
        }
Exemplo n.º 32
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()));
                }
            }
        }
Exemplo n.º 33
0
        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);
        }
Exemplo n.º 34
0
 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;
 }
Exemplo n.º 35
0
        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;
        }
Exemplo n.º 36
0
        private static void ChangeListViewItemStatus(UploadTask task)
        {
            if (ListViewControl != null)
            {
                ListViewItem lvi = FindListViewItem(task);

                if (lvi != null)
                {
                    lvi.SubItems[1].Text = task.Info.Status;
                }
            }
        }
Exemplo n.º 37
0
        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;
        }
Exemplo n.º 38
0
        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;
        }
Exemplo n.º 39
0
 private static void task_StatusChanged(UploadTask task)
 {
     DebugHelper.WriteLine("Task status: " + task.Status);
     ChangeListViewItemStatus(task);
     UpdateProgressUI();
 }
Exemplo n.º 40
0
        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();
            }
        }
Exemplo n.º 41
0
 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;
 }
Exemplo n.º 42
0
 private static void task_StatusChanged(UploadTask task)
 {
     DebugHelper.WriteLine("Task status: " + task.Status);
     ChangeListViewItemStatus(task);
     UpdateProgressUI();
 }
Exemplo n.º 43
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(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();
            }
        }
Exemplo n.º 44
0
        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();
            }
        }
Exemplo n.º 45
0
        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();
                }
            }
        }
Exemplo n.º 46
0
 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;
 }
Exemplo n.º 47
0
 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;
 }
Exemplo n.º 48
0
        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();
            }
        }
Exemplo n.º 49
0
        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;
        }
Exemplo n.º 50
0
        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();
            }
        }
Exemplo n.º 51
0
 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;
 }
Exemplo n.º 52
0
        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;
            }
        }
Exemplo n.º 53
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();
            }
        }
Exemplo n.º 54
0
        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;
        }
Exemplo n.º 55
0
        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;
        }
Exemplo n.º 56
0
        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;
        }
Exemplo n.º 57
0
        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);
        }
Exemplo n.º 58
0
        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;
        }
Exemplo n.º 59
0
 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();
     }
 }
Exemplo n.º 60
0
        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;
        }