public static void DeleteDropboxImage(DropboxInfo dropBoxInfo) { // Make sure we remove it from the history, if no error occured config.runtimeDropboxHistory.Remove(dropBoxInfo.ID); config.DropboxUploadHistory.Remove(dropBoxInfo.ID); // get the config of dropbox Dropbox.DropBoxConfiguration dropBoxConfig = CloudStorage.GetCloudConfigurationEasy(nSupportedCloudConfigurations.DropBox) as Dropbox.DropBoxConfiguration; // instanciate the cloudstorage manager CloudStorage storage = new CloudStorage(); // open the connection to the storage storage.Open(dropBoxConfig, config.DropboxAccessToken); // get the root entry of the cloud storage ICloudDirectoryEntry root = storage.GetRoot(); // delete a file ICloudFileSystemEntry fileSystemEntry = storage.GetFileSystemObject(dropBoxInfo.ID, root); if (fileSystemEntry != null) { storage.DeleteFileSystemEntry(fileSystemEntry); } // close the cloud storage connection if (storage.IsOpened) { storage.Close(); } dropBoxInfo.Image = null; }
public static void LoadHistory() { if (config.runtimeDropboxHistory == null) { return; } if (config.DropboxUploadHistory == null) { return; } if (config.runtimeDropboxHistory.Count == config.DropboxUploadHistory.Count) { return; } // Load the Dropbox history List <string> hashes = new List <string>(); foreach (string hash in config.DropboxUploadHistory.Keys) { hashes.Add(hash); } bool saveNeeded = false; foreach (string hash in hashes) { if (config.runtimeDropboxHistory.ContainsKey(hash)) { // Already loaded continue; } try { DropboxInfo imgurInfo = DropboxUtils.RetrieveDropboxInfo(hash); if (imgurInfo != null) { DropboxUtils.RetrieveDropboxThumbnail(imgurInfo); config.runtimeDropboxHistory.Add(hash, imgurInfo); } else { LOG.DebugFormat("Deleting not found Dropbox {0} from config.", hash); config.DropboxUploadHistory.Remove(hash); saveNeeded = true; } } catch (Exception e) { LOG.Error("Problem loading Dropbox history for hash " + hash, e); } } if (saveNeeded) { // Save needed changes IniConfig.Save(); } }
public static void RetrieveDropboxThumbnail(DropboxInfo imgurInfo) { LOG.InfoFormat("Retrieving Dropbox image for {0} with url {1}", imgurInfo.ID, imgurInfo); HttpWebRequest webRequest = (HttpWebRequest)NetworkHelper.CreatedWebRequest(imgurInfo.WebUrl); webRequest.Method = "GET"; webRequest.ServicePoint.Expect100Continue = false; using (WebResponse response = webRequest.GetResponse()) { Stream responseStream = response.GetResponseStream(); imgurInfo.Image = Image.FromStream(responseStream); } return; }
public static DropboxInfo RetrieveDropboxInfo(string filename) { LOG.InfoFormat("Retrieving Dropbox info for {0}", filename); DropboxInfo dropBoxInfo = new DropboxInfo(); dropBoxInfo.ID = filename; dropBoxInfo.Title = filename; dropBoxInfo.Timestamp = DateTime.Now; dropBoxInfo.WebUrl = string.Empty; // get the config of dropbox Dropbox.DropBoxConfiguration dropBoxConfig = CloudStorage.GetCloudConfigurationEasy(nSupportedCloudConfigurations.DropBox) as Dropbox.DropBoxConfiguration; // instanciate the cloudstorage manager CloudStorage storage = new CloudStorage(); // get the root entry of the cloud storage ICloudDirectoryEntry root = storage.GetRoot(); // open the connection to the storage storage.Open(dropBoxConfig, config.DropboxAccessToken); dropBoxInfo.WebUrl = storage.GetFileSystemObjectUrl(dropBoxInfo.ID, root).ToString(); ICloudFileSystemEntry fileSystemEntry = storage.GetFileSystemObject(dropBoxInfo.ID, root); if (fileSystemEntry != null) { dropBoxInfo.Title = fileSystemEntry.Name; dropBoxInfo.Timestamp = fileSystemEntry.Modified; } // close the cloud storage connection if (storage.IsOpened) { storage.Close(); } return(dropBoxInfo); }
/// <summary> /// This will be called when the menu item in the Editor is clicked /// </summary> public bool Upload(ICaptureDetails captureDetails, Image image) { if (config.DropboxAccessToken == null) { MessageBox.Show(lang.GetString(LangKey.TokenNotSet), string.Empty, MessageBoxButtons.OK, MessageBoxIcon.Information); return(false); } else { using (MemoryStream stream = new MemoryStream()) { BackgroundForm backgroundForm = BackgroundForm.ShowAndWait(Attributes.Name, lang.GetString(LangKey.communication_wait)); host.SaveToStream(image, stream, config.UploadFormat, config.UploadJpegQuality); byte[] buffer = stream.GetBuffer(); try { string filename = Path.GetFileName(host.GetFilename(config.UploadFormat, captureDetails)); DropboxInfo DropboxInfo = DropboxUtils.UploadToDropbox(buffer, captureDetails.Title, filename); if (config.DropboxUploadHistory == null) { config.DropboxUploadHistory = new Dictionary <string, string>(); } if (DropboxInfo.ID != null) { LOG.InfoFormat("Storing Dropbox upload for id {0}", DropboxInfo.ID); config.DropboxUploadHistory.Add(DropboxInfo.ID, DropboxInfo.ID); config.runtimeDropboxHistory.Add(DropboxInfo.ID, DropboxInfo); } DropboxInfo.Image = DropboxUtils.CreateThumbnail(image, 90, 90); // Make sure the configuration is save, so we don't lose the deleteHash IniConfig.Save(); // Make sure the history is loaded, will be done only once DropboxUtils.LoadHistory(); // Show if (config.AfterUploadOpenHistory) { DropboxHistory.ShowHistory(); } if (config.AfterUploadLinkToClipBoard) { Clipboard.SetText(DropboxInfo.WebUrl); } return(true); } catch (Exception e) { MessageBox.Show(lang.GetString(LangKey.upload_failure) + " " + e.ToString()); return(false); } finally { backgroundForm.CloseDialog(); } } } }
public static DropboxInfo RetrieveDropboxInfo(string filename) { LOG.InfoFormat("Retrieving Dropbox info for {0}", filename); DropboxInfo dropBoxInfo = new DropboxInfo(); dropBoxInfo.ID = filename; dropBoxInfo.Title = filename; dropBoxInfo.Timestamp = DateTime.Now; dropBoxInfo.WebUrl = string.Empty; // get the config of dropbox Dropbox.DropBoxConfiguration dropBoxConfig = CloudStorage.GetCloudConfigurationEasy(nSupportedCloudConfigurations.DropBox) as Dropbox.DropBoxConfiguration; // instanciate the cloudstorage manager CloudStorage storage = new CloudStorage(); // get the root entry of the cloud storage ICloudDirectoryEntry root = storage.GetRoot(); // open the connection to the storage storage.Open(dropBoxConfig, config.DropboxAccessToken); dropBoxInfo.WebUrl = storage.GetFileSystemObjectUrl(dropBoxInfo.ID, root).ToString(); ICloudFileSystemEntry fileSystemEntry = storage.GetFileSystemObject(dropBoxInfo.ID, root); if (fileSystemEntry != null) { dropBoxInfo.Title = fileSystemEntry.Name; dropBoxInfo.Timestamp = fileSystemEntry.Modified; } // close the cloud storage connection if (storage.IsOpened) { storage.Close(); } return dropBoxInfo; }