private void queryStatusMenuCommand_BeforeQueryStatus2(object sender, EventArgs e) { OleMenuCommand menuCommand = sender as OleMenuCommand; var items = new List <string>(GetSelectedItemPaths()); menuCommand.Enabled = items.Count(f => Cruncher.IsSupported(f)) > 0; }
private void cruncher_Progress(object sender, CruncherEventArgs e) { Cruncher cruncher = (Cruncher)sender; StringBuilder sb = new StringBuilder(); sb.AppendLine(Environment.NewLine + e.Result.FileName + " - using " + e.Result.Service); if (e.Result.HasError) { Output(e.Result.ErrorMessage); } else if (e.Result.SizeBefore > e.Result.SizeAfter) { sb.AppendLine("Before: " + e.Result.SizeBefore + " bytes"); sb.AppendLine("After: " + e.Result.SizeAfter + " bytes"); sb.AppendLine("Savings: " + e.Result.PercentSaved + "%"); optimized++; allBefore += e.Result.SizeBefore; allAfter += e.Result.SizeAfter; } else { sb.AppendLine("No optimization needed"); } Output(sb.ToString()); dte.StatusBar.Progress(true, e.Result.FileName, cruncher.Optimized, cruncher.Count); }
public void CrunchNumbers_TODO() { // Assert.Fail ( "TODO: initialize variable(s)" ); int x = 0; int y = 0; Cruncher.CrunchNumbers(x, y); }
public void SafeCrunch_TODO( ) { Cruncher cruncher = new Cruncher( ); // Assert.Fail ( "TODO: initialize variable(s) and expected value" ); int x = 0; int y = 0; int actual = cruncher.SafeCrunch(x, y); int expected = 0; Assert.AreEqual(expected, actual); }
public static long ProcessMediaItem(MediaItem mediaItem, CrunchOptions crunchOptions) { long resultantSize = 0; if (crunchOptions.IsEnabled) { if (mediaItem.MimeType == "image/jpeg" || mediaItem.MimeType == "image/pjpeg" || mediaItem.MimeType == "image/gif" || mediaItem.MimeType == "image/png") { ICruncher cruncher = Cruncher.GetCruncher(); if (cruncher == null) { Log.Error("Could not find cruncher!", typeof(CrunchImage)); return(resultantSize); } if (mediaItem.Size >= cruncher.MaxImageSize) { return(resultantSize); } var mediaStream = mediaItem.GetMediaStream(); Job job = Context.Job; try { CrunchResult result = cruncher.CrunchStream(mediaStream, crunchOptions); if (result == null) { Log.Error(string.Format("Could not shrink media file {0}", mediaItem.InnerItem.Paths.Path), typeof(CrunchImage)); } Sitecore.Resources.Media.Media media = MediaManager.GetMedia(mediaItem); using (var stream = new MemoryStream()) { result.FileStream.CopyTo(stream); stream.Position = 0; resultantSize = stream.Length; media.SetStream(stream, Path.GetExtension(result.Format).TrimStart('.')); } } catch (Exception exception) { if (job != null) { job.Status.LogError("Image could not be reduced in size"); } Log.Error(string.Format("Image crunch failed: {0}", mediaItem.InnerItem.Paths.FullPath), exception, (typeof(CrunchImage))); } } } return(resultantSize); }
private void queryStatusMenuCommand_BeforeQueryStatus(object sender, EventArgs e) { OleMenuCommand menuCommand = sender as OleMenuCommand; var items = new List <string>(GetSelectedItemPaths()); bool isVisible = false; if (items.Count == 1 && File.Exists(items[0])) { isVisible = Cruncher.IsSupported(items[0]); } menuCommand.Enabled = isVisible; }
private void cruncher_Completed(object sender, EventArgs e) { Cruncher cruncher = (Cruncher)sender; if (cruncher.Optimized > 0) { double percent = allBefore > 0 ? Math.Round((allBefore - allAfter) / allBefore * 100, 2) : 0; Output("\n" + (cruncher.Count - optimized) + " skipped. " + optimized + " optimized. Total savings " + percent + "%"); } else { Output("\nNo PNG or JPG images in selected folder(s)\n"); } Output("\n------ Image optimization finished -----\n"); dte.StatusBar.Progress(false); dte.StatusBar.Animate(false, vsStatusAnimation.vsStatusAnimationGeneral); }
/// <summary> /// This fuallAfter = 0;nction is the callback used to execute a command when the a menu item is clicked. /// See the Initialize method to see how the menu item is associated to this function using /// the OleMenuCommandService service and the MenuCommand class. /// </summary> private void MenuItemCallback(object sender, EventArgs e) { dte.Windows.Item(EnvDTE.Constants.vsWindowKindOutput).Visible = true; dte.StatusBar.Animate(true, vsStatusAnimation.vsStatusAnimationGeneral); pane = base.GetOutputPane(VSConstants.GUID_OutWindowDebugPane, "Debug"); pane.Activate(); optimized = allBefore = allAfter = 0; Output("\n------ Image optimization started -----\n"); Cruncher cruncher = new Cruncher(); cruncher.Progress += new EventHandler <CruncherEventArgs>(cruncher_Progress); cruncher.Completed += new EventHandler <EventArgs>(cruncher_Completed); cruncher.BeforeWritingFile += new EventHandler <CruncherEventArgs>(cruncher_BeforeWritingFile); cruncher.CrunchImages(GetSelectedItemPaths().ToArray()); }
private static void ProcessCommandLine(Cruncher cruncher) { Console.WriteLine(Strings.WhatDoYouHave); Console.WriteLine(Strings.TitaniumBackupArchive); Console.WriteLine(Strings.DatabaseFile); while (true) { var key = Console.ReadKey(); Console.WriteLine(); switch (key.KeyChar) { case '1': ChosePath(filePath => SaveCrunched(cruncher.CrunchTitaniumArchive(filePath)), "com.google.android.apps.authenticator2.tar.gz"); return; case '2': ChosePath(filePath => SaveCrunched(cruncher.CrunchDbFile(filePath)), DbFileName); return; } } }
static void Main(string[] args) { try { var cruncher = new Cruncher(); var files = Directory.GetFiles(Directory.GetCurrentDirectory(), ArchiveFileType); if (files.Any()) { SaveCrunched(cruncher.CrunchTitaniumArchive(files.First())); } else if (File.Exists(DbFileName)) { SaveCrunched(cruncher.CrunchDbFile(DbFileName)); } else if (!args.Any()) { ProcessCommandLine(cruncher); } else if (args.Length != 1) { SaveCrunched(cruncher.CrunchTitaniumArchive(args[0])); } else if (args.Length != 2) { Console.WriteLine(Strings.WrongCountOfArguments); Console.WriteLine(Strings.Help); } else if (!File.Exists(args[1])) { Console.WriteLine(Strings.FileDoesNotExist, args[1]); } else { switch (args[0]) { case "archive": SaveCrunched(cruncher.CrunchTitaniumArchive(args[1])); break; case "db": SaveCrunched(cruncher.CrunchDbFile(args[1])); break; default: Console.WriteLine(Strings.UnexpectedArgument); break; } } } catch (GoogleAuthDatabaseException e) { AddToLog(e.InnerException); Console.WriteLine(Strings.DbFileUnrecognized); } catch (GoogleAuthUnarchiverException e) { AddToLog(e.InnerException); Console.WriteLine(Strings.ArchiveFileCannotBeProcessed); } catch (Exception e) { AddToLog(e); Console.WriteLine(Strings.UnexpectedBehaviour); } Console.WriteLine(Strings.PressAnyKey); Console.ReadKey(); // TODO may be Wipe QR after approval //DirectoryHelper.WipeAndDelete(ExportDirectoryName); }
public void SafeCrunch_TODO ( ) { Cruncher cruncher = new Cruncher ( ); // Assert.Fail ( "TODO: initialize variable(s) and expected value" ); int x = 0; int y = 0; int actual = cruncher.SafeCrunch ( x, y ); int expected = 0; Assert.AreEqual ( expected, actual ); }