diff --git a/FileLiberator/UNTESTED/DecryptBook.cs b/FileLiberator/UNTESTED/DecryptBook.cs index 50533c89..3a39958c 100644 --- a/FileLiberator/UNTESTED/DecryptBook.cs +++ b/FileLiberator/UNTESTED/DecryptBook.cs @@ -164,148 +164,5 @@ namespace FileLiberator File.Move(f.FullName, dest); } } - - #region legacy inAudible wire-up code - // - // instructions are in comments below for editing and interacting with inAudible. eg: - // \_NET\Visual Studio 2017\inAudible197\decompiled - in progress\inAudible.csproj - // first, add its project and put its exe path into inAudiblePath - // - #region placeholder code - // this exists so the below legacy code will compile as-is. comment out placeholder code when actually connecting to inAudible - - class Form - { - internal void Show() => throw new NotImplementedException(); - internal void Kill() => throw new NotImplementedException(); - } - class TextBox - { - internal string Text { set => throw new NotImplementedException(); } - } - class Button - { - internal void PerformClick() => throw new NotImplementedException(); - } - class AudibleConvertor - { - internal class GLOBALS - { - internal static string ExecutablePath { set => throw new NotImplementedException(); } - } - internal class Form1 : Form - { - internal Form1(Action action) => throw new NotImplementedException(); - internal void LoadAudibleFiles(string[] arr) => throw new NotImplementedException(); - internal TextBox txtOutputFile { get => throw new NotImplementedException(); } - internal Button btnConvert { get => throw new NotImplementedException(); } - } - } - #endregion - - private static string inAudiblePath { get; } - = @"C:\" - + @"DEV_ROOT_EXAMPLE\" - + @"_NET\Visual Studio 2017\" - + @"inAudible197\decompiled - in progress\bin\Debug\inAudible.exe"; - private static async Task inAudibleDecrypt(string proposedOutputFile, string aaxFilename) - { - #region // inAudible code to change: - /* - * Prevent "Path too long" error - * ============================= - * BatchFiles.cs :: GenerateOutputFilepath() - * Add this just before the bottom return statement - * - if (oneOff && !string.IsNullOrWhiteSpace(outputPath)) - return str + "\\" + Path.GetFileNameWithoutExtension(outputPath) + "." + fileType; - */ - #endregion - - #region init inAudible - #region // suppress warnings - // inAudible. project properties > Build > Warning level=2 - #endregion - #region // instructions to create inAudible ExecutablePath - /* - * STEP 1 - * ====== - * do a PROJECT level find/replace within inAudible - * find - * Application.ExecutablePath - * replace - * AudibleConvertor.GLOBALS.ExecutablePath - * STEP 2 - * ====== - * new inAudible root-level file - * _GLOBALS.cs - * contents: - * namespace AudibleConvertor { public static class GLOBALS { public static string ExecutablePath { get; set; } = System.Windows.Forms.Application.ExecutablePath; } } - */ - #endregion - AudibleConvertor.GLOBALS.ExecutablePath = inAudiblePath; - // before using inAudible, set ini values - setIniValues(new Dictionary { ["selected_codec"] = "lossless", ["embed_cover"] = "True", ["copy_cover_art"] = "False", ["create_cue"] = "True", ["nfo"] = "True", ["strip_unabridged"] = "True", }); - #endregion - - // this provides the async magic to keep all of the form calling code in one method instead of event callback pattern - // TODO: error handling is not obvious: - // https://deaddesk.top/don't-fall-for-TaskCompletionSource-traps/ - var tcs = new TaskCompletionSource(); - - // to know when inAudible is complete. code to change: - #region // code to preceed ctor - /* - Action _conversionCompleteAction; - public Form1(Action conversionCompleteAction) : this() => _conversionCompleteAction = conversionCompleteAction; - */ - #endregion - #region // code for the end of bgwAAX_Completed() - /* - if (this.myAdvancedOptions.beep && !this.myAdvancedOptions.cylon) this.SOXPlay(Form1.appPath + "\\beep.mp3", true); - else if (myAdvancedOptions.cylon) SOXPlay(appPath + "\\inAudible-end.mp3", true); - _conversionCompleteAction?.Invoke(outputFileName); - } - */ - #endregion - - #region start inAudible - var form = new AudibleConvertor.Form1(tcs.SetResult); - form.Show(); - form.LoadAudibleFiles(new string[] { aaxFilename }); // inAudible: make public - - // change output info to include asin. put in temp - form.txtOutputFile.Text = proposedOutputFile; // inAudible: make public - - // submit/process/decrypt - form.btnConvert.PerformClick(); // inAudible: make public - - // ta-da -- magic! we stop here until inAudible complete - var outputAudioFilename = await tcs.Task; - #endregion - - #region when complete, close inAudible - // use this instead of Dinah.Core.Windows.Forms.UIThread() - form.Kill(); - #endregion - - return outputAudioFilename; - } - - private static void setIniValues(Dictionary settings) - { - // C:\Users\username\Documents\inAudible\config.ini - var iniPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal), "inAudible", "config.ini"); - var iniContents = File.ReadAllText(iniPath); - - foreach (var kvp in settings) - iniContents = System.Text.RegularExpressions.Regex.Replace( - iniContents, - $@"\r\n{kvp.Key} = [^\r\n]+\r\n", - $"\r\n{kvp.Key} = {kvp.Value}\r\n"); - - File.WriteAllText(iniPath, iniContents); - } - #endregion } } diff --git a/REFERENCE.txt b/REFERENCE.txt index 2e01e406..e056c25f 100644 --- a/REFERENCE.txt +++ b/REFERENCE.txt @@ -1,5 +1,7 @@ -- begin VERSIONING --------------------------------------------------------------------------------------------------------------------- https://github.com/rmcrackan/Libation/releases + +v3.0.1 : Legacy inAudible wire-up code is still present but is commented out. All future check-ins are not guaranteed to have inAudible wire-up code v3.0 : This version is fully powered by the Audible API. Legacy scraping code is still present but is commented out. All future check-ins are not guaranteed to have any scraping code -- end VERSIONING --------------------------------------------------------------------------------------------------------------------- diff --git a/__TODO.txt b/__TODO.txt index af012471..a35907a8 100644 --- a/__TODO.txt +++ b/__TODO.txt @@ -1,8 +1,4 @@ --- begin REPLACE SCRAPING WITH API --------------------------------------------------------------------------------------------------------------------- -remove "legacy inAudible wire-up code" --- end REPLACE SCRAPING WITH API --------------------------------------------------------------------------------------------------------------------- - --- begin ENHANCEMENT, PERFORMANCE: IMPORT --------------------------------------------------------------------------------------------------------------------- +-- begin ENHANCEMENT, PERFORMANCE: IMPORT --------------------------------------------------------------------------------------------------------------------- imports are PAINFULLY slow for just a few hundred items. wtf is taking so long? -- end ENHANCEMENT, PERFORMANCE: IMPORT ---------------------------------------------------------------------------------------------------------------------