private void TranscodeFile(string key, UploadResult result) { Dictionary <string, string> args = new Dictionary <string, string>(); if (NoResize) { args.Add("noResize", "true"); } if (IgnoreExisting) { args.Add("noMd5", "true"); } string url = CreateQuery("https://upload.gfycat.com/transcodeRelease/" + key, args); string transcodeJson = SendRequest(HttpMethod.GET, url); GfycatTranscodeResponse transcodeResponse = JsonConvert.DeserializeObject <GfycatTranscodeResponse>(transcodeJson); if (transcodeResponse.IsOk) { ProgressManager progress = new ProgressManager(10000); if (AllowReportProgress) { OnProgressChanged(progress); } while (!stopUpload) { string statusJson = SendRequest(HttpMethod.GET, "https://upload.gfycat.com/status/" + key); GfycatStatusResponse response = JsonConvert.DeserializeObject <GfycatStatusResponse>(statusJson); if (response.Error != null) { result.Errors.Add(response.Error); result.IsSuccess = false; break; } else if (response.GfyName != null) { result.IsSuccess = true; result.URL = "https://gfycat.com/" + response.GfyName; break; } if (AllowReportProgress && progress.UpdateProgress((progress.Length - progress.Position) / response.Time)) { OnProgressChanged(progress); } Thread.Sleep(100); } } else { result.Errors.Add(transcodeResponse.Error); result.IsSuccess = false; } }
private void TranscodeFile(string key, UploadResult result) { string json = SendRequest(HttpMethod.GET, "https://upload.gfycat.com/transcode/" + key); GfycatTranscodeResponse response = JsonConvert.DeserializeObject <GfycatTranscodeResponse>(json); if (response.Task == GfycatTask.COMPLETE) { result.URL = "http://gfycat.com/" + response.GfyName; } else { result.Errors.Add(response.Error); result.IsSuccess = false; } }