1
0
mirror of https://github.com/chylex/TweetDuck.git synced 2025-06-07 11:34:07 +02:00

Prevent an unlikely crash when showing an error message in context menu

This commit is contained in:
chylex 2018-05-16 13:05:59 +02:00
parent a3e9b15a8a
commit 3cb0f90706

View File

@ -129,7 +129,7 @@ public virtual bool OnContextMenuCommand(IWebBrowser browserControl, IBrowser br
SetClipboardText(control, TwitterUtils.GetMediaLink(LastLink.GetMediaSource(parameters), ImageQuality)); SetClipboardText(control, TwitterUtils.GetMediaLink(LastLink.GetMediaSource(parameters), ImageQuality));
break; break;
case MenuViewImage: case MenuViewImage: {
void ViewImage(string path){ void ViewImage(string path){
string ext = Path.GetExtension(path); string ext = Path.GetExtension(path);
@ -144,11 +144,12 @@ void ViewImage(string path){
string url = LastLink.GetMediaSource(parameters); string url = LastLink.GetMediaSource(parameters);
string file = Path.Combine(BrowserCache.CacheFolder, TwitterUtils.GetImageFileName(url) ?? Path.GetRandomFileName()); string file = Path.Combine(BrowserCache.CacheFolder, TwitterUtils.GetImageFileName(url) ?? Path.GetRandomFileName());
control.InvokeAsyncSafe(() => {
if (File.Exists(file)){ if (File.Exists(file)){
ViewImage(file); ViewImage(file);
} }
else{ else{
control.InvokeAsyncSafe(analytics.AnalyticsFile.ViewedImages.Trigger); analytics.AnalyticsFile.ViewedImages.Trigger();
BrowserUtils.DownloadFileAsync(TwitterUtils.GetMediaLink(url, ImageQuality), file, () => { BrowserUtils.DownloadFileAsync(TwitterUtils.GetMediaLink(url, ImageQuality), file, () => {
ViewImage(file); ViewImage(file);
@ -156,25 +157,41 @@ void ViewImage(string path){
FormMessage.Error("Image Download", "An error occurred while downloading the image: "+ex.Message, FormMessage.OK); FormMessage.Error("Image Download", "An error occurred while downloading the image: "+ex.Message, FormMessage.OK);
}); });
} }
});
break; break;
}
case MenuSaveMedia: case MenuSaveMedia: {
if (LastLink.IsVideo){ bool isVideo = LastLink.IsVideo;
control.InvokeAsyncSafe(analytics.AnalyticsFile.DownloadedVideos.Trigger); string url = LastLink.GetMediaSource(parameters);
TwitterUtils.DownloadVideo(LastLink.GetMediaSource(parameters), LastChirp.Authors.LastOrDefault()); string username = LastChirp.Authors.LastOrDefault();
control.InvokeAsyncSafe(() => {
if (isVideo){
TwitterUtils.DownloadVideo(url, username);
analytics.AnalyticsFile.DownloadedVideos.Trigger();
} }
else{ else{
control.InvokeAsyncSafe(analytics.AnalyticsFile.DownloadedImages.Trigger); TwitterUtils.DownloadImage(url, username, ImageQuality);
TwitterUtils.DownloadImage(LastLink.GetMediaSource(parameters), LastChirp.Authors.LastOrDefault(), ImageQuality); analytics.AnalyticsFile.DownloadedImages.Trigger();
}
});
break;
} }
break; case MenuSaveTweetImages: {
string[] urls = LastChirp.Images;
string username = LastChirp.Authors.LastOrDefault();
control.InvokeAsyncSafe(() => {
TwitterUtils.DownloadImages(urls, username, ImageQuality);
analytics.AnalyticsFile.DownloadedImages.Trigger();
});
case MenuSaveTweetImages:
control.InvokeAsyncSafe(analytics.AnalyticsFile.DownloadedImages.Trigger);
TwitterUtils.DownloadImages(LastChirp.Images, LastChirp.Authors.LastOrDefault(), ImageQuality);
break; break;
}
case MenuReadApplyROT13: case MenuReadApplyROT13:
string selection = parameters.SelectionText; string selection = parameters.SelectionText;