void milovanaDownloadControl_DownloadCompleted(object sender, MilovanaDownloadControl.DownloadCompletedEventArgs e) { if (e.Success) { FillTeaseListView(); var listviewItem = TeaseListView.FindItemWithText(e.TeaseName); if (listviewItem != null) { listviewItem.Selected = true; TeaseListView.Focus(); } } }
private void SaveButton_Click(object sender, EventArgs e) { if (SelectedTease == null) { return; } SaveNewScriptDialog.InitialDirectory = teaseLibrary.TeasesFolder; SaveNewScriptDialog.FileName = SelectedTease.Title; if (DialogResult.OK == SaveNewScriptDialog.ShowDialog()) { Cursor = Cursors.WaitCursor; try { var saveFile = new FileInfo(SaveNewScriptDialog.FileName); SelectedTease.MediaDirectory = saveFile.Name.BeforeLast(saveFile.Extension); string downloadDirectory = Path.Combine(saveFile.DirectoryName, SelectedTease.MediaDirectory); using (var webClient = new WebClient()) { foreach (var page in SelectedTease.Pages) { if (page.Image != null) { string url = String.Format("http://www.milovana.com/media/get.php?folder={0}/{1}&name={2}", SelectedTease.Author.Id, SelectedTease.Id, page.Image.Id); if (DownloadImagesCheckBox.Checked) { if (page.Image.Id.Contains("*")) { page.Errors = String.Format("Warning: random images are not fully supported, the conversion picked a random one and gave it a name. {0}", page.Errors); page.Image.Id = page.Image.Id.Replace("*", Guid.NewGuid().ToString()); } string fileName = Path.Combine(downloadDirectory, page.Image.Id); if (!File.Exists(fileName)) { if (!Directory.Exists(downloadDirectory)) { Directory.CreateDirectory(downloadDirectory); } webClient.DownloadFile(url, fileName); } } else { page.Image.Id = url; } } if (page.Audio != null) { string url = String.Format("http://www.milovana.com/media/get.php?folder={0}/{1}&name={2}", SelectedTease.Author.Id, SelectedTease.Id, page.Audio.Id); if (DownloadImagesCheckBox.Checked) { if (page.Audio.Id.Contains("*")) { page.Errors = String.Format("Warning: random audio is not fully supported, the conversion picked a random one and gave it a name. {0}", page.Errors); page.Audio.Id = page.Audio.Id.Replace("*", Guid.NewGuid().ToString()); } string fileName = Path.Combine(downloadDirectory, page.Audio.Id); if (!File.Exists(fileName)) { if (!Directory.Exists(downloadDirectory)) { Directory.CreateDirectory(downloadDirectory); } webClient.DownloadFile(url, fileName); } } else { page.Audio.Id = url; } } } } if (SelectedTease.Pages.Exists(page => !String.IsNullOrEmpty(page.Errors))) { MessageBox.Show("Download completed.\n\nTry to correct the errors in the script using a text editor."); } else { MessageBox.Show("Download completed. \n\nSelect the tease from the list and press start."); } string teaseXml = new TeaseSerializer().ConvertToXmlString(SelectedTease); File.WriteAllText(saveFile.FullName, teaseXml); FillTeaseListView(); var listviewItem = TeaseListView.FindItemWithText(saveFile.Name.BeforeLast(saveFile.Extension)); if (listviewItem != null) { listviewItem.Selected = true; TeaseListView.Focus(); } Cursor = Cursors.Default; } catch (Exception err) { Cursor = Cursors.Default; MessageBox.Show(err.Message, "Error while saving tease.", MessageBoxButtons.OK, MessageBoxIcon.Error); } // Check the errors again as the downloaded media may contain errors. ConverionErrorTextBox.Visible = SelectedTease.Pages.Exists(page => !String.IsNullOrEmpty(page.Errors)); } }