diff --git a/MegaKeep/App.config b/MegaKeep/App.config index 703ff62..9e40778 100644 --- a/MegaKeep/App.config +++ b/MegaKeep/App.config @@ -1,18 +1,18 @@ - + - -
+ +
- + - + - \ No newline at end of file + diff --git a/MegaKeep/MegaKeep.cs b/MegaKeep/MegaKeep.cs index 3c8151c..86ad5bb 100644 --- a/MegaKeep/MegaKeep.cs +++ b/MegaKeep/MegaKeep.cs @@ -12,24 +12,23 @@ namespace MegaKeep { private string _local = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData); private string[] commandlineArgs = { }; - public MegaKeep() - { - InitializeComponent(); - } + public MegaKeep(string[] args) { InitializeComponent(); - if (args.Length > 0) + + if (args.Length == 0) + return; + + commandlineArgs = args; + var txtFileIndex = Array.IndexOf(args, "--txtFile") + 1; + var txtFile = args[txtFileIndex]; + + if (File.Exists(txtFile)) { - commandlineArgs = args; - var txtFileIndex = Array.IndexOf(args, "--txtFile") + 1; - var txtFile = args[txtFileIndex]; - if (File.Exists(txtFile)) - { - Properties.Settings.Default.Location = txtFile; - Properties.Settings.Default.Save(); - txtPath.Text = txtFile; - } + Properties.Settings.Default.Location = txtFile; + Properties.Settings.Default.Save(); + txtPath.Text = txtFile; } } @@ -40,7 +39,7 @@ namespace MegaKeep // first make sure megacmd is found if (!File.Exists(_local + "\\MEGAcmd\\mega-login.bat")) { - Log("mega-login.bat was not found, please install it to the default dirctory: https://mega.nz/cmd"); + Log("mega-login.bat was not found, please install it to the default directory: https://mega.nz/cmd"); return; } @@ -67,7 +66,8 @@ namespace MegaKeep // run the processes in a task so it doesn't freeze the ui await Task.Run(() => Work(lines)); - if (commandlineArgs.Contains("--cli"))// if running in cli mode, closes window after running work. + + if (commandlineArgs.Contains("--cli")) // if running in cli mode, closes window after running work this.Close(); } @@ -86,7 +86,7 @@ namespace MegaKeep } }; - Log("Logging in to " + user + "..."); + Log("Logging into " + user + "..."); login.Start(); var result = login.StandardOutput.ReadToEnd(); @@ -95,7 +95,7 @@ namespace MegaKeep if (login.HasExited) return result; else - return "Unable to exit the process"; + return "Unable to exit the process"; } private string Logout() @@ -127,7 +127,6 @@ namespace MegaKeep if (res == "Logging out..." + Environment.NewLine) { - // success result = "Success"; break; } @@ -148,6 +147,7 @@ namespace MegaKeep foreach (var line in lines) { var info = line.Split(':'); + // check line format if (info.Length != 2) { @@ -155,6 +155,7 @@ namespace MegaKeep Log("Colon (:) seperator not found. Error: " + line); continue; } + var user = info[0]; var pass = info[1]; @@ -174,7 +175,7 @@ namespace MegaKeep // login was successful Log("Login succeeded. Logging out..."); } - else if (loginResult.Contains("Login failed")) + else if (loginResult.Contains("Failed")) { Log("Failed: " + loginResult); break; // just move on to the next account @@ -234,7 +235,7 @@ namespace MegaKeep private void Log(string txt) { - this.Invoke((MethodInvoker) delegate + this.Invoke((MethodInvoker)delegate { var time = "[" + DateTime.Now.ToString("hh:mm:ss tt") + "] "; @@ -246,9 +247,8 @@ namespace MegaKeep { // if started with arg "--cli" simulate button click in UI if (commandlineArgs.Contains("--cli")) - { btnRun.PerformClick(); - } + txtPath.Text = Properties.Settings.Default.Location; } diff --git a/MegaKeep/MegaKeep.csproj b/MegaKeep/MegaKeep.csproj index c990a28..6a78bdb 100644 --- a/MegaKeep/MegaKeep.csproj +++ b/MegaKeep/MegaKeep.csproj @@ -8,10 +8,11 @@ WinExe MegaKeep MegaKeep - v4.6.2 + v4.7.2 512 true true + AnyCPU diff --git a/MegaKeep/Properties/Resources.Designer.cs b/MegaKeep/Properties/Resources.Designer.cs index e64dd1b..2586048 100644 --- a/MegaKeep/Properties/Resources.Designer.cs +++ b/MegaKeep/Properties/Resources.Designer.cs @@ -19,7 +19,7 @@ namespace MegaKeep.Properties { // class via a tool like ResGen or Visual Studio. // To add or remove a member, edit your .ResX file then rerun ResGen // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] internal class Resources { diff --git a/MegaKeep/Properties/Settings.Designer.cs b/MegaKeep/Properties/Settings.Designer.cs index 5ac1b95..1cd4795 100644 --- a/MegaKeep/Properties/Settings.Designer.cs +++ b/MegaKeep/Properties/Settings.Designer.cs @@ -12,7 +12,7 @@ namespace MegaKeep.Properties { [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.9.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.8.1.0")] internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); diff --git a/README.md b/README.md index 420eeb4..457e779 100644 --- a/README.md +++ b/README.md @@ -15,6 +15,13 @@ You must have MEGAcmd installed and running on your machine. You can download th Create a text file (.txt) of all your mega accounts and passwords in a `user:pass` format with one account per line. Then locate that file and run the program. +## Command Line + +You are also able to start the program via command line. + +`--cli` will auto-click the run button and run whatever file is already loaded +`--txtFile "C:\path\to\txtfile.txt"` will load the text file into the program + ## Contributing When making a pull request, please provide a thorough explanation of what you added/fixed. Suggestions are welcome in the form of issues.