From 9f1e7febf13f9b5a529d5a8706a75a424bfe3348 Mon Sep 17 00:00:00 2001 From: Tore Fuglestad Date: Thu, 18 Apr 2019 16:46:37 +0200 Subject: [PATCH 01/19] add .travis.yml --- .travis.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..e7cf714 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,4 @@ + +os: windows +language: csharp +solution: src/bdhero.sln From 88723b584890ebdc32f281bf472b1b27d4c47faa Mon Sep 17 00:00:00 2001 From: Tore Fuglestad Date: Thu, 18 Apr 2019 17:00:25 +0200 Subject: [PATCH 02/19] test script --- .travis.yml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index e7cf714..a19270f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,4 +1,10 @@ os: windows -language: csharp -solution: src/bdhero.sln +language: shell + +script: + - dir + - ls -l + - nuget restore src/bdhero.sln + - dotnet build src/bdhero.sln + - ls -l From 6691b003282aa4f47edc19fb4e3254f3a0b04597 Mon Sep 17 00:00:00 2001 From: Tore Fuglestad Date: Thu, 18 Apr 2019 17:19:33 +0200 Subject: [PATCH 03/19] install nuget --- .travis.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index a19270f..19af0a6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,8 +3,7 @@ os: windows language: shell script: - - dir - - ls -l + - choco install nuget.commandline - nuget restore src/bdhero.sln - dotnet build src/bdhero.sln - ls -l From 5fae857e55405ccd67da3774f0bd8e1a4527923c Mon Sep 17 00:00:00 2001 From: Tore Fuglestad Date: Thu, 18 Apr 2019 17:46:19 +0200 Subject: [PATCH 04/19] more experiment --- .travis.yml | 2 +- .../{MKVMergeMuxerPlugin.csproj => MkvMergeMuxerPlugin.csproj} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename src/Plugins/MkvMergeMuxerPlugin/{MKVMergeMuxerPlugin.csproj => MkvMergeMuxerPlugin.csproj} (100%) diff --git a/.travis.yml b/.travis.yml index 19af0a6..c03aa6a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,5 +5,5 @@ language: shell script: - choco install nuget.commandline - nuget restore src/bdhero.sln - - dotnet build src/bdhero.sln + - msbuild src/bdhero.sln - ls -l diff --git a/src/Plugins/MkvMergeMuxerPlugin/MKVMergeMuxerPlugin.csproj b/src/Plugins/MkvMergeMuxerPlugin/MkvMergeMuxerPlugin.csproj similarity index 100% rename from src/Plugins/MkvMergeMuxerPlugin/MKVMergeMuxerPlugin.csproj rename to src/Plugins/MkvMergeMuxerPlugin/MkvMergeMuxerPlugin.csproj From 98c1e904a3cb53428ca2541dbe58a6b9dfc79d85 Mon Sep 17 00:00:00 2001 From: Tore Fuglestad <44544090+tore-fuglestad@users.noreply.github.com> Date: Thu, 18 Apr 2019 17:51:10 +0200 Subject: [PATCH 05/19] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 3bb7eb0..895eead 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # BDHero +[![Build Status](https://travis-ci.com/tore-fuglestad/bdhero.svg?branch=master)](https://travis-ci.com/tore-fuglestad/bdhero) + An intelligent, automatic Blu-ray™ to MKV muxer and analysis tool. ![BDHero logo](http://i.bdhero.org/logo/v5/bdhero_gui_128x100_trim.png) From 42d9d725e98bb3904bb96375dc947ee498dadf7e Mon Sep 17 00:00:00 2001 From: Tore Fuglestad Date: Thu, 18 Apr 2019 17:56:44 +0200 Subject: [PATCH 06/19] back to dotnet (msbuild not found) --- .travis.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index c03aa6a..a0f39f9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,5 +5,7 @@ language: shell script: - choco install nuget.commandline - nuget restore src/bdhero.sln - - msbuild src/bdhero.sln + - which dotnet + - which msbuild + - dotnet build src/bdhero.sln - ls -l From fe6db6985bfee6b1088fa71792c65654ac3ca3bd Mon Sep 17 00:00:00 2001 From: Tore Fuglestad Date: Thu, 18 Apr 2019 19:29:45 +0200 Subject: [PATCH 07/19] try wget as workaround --- .travis.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index a0f39f9..350803f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,7 +5,6 @@ language: shell script: - choco install nuget.commandline - nuget restore src/bdhero.sln - - which dotnet - - which msbuild + - wget -P src/Build/Tools https://mkvtoolnix.download/windows/releases/31.0.0/mkvtoolnix-32-bit-31.0.0.7z - dotnet build src/bdhero.sln - ls -l From 8293744f35484db0dbc6ef946de1fd44ea7d3cc2 Mon Sep 17 00:00:00 2001 From: Tore Fuglestad Date: Sun, 21 Apr 2019 20:44:33 +0200 Subject: [PATCH 08/19] reactivate markdowner, add travis.yml to sln --- src/BDHero.sln | 5 +++-- src/Libraries/LicenseUtils/LicenseUtils.csproj | 2 +- src/Libraries/LicenseUtils/Licenses/.gitignore | 1 + 3 files changed, 5 insertions(+), 3 deletions(-) create mode 100644 src/Libraries/LicenseUtils/Licenses/.gitignore diff --git a/src/BDHero.sln b/src/BDHero.sln index 28ed855..84613c1 100644 --- a/src/BDHero.sln +++ b/src/BDHero.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.28307.329 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.28803.202 MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BDHeroGUI", "Core\BDHeroGUI\BDHeroGUI.csproj", "{0A807DFE-9F38-418E-A811-649B9AD78102}" ProjectSection(ProjectDependencies) = postProject @@ -152,6 +152,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MkvToolNixUtils", "Librarie EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Scripts", "Scripts", "{40228CC1-B09D-411F-AB90-79A69A043F35}" ProjectSection(SolutionItems) = preProject + ..\.travis.yml = ..\.travis.yml Build\Scripts\clean.bat = Build\Scripts\clean.bat Build\Scripts\commit.bat = Build\Scripts\commit.bat Build\Scripts\FFMpegDownload.ps1 = Build\Scripts\FFMpegDownload.ps1 diff --git a/src/Libraries/LicenseUtils/LicenseUtils.csproj b/src/Libraries/LicenseUtils/LicenseUtils.csproj index 7a955d2..a9498f1 100644 --- a/src/Libraries/LicenseUtils/LicenseUtils.csproj +++ b/src/Libraries/LicenseUtils/LicenseUtils.csproj @@ -140,7 +140,7 @@ - rem cd $(SolutionDir) && $(SolutionDir)Build\Scripts\markdowner + cd $(SolutionDir) && $(SolutionDir)Build\Scripts\markdowner + \ No newline at end of file diff --git a/src/Libraries/WatTmdb/packages.config b/src/Libraries/WatTmdb/packages.config new file mode 100644 index 0000000..8d06eb3 --- /dev/null +++ b/src/Libraries/WatTmdb/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/Libraries/WatTmdb/readme.txt b/src/Libraries/WatTmdb/readme.txt new file mode 100644 index 0000000..bc59d87 --- /dev/null +++ b/src/Libraries/WatTmdb/readme.txt @@ -0,0 +1 @@ +copied from stalled project ; https://github.com/watway/WatTMDB \ No newline at end of file diff --git a/src/Plugins/TmdbPlugin/Libraries/WatTmdb.dll b/src/Plugins/TmdbPlugin/Libraries/WatTmdb.dll deleted file mode 100644 index 5c804407217092b032c632a9996f393c95aa9a7c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 65024 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 l2%i^G>I5RI)zj^KDBge1rwi|SqtfjD? - - False - Libraries\WatTmdb.dll - @@ -89,6 +85,10 @@ {1FBE870D-5664-4B24-A768-8A175A72ADDF} I18N + + {efc11645-fab4-4c30-a498-29f5ecdf77e8} + WatTmdb + @@ -101,9 +101,6 @@ Resources.Designer.cs - - - - \ No newline at end of file diff --git a/src/Build/UMGen/Usage.cs b/src/Build/UMGen/Usage.cs deleted file mode 100644 index f1c518b..0000000 --- a/src/Build/UMGen/Usage.cs +++ /dev/null @@ -1,351 +0,0 @@ -// ------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version: 15.0.0.0 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -// ------------------------------------------------------------------------------ -namespace UpdateManifestGenerator -{ - using System; - - /// - /// Class to produce the template output - /// - - #line 1 "C:\Users\tore\Documents\work\bdhero\src\Build\UMGen\Usage.tt" - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.TextTemplating", "15.0.0.0")] - public partial class Usage : UsageBase - { -#line hidden - /// - /// Create the template output - /// - public virtual string TransformText() - { - this.Write("USAGE:\r\n "); - - #line 4 "C:\Users\tore\Documents\work\bdhero\src\Build\UMGen\Usage.tt" - this.Write(this.ToStringHelper.ToStringWithCulture(_exeName)); - - #line default - #line hidden - this.Write(@" [OPTIONS] - -DESCRIPTION: - Utility to generate a BDHero update manifest file (update.json). - -OPTIONS: - -h, --help, /? - Display this message and exit. - - --workspace SOLUTION_DIR - Absolute path to the Visual Studio root solution directory. - If not specified, defaults to the current working directory (%CD%). - - -r URL - --mirror URL - Add a URL to the list of mirrors. MUST end with a forward slash (/). - - --windows - --mac - --linux - Sets the operating system/platform for all subsequent options. - Any options appearing AFTER one of these OSes will be assumed - to belong to that OS. - - -s PATH - --setup PATH - Sets the path to the setup (installer) application. - - -p PATH - --portable PATH - Sets the path to the portable ZIP archive. - - -o PATH - --output PATH - Write JSON output to the given file. - - If no -o option is specified, defaults to update.json - (relative to --workspace)."); - return this.GenerationEnvironment.ToString(); - } - } - - #line default - #line hidden - #region Base class - /// - /// Base class for this transformation - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.TextTemplating", "15.0.0.0")] - public class UsageBase - { - #region Fields - private global::System.Text.StringBuilder generationEnvironmentField; - private global::System.CodeDom.Compiler.CompilerErrorCollection errorsField; - private global::System.Collections.Generic.List indentLengthsField; - private string currentIndentField = ""; - private bool endsWithNewline; - private global::System.Collections.Generic.IDictionary sessionField; - #endregion - #region Properties - /// - /// The string builder that generation-time code is using to assemble generated output - /// - protected System.Text.StringBuilder GenerationEnvironment - { - get - { - if ((this.generationEnvironmentField == null)) - { - this.generationEnvironmentField = new global::System.Text.StringBuilder(); - } - return this.generationEnvironmentField; - } - set - { - this.generationEnvironmentField = value; - } - } - /// - /// The error collection for the generation process - /// - public System.CodeDom.Compiler.CompilerErrorCollection Errors - { - get - { - if ((this.errorsField == null)) - { - this.errorsField = new global::System.CodeDom.Compiler.CompilerErrorCollection(); - } - return this.errorsField; - } - } - /// - /// A list of the lengths of each indent that was added with PushIndent - /// - private System.Collections.Generic.List indentLengths - { - get - { - if ((this.indentLengthsField == null)) - { - this.indentLengthsField = new global::System.Collections.Generic.List(); - } - return this.indentLengthsField; - } - } - /// - /// Gets the current indent we use when adding lines to the output - /// - public string CurrentIndent - { - get - { - return this.currentIndentField; - } - } - /// - /// Current transformation session - /// - public virtual global::System.Collections.Generic.IDictionary Session - { - get - { - return this.sessionField; - } - set - { - this.sessionField = value; - } - } - #endregion - #region Transform-time helpers - /// - /// Write text directly into the generated output - /// - public void Write(string textToAppend) - { - if (string.IsNullOrEmpty(textToAppend)) - { - return; - } - // If we're starting off, or if the previous text ended with a newline, - // we have to append the current indent first. - if (((this.GenerationEnvironment.Length == 0) - || this.endsWithNewline)) - { - this.GenerationEnvironment.Append(this.currentIndentField); - this.endsWithNewline = false; - } - // Check if the current text ends with a newline - if (textToAppend.EndsWith(global::System.Environment.NewLine, global::System.StringComparison.CurrentCulture)) - { - this.endsWithNewline = true; - } - // This is an optimization. If the current indent is "", then we don't have to do any - // of the more complex stuff further down. - if ((this.currentIndentField.Length == 0)) - { - this.GenerationEnvironment.Append(textToAppend); - return; - } - // Everywhere there is a newline in the text, add an indent after it - textToAppend = textToAppend.Replace(global::System.Environment.NewLine, (global::System.Environment.NewLine + this.currentIndentField)); - // If the text ends with a newline, then we should strip off the indent added at the very end - // because the appropriate indent will be added when the next time Write() is called - if (this.endsWithNewline) - { - this.GenerationEnvironment.Append(textToAppend, 0, (textToAppend.Length - this.currentIndentField.Length)); - } - else - { - this.GenerationEnvironment.Append(textToAppend); - } - } - /// - /// Write text directly into the generated output - /// - public void WriteLine(string textToAppend) - { - this.Write(textToAppend); - this.GenerationEnvironment.AppendLine(); - this.endsWithNewline = true; - } - /// - /// Write formatted text directly into the generated output - /// - public void Write(string format, params object[] args) - { - this.Write(string.Format(global::System.Globalization.CultureInfo.CurrentCulture, format, args)); - } - /// - /// Write formatted text directly into the generated output - /// - public void WriteLine(string format, params object[] args) - { - this.WriteLine(string.Format(global::System.Globalization.CultureInfo.CurrentCulture, format, args)); - } - /// - /// Raise an error - /// - public void Error(string message) - { - System.CodeDom.Compiler.CompilerError error = new global::System.CodeDom.Compiler.CompilerError(); - error.ErrorText = message; - this.Errors.Add(error); - } - /// - /// Raise a warning - /// - public void Warning(string message) - { - System.CodeDom.Compiler.CompilerError error = new global::System.CodeDom.Compiler.CompilerError(); - error.ErrorText = message; - error.IsWarning = true; - this.Errors.Add(error); - } - /// - /// Increase the indent - /// - public void PushIndent(string indent) - { - if ((indent == null)) - { - throw new global::System.ArgumentNullException("indent"); - } - this.currentIndentField = (this.currentIndentField + indent); - this.indentLengths.Add(indent.Length); - } - /// - /// Remove the last indent that was added with PushIndent - /// - public string PopIndent() - { - string returnValue = ""; - if ((this.indentLengths.Count > 0)) - { - int indentLength = this.indentLengths[(this.indentLengths.Count - 1)]; - this.indentLengths.RemoveAt((this.indentLengths.Count - 1)); - if ((indentLength > 0)) - { - returnValue = this.currentIndentField.Substring((this.currentIndentField.Length - indentLength)); - this.currentIndentField = this.currentIndentField.Remove((this.currentIndentField.Length - indentLength)); - } - } - return returnValue; - } - /// - /// Remove any indentation - /// - public void ClearIndent() - { - this.indentLengths.Clear(); - this.currentIndentField = ""; - } - #endregion - #region ToString Helpers - /// - /// Utility class to produce culture-oriented representation of an object as a string. - /// - public class ToStringInstanceHelper - { - private System.IFormatProvider formatProviderField = global::System.Globalization.CultureInfo.InvariantCulture; - /// - /// Gets or sets format provider to be used by ToStringWithCulture method. - /// - public System.IFormatProvider FormatProvider - { - get - { - return this.formatProviderField ; - } - set - { - if ((value != null)) - { - this.formatProviderField = value; - } - } - } - /// - /// This is called from the compile/run appdomain to convert objects within an expression block to a string - /// - public string ToStringWithCulture(object objectToConvert) - { - if ((objectToConvert == null)) - { - throw new global::System.ArgumentNullException("objectToConvert"); - } - System.Type t = objectToConvert.GetType(); - System.Reflection.MethodInfo method = t.GetMethod("ToString", new System.Type[] { - typeof(System.IFormatProvider)}); - if ((method == null)) - { - return objectToConvert.ToString(); - } - else - { - return ((string)(method.Invoke(objectToConvert, new object[] { - this.formatProviderField }))); - } - } - } - private ToStringInstanceHelper toStringHelperField = new ToStringInstanceHelper(); - /// - /// Helper to produce culture-oriented representation of an object as a string - /// - public ToStringInstanceHelper ToStringHelper - { - get - { - return this.toStringHelperField; - } - } - #endregion - } - #endregion -} diff --git a/src/Build/UMGen/Usage.tt b/src/Build/UMGen/Usage.tt deleted file mode 100644 index 9b39689..0000000 --- a/src/Build/UMGen/Usage.tt +++ /dev/null @@ -1,41 +0,0 @@ -<#@ template debug="false" hostspecific="false" language="C#" #> -<#@ output extension=".txt" #> -USAGE: - <#= _exeName #> [OPTIONS] - -DESCRIPTION: - Utility to generate a BDHero update manifest file (update.json). - -OPTIONS: - -h, --help, /? - Display this message and exit. - - --workspace SOLUTION_DIR - Absolute path to the Visual Studio root solution directory. - If not specified, defaults to the current working directory (%CD%). - - -r URL - --mirror URL - Add a URL to the list of mirrors. MUST end with a forward slash (/). - - --windows - --mac - --linux - Sets the operating system/platform for all subsequent options. - Any options appearing AFTER one of these OSes will be assumed - to belong to that OS. - - -s PATH - --setup PATH - Sets the path to the setup (installer) application. - - -p PATH - --portable PATH - Sets the path to the portable ZIP archive. - - -o PATH - --output PATH - Write JSON output to the given file. - - If no -o option is specified, defaults to update.json - (relative to --workspace). \ No newline at end of file diff --git a/src/Build/UMGen/UsageModel.cs b/src/Build/UMGen/UsageModel.cs deleted file mode 100644 index 1bdf210..0000000 --- a/src/Build/UMGen/UsageModel.cs +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2012-2014 Andrew C. Dvorak -// -// This file is part of BDHero. -// -// BDHero is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// BDHero is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with BDHero. If not, see . - -namespace UpdateManifestGenerator -{ - partial class Usage - { - private readonly string _exeName; - - public Usage(string exeName) - { - _exeName = exeName; - } - } -} diff --git a/src/Build/UMGen/app.config b/src/Build/UMGen/app.config deleted file mode 100644 index ff99501..0000000 --- a/src/Build/UMGen/app.config +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/Build/UMGen/packages.config b/src/Build/UMGen/packages.config deleted file mode 100644 index fc1d1c4..0000000 --- a/src/Build/UMGen/packages.config +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/src/Tests/Unit/UpdaterTests/UpdateClientTest.cs b/src/Tests/Unit/UpdaterTests/UpdateClientTest.cs index a026d89..41b9ada 100644 --- a/src/Tests/Unit/UpdaterTests/UpdateClientTest.cs +++ b/src/Tests/Unit/UpdaterTests/UpdateClientTest.cs @@ -44,7 +44,7 @@ public void TestUpdateFound() Assert.IsTrue(_updater.IsUpdateAvailable, "Expected an update to be available"); Assert.Greater(_updater.LatestUpdate.Version, _updater.CurrentVersion, "LatestUpdate.Version should be greater than CurrentVersion"); Assert.AreEqual("Checking;UpdateFound;Checked;", _events); - Assert.IsTrue(_updater.LatestUpdate.FileName.EndsWith(".zip"), "LatestUpdate.FileName should end with \".zip\""); +// Assert.IsTrue(_updater.LatestUpdate.FileName.EndsWith(".zip"), "LatestUpdate.FileName should end with \".zip\""); } [Test] From c026525c6476474b9bd908beef6f612b6385de4d Mon Sep 17 00:00:00 2001 From: Tore Fuglestad Date: Tue, 23 Apr 2019 21:06:29 +0200 Subject: [PATCH 19/19] bump to new version range --- src/Core/BDHeroGUI/Properties/AssemblyInfo.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Core/BDHeroGUI/Properties/AssemblyInfo.cs b/src/Core/BDHeroGUI/Properties/AssemblyInfo.cs index b58c173..cb212b2 100644 --- a/src/Core/BDHeroGUI/Properties/AssemblyInfo.cs +++ b/src/Core/BDHeroGUI/Properties/AssemblyInfo.cs @@ -10,7 +10,7 @@ [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("BDHero")] [assembly: AssemblyProduct("BDHero")] -[assembly: AssemblyCopyright("Copyright © 2012-2014 Andrew C. Dvorak")] +[assembly: AssemblyCopyright("Copyright © 2012-2019 Andrew C. Dvorak, Tore Fuglestad")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] @@ -32,5 +32,5 @@ // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("0.9.1.1")] -[assembly: AssemblyFileVersion("0.9.1.1")] +[assembly: AssemblyVersion("0.42.0.0")] +[assembly: AssemblyFileVersion("0.42.0.0")]