diff --git a/PlexDL.Installer/PlexDL.Installer.vdproj b/PlexDL.Installer/PlexDL.Installer.vdproj index 448c0d5..05a1283 100644 --- a/PlexDL.Installer/PlexDL.Installer.vdproj +++ b/PlexDL.Installer/PlexDL.Installer.vdproj @@ -13,232 +13,40 @@ "SccProvider" = "8:" "Hierarchy" { - "Entry" - { - "MsmKey" = "8:_107671BFEA1C6B806B3C633CD971EE3C" - "OwnerKey" = "8:_4CF721B566F343D8B223D4F7F310ED72" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_2097FACF6740F68BE3EA5A64C897B9D2" - "OwnerKey" = "8:_40157104C6484B0385B33451CF8D6917" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_2097FACF6740F68BE3EA5A64C897B9D2" - "OwnerKey" = "8:_4CF721B566F343D8B223D4F7F310ED72" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_2097FACF6740F68BE3EA5A64C897B9D2" - "OwnerKey" = "8:_2AE2838DB32F4DD4FF5ADC45C798D041" - "MsmSig" = "8:_UNDEFINED" - } "Entry" { "MsmKey" = "8:_223CD518FC6DF3B8B1A9028D59784582" - "OwnerKey" = "8:_40157104C6484B0385B33451CF8D6917" + "OwnerKey" = "8:_41D4C0EEA04A4401A3D1731F184F821E" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_223CD518FC6DF3B8B1A9028D59784582" - "OwnerKey" = "8:_8E1BA84916C02AFD940243CD8E4FC8D1" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_223CD518FC6DF3B8B1A9028D59784582" - "OwnerKey" = "8:_4CF721B566F343D8B223D4F7F310ED72" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_223CD518FC6DF3B8B1A9028D59784582" - "OwnerKey" = "8:_3DF9DC82DB0E3FF8BB16ECF358542E7B" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_228647397FA24F958CACB5396756932D" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_22DA512AF2A06942EF72892B8404F998" - "OwnerKey" = "8:_4A936AFEE6353DE9FAF47CC37D85FA4F" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_22DA512AF2A06942EF72892B8404F998" - "OwnerKey" = "8:_4CF721B566F343D8B223D4F7F310ED72" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_22DA512AF2A06942EF72892B8404F998" - "OwnerKey" = "8:_40157104C6484B0385B33451CF8D6917" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_2336A284E2BD581467E5001B59BFB3A7" - "OwnerKey" = "8:_40157104C6484B0385B33451CF8D6917" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_2336A284E2BD581467E5001B59BFB3A7" - "OwnerKey" = "8:_4CF721B566F343D8B223D4F7F310ED72" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_2336A284E2BD581467E5001B59BFB3A7" - "OwnerKey" = "8:_2AE2838DB32F4DD4FF5ADC45C798D041" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_2A01FEBD689E4058AC99C71EF9F78B49" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_2AE2838DB32F4DD4FF5ADC45C798D041" - "OwnerKey" = "8:_4CF721B566F343D8B223D4F7F310ED72" + "OwnerKey" = "8:_8AB8DB74D590D9F7A7562D01BAAA989B" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_3DA663E88684D13A318029C8E8DC85B9" - "OwnerKey" = "8:_40157104C6484B0385B33451CF8D6917" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_3DA663E88684D13A318029C8E8DC85B9" - "OwnerKey" = "8:_2336A284E2BD581467E5001B59BFB3A7" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_3DE61B83814A80F0BBDA07E9C133DA92" - "OwnerKey" = "8:_4CF721B566F343D8B223D4F7F310ED72" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_3DF9DC82DB0E3FF8BB16ECF358542E7B" - "OwnerKey" = "8:_40157104C6484B0385B33451CF8D6917" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_3DF9DC82DB0E3FF8BB16ECF358542E7B" - "OwnerKey" = "8:_2AE2838DB32F4DD4FF5ADC45C798D041" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_40157104C6484B0385B33451CF8D6917" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_4A936AFEE6353DE9FAF47CC37D85FA4F" - "OwnerKey" = "8:_3DF9DC82DB0E3FF8BB16ECF358542E7B" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_4A936AFEE6353DE9FAF47CC37D85FA4F" - "OwnerKey" = "8:_4CF721B566F343D8B223D4F7F310ED72" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_4A936AFEE6353DE9FAF47CC37D85FA4F" - "OwnerKey" = "8:_8E1BA84916C02AFD940243CD8E4FC8D1" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_4A936AFEE6353DE9FAF47CC37D85FA4F" - "OwnerKey" = "8:_40157104C6484B0385B33451CF8D6917" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_4BFA65A67A62405D80FF2E8E802C21F4" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_4CF721B566F343D8B223D4F7F310ED72" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_4E7C879F485E01532E5484312D93A550" - "OwnerKey" = "8:_9C0C138D6FFB4DDFB24A47CDD9939BD0" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_4E7C879F485E01532E5484312D93A550" - "OwnerKey" = "8:_B2EA21A7B34C48CC882584A163811475" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_5420AABF5CB747EF928AE368DAF9083E" + "MsmKey" = "8:_41D4C0EEA04A4401A3D1731F184F821E" "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_5440A6AF800EB689525D31CC687FC288" - "OwnerKey" = "8:_4A936AFEE6353DE9FAF47CC37D85FA4F" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_5440A6AF800EB689525D31CC687FC288" - "OwnerKey" = "8:_4CF721B566F343D8B223D4F7F310ED72" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_5440A6AF800EB689525D31CC687FC288" - "OwnerKey" = "8:_40157104C6484B0385B33451CF8D6917" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_606208B6A4CFE8B06D85AA36CA6FD48F" - "OwnerKey" = "8:_40157104C6484B0385B33451CF8D6917" + "MsmKey" = "8:_454353F7C022CBFFE799DE3FD505CC84" + "OwnerKey" = "8:_223CD518FC6DF3B8B1A9028D59784582" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_606208B6A4CFE8B06D85AA36CA6FD48F" - "OwnerKey" = "8:_4CF721B566F343D8B223D4F7F310ED72" + "MsmKey" = "8:_454353F7C022CBFFE799DE3FD505CC84" + "OwnerKey" = "8:_41D4C0EEA04A4401A3D1731F184F821E" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_606208B6A4CFE8B06D85AA36CA6FD48F" - "OwnerKey" = "8:_2AE2838DB32F4DD4FF5ADC45C798D041" + "MsmKey" = "8:_4C96849C69782A0499CB5AEEB2BA72AC" + "OwnerKey" = "8:_41D4C0EEA04A4401A3D1731F184F821E" "MsmSig" = "8:_UNDEFINED" } "Entry" @@ -249,38 +57,14 @@ } "Entry" { - "MsmKey" = "8:_78A4DD1BE1804C568A704486576E8566" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_84F710332A37B146B55A83484BE3BE19" - "OwnerKey" = "8:_4CF721B566F343D8B223D4F7F310ED72" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_8A0029CDC47C4C3DA8BE4734737C42EC" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_8B39E1E26CD62B3B4CB8939BE14D1C1D" - "OwnerKey" = "8:_4CF721B566F343D8B223D4F7F310ED72" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_8E1BA84916C02AFD940243CD8E4FC8D1" - "OwnerKey" = "8:_4CF721B566F343D8B223D4F7F310ED72" + "MsmKey" = "8:_8AB8DB74D590D9F7A7562D01BAAA989B" + "OwnerKey" = "8:_4C96849C69782A0499CB5AEEB2BA72AC" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_91FE5DC7699D574D355070837037CCB8" - "OwnerKey" = "8:_AF29618318B1DB0317BABFE7259DC4CC" + "OwnerKey" = "8:_454353F7C022CBFFE799DE3FD505CC84" "MsmSig" = "8:_UNDEFINED" } "Entry" @@ -291,2097 +75,197 @@ } "Entry" { - "MsmKey" = "8:_9C0C138D6FFB4DDFB24A47CDD9939BD0" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_AABB3A9E41CBACA7128C222FB5D8B013" - "OwnerKey" = "8:_40157104C6484B0385B33451CF8D6917" + "MsmKey" = "8:_C0A4C421B094EB92C83656418278016B" + "OwnerKey" = "8:_41D4C0EEA04A4401A3D1731F184F821E" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_AF29618318B1DB0317BABFE7259DC4CC" - "OwnerKey" = "8:_4CF721B566F343D8B223D4F7F310ED72" + "MsmKey" = "8:_C2C7891E5F2D6F5F922B2ECA8C0B5481" + "OwnerKey" = "8:_223CD518FC6DF3B8B1A9028D59784582" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_AF29618318B1DB0317BABFE7259DC4CC" - "OwnerKey" = "8:_223CD518FC6DF3B8B1A9028D59784582" + "MsmKey" = "8:_C5B5701BEBD8B69F019665F61394882E" + "OwnerKey" = "8:_F71C4A1970FBB5DD143510A181631B5B" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_B2EA21A7B34C48CC882584A163811475" - "OwnerKey" = "8:_UNDEFINED" + "MsmKey" = "8:_F71C4A1970FBB5DD143510A181631B5B" + "OwnerKey" = "8:_8AB8DB74D590D9F7A7562D01BAAA989B" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_BA6E00E66E5B767D4EBC320419011E34" - "OwnerKey" = "8:_40157104C6484B0385B33451CF8D6917" + "MsmKey" = "8:_FBF0B57C243458ED5301963CABED7193" + "OwnerKey" = "8:_F71C4A1970FBB5DD143510A181631B5B" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_BA6E00E66E5B767D4EBC320419011E34" - "OwnerKey" = "8:_F5783A3D765245348B5E905D43A3A3D4" + "MsmKey" = "8:_UNDEFINED" + "OwnerKey" = "8:_91FE5DC7699D574D355070837037CCB8" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_BA6E00E66E5B767D4EBC320419011E34" - "OwnerKey" = "8:_8B39E1E26CD62B3B4CB8939BE14D1C1D" + "MsmKey" = "8:_UNDEFINED" + "OwnerKey" = "8:_F71C4A1970FBB5DD143510A181631B5B" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_BA6E00E66E5B767D4EBC320419011E34" - "OwnerKey" = "8:_4CF721B566F343D8B223D4F7F310ED72" + "MsmKey" = "8:_UNDEFINED" + "OwnerKey" = "8:_C5B5701BEBD8B69F019665F61394882E" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_BA6E00E66E5B767D4EBC320419011E34" - "OwnerKey" = "8:_2AE2838DB32F4DD4FF5ADC45C798D041" + "MsmKey" = "8:_UNDEFINED" + "OwnerKey" = "8:_FBF0B57C243458ED5301963CABED7193" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_C0A4C421B094EB92C83656418278016B" - "OwnerKey" = "8:_4CF721B566F343D8B223D4F7F310ED72" + "MsmKey" = "8:_UNDEFINED" + "OwnerKey" = "8:_C0A4C421B094EB92C83656418278016B" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_C2C7891E5F2D6F5F922B2ECA8C0B5481" + "MsmKey" = "8:_UNDEFINED" "OwnerKey" = "8:_223CD518FC6DF3B8B1A9028D59784582" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_C8AF3B49AEE94532850FBACA09905EA1" - "OwnerKey" = "8:_UNDEFINED" + "MsmKey" = "8:_UNDEFINED" + "OwnerKey" = "8:_C2C7891E5F2D6F5F922B2ECA8C0B5481" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_C9BE0F2FB840234FB39AE73364672062" - "OwnerKey" = "8:_4A936AFEE6353DE9FAF47CC37D85FA4F" + "MsmKey" = "8:_UNDEFINED" + "OwnerKey" = "8:_77A65FFB2D85C5589F5B1382D1A936AF" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_C9BE0F2FB840234FB39AE73364672062" - "OwnerKey" = "8:_4CF721B566F343D8B223D4F7F310ED72" + "MsmKey" = "8:_UNDEFINED" + "OwnerKey" = "8:_454353F7C022CBFFE799DE3FD505CC84" "MsmSig" = "8:_UNDEFINED" } - "Entry" + } + "Configurations" + { + "Debug" { - "MsmKey" = "8:_C9BE0F2FB840234FB39AE73364672062" - "OwnerKey" = "8:_40157104C6484B0385B33451CF8D6917" - "MsmSig" = "8:_UNDEFINED" + "DisplayName" = "8:Debug" + "IsDebugOnly" = "11:TRUE" + "IsReleaseOnly" = "11:FALSE" + "OutputFilename" = "8:Debug\\PlexDL.Installer.msi" + "PackageFilesAs" = "3:2" + "PackageFileSize" = "3:-2147483648" + "CabType" = "3:1" + "Compression" = "3:2" + "SignOutput" = "11:FALSE" + "CertificateFile" = "8:" + "PrivateKeyFile" = "8:" + "TimeStampServer" = "8:" + "InstallerBootstrapper" = "3:2" + "BootstrapperCfg:{63ACBE69-63AA-4F98-B2B6-99F9E24495F2}" + { + "Enabled" = "11:TRUE" + "PromptEnabled" = "11:TRUE" + "PrerequisitesLocation" = "2:1" + "Url" = "8:" + "ComponentsUrl" = "8:" + "Items" + { + "{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:.NETFramework,Version=v4.7.2" + { + "Name" = "8:Microsoft .NET Framework 4.7.2 (x86 and x64)" + "ProductCode" = "8:.NETFramework,Version=v4.7.2" + } + } + } } - "Entry" + "Release" { - "MsmKey" = "8:_CC95A3B0485805878E3D092CA05136F6" - "OwnerKey" = "8:_4CF721B566F343D8B223D4F7F310ED72" - "MsmSig" = "8:_UNDEFINED" + "DisplayName" = "8:Release" + "IsDebugOnly" = "11:FALSE" + "IsReleaseOnly" = "11:TRUE" + "OutputFilename" = "8:Release\\PlexDL.Installer.msi" + "PackageFilesAs" = "3:2" + "PackageFileSize" = "3:-2147483648" + "CabType" = "3:1" + "Compression" = "3:2" + "SignOutput" = "11:FALSE" + "CertificateFile" = "8:" + "PrivateKeyFile" = "8:" + "TimeStampServer" = "8:" + "InstallerBootstrapper" = "3:2" + "BootstrapperCfg:{63ACBE69-63AA-4F98-B2B6-99F9E24495F2}" + { + "Enabled" = "11:TRUE" + "PromptEnabled" = "11:TRUE" + "PrerequisitesLocation" = "2:1" + "Url" = "8:" + "ComponentsUrl" = "8:" + "Items" + { + "{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:.NETFramework,Version=v4.7.2" + { + "Name" = "8:Microsoft .NET Framework 4.7.2 (x86 and x64)" + "ProductCode" = "8:.NETFramework,Version=v4.7.2" + } + } + } } - "Entry" + } + "Deployable" + { + "CustomAction" { - "MsmKey" = "8:_CC95A3B0485805878E3D092CA05136F6" - "OwnerKey" = "8:_78A4DD1BE1804C568A704486576E8566" - "MsmSig" = "8:_UNDEFINED" } - "Entry" + "DefaultFeature" { - "MsmKey" = "8:_D542903704194EF4A69113E098BCA13C" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" + "Name" = "8:DefaultFeature" + "Title" = "8:" + "Description" = "8:" } - "Entry" + "ExternalPersistence" { - "MsmKey" = "8:_D8895C4D1BF9DC9C0890B0A844332F78" - "OwnerKey" = "8:_228647397FA24F958CACB5396756932D" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_D8895C4D1BF9DC9C0890B0A844332F78" - "OwnerKey" = "8:_78A4DD1BE1804C568A704486576E8566" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_D8895C4D1BF9DC9C0890B0A844332F78" - "OwnerKey" = "8:_E394DA2B3CE7B35879615FB13C5A4AF8" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_D8895C4D1BF9DC9C0890B0A844332F78" - "OwnerKey" = "8:_2336A284E2BD581467E5001B59BFB3A7" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_D8895C4D1BF9DC9C0890B0A844332F78" - "OwnerKey" = "8:_3DA663E88684D13A318029C8E8DC85B9" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_D88C6F9C0E96EE89456E06F3B1119F22" - "OwnerKey" = "8:_4CF721B566F343D8B223D4F7F310ED72" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_E394DA2B3CE7B35879615FB13C5A4AF8" - "OwnerKey" = "8:_4CF721B566F343D8B223D4F7F310ED72" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_E394DA2B3CE7B35879615FB13C5A4AF8" - "OwnerKey" = "8:_78A4DD1BE1804C568A704486576E8566" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_E3CDB02F29C0CFC27294FA7CF44453BD" - "OwnerKey" = "8:_40157104C6484B0385B33451CF8D6917" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_E3CDB02F29C0CFC27294FA7CF44453BD" - "OwnerKey" = "8:_B2EA21A7B34C48CC882584A163811475" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_E3CDB02F29C0CFC27294FA7CF44453BD" - "OwnerKey" = "8:_78A4DD1BE1804C568A704486576E8566" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_E3CDB02F29C0CFC27294FA7CF44453BD" - "OwnerKey" = "8:_CC95A3B0485805878E3D092CA05136F6" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_E3CDB02F29C0CFC27294FA7CF44453BD" - "OwnerKey" = "8:_4CF721B566F343D8B223D4F7F310ED72" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_E3CDB02F29C0CFC27294FA7CF44453BD" - "OwnerKey" = "8:_2AE2838DB32F4DD4FF5ADC45C798D041" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_F5783A3D765245348B5E905D43A3A3D4" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_91FE5DC7699D574D355070837037CCB8" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_AF29618318B1DB0317BABFE7259DC4CC" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_F5783A3D765245348B5E905D43A3A3D4" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_D542903704194EF4A69113E098BCA13C" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_C8AF3B49AEE94532850FBACA09905EA1" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_B2EA21A7B34C48CC882584A163811475" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_9C0C138D6FFB4DDFB24A47CDD9939BD0" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_4E7C879F485E01532E5484312D93A550" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_78A4DD1BE1804C568A704486576E8566" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_5420AABF5CB747EF928AE368DAF9083E" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_4CF721B566F343D8B223D4F7F310ED72" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_107671BFEA1C6B806B3C633CD971EE3C" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_8B39E1E26CD62B3B4CB8939BE14D1C1D" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_3DE61B83814A80F0BBDA07E9C133DA92" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_E394DA2B3CE7B35879615FB13C5A4AF8" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_D88C6F9C0E96EE89456E06F3B1119F22" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_84F710332A37B146B55A83484BE3BE19" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_CC95A3B0485805878E3D092CA05136F6" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_2AE2838DB32F4DD4FF5ADC45C798D041" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_C0A4C421B094EB92C83656418278016B" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_4BFA65A67A62405D80FF2E8E802C21F4" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_40157104C6484B0385B33451CF8D6917" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_2336A284E2BD581467E5001B59BFB3A7" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_3DA663E88684D13A318029C8E8DC85B9" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_AABB3A9E41CBACA7128C222FB5D8B013" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_2097FACF6740F68BE3EA5A64C897B9D2" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_BA6E00E66E5B767D4EBC320419011E34" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_E3CDB02F29C0CFC27294FA7CF44453BD" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_4A936AFEE6353DE9FAF47CC37D85FA4F" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_5440A6AF800EB689525D31CC687FC288" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_22DA512AF2A06942EF72892B8404F998" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_C9BE0F2FB840234FB39AE73364672062" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_606208B6A4CFE8B06D85AA36CA6FD48F" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_223CD518FC6DF3B8B1A9028D59784582" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_C2C7891E5F2D6F5F922B2ECA8C0B5481" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_77A65FFB2D85C5589F5B1382D1A936AF" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_2A01FEBD689E4058AC99C71EF9F78B49" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_228647397FA24F958CACB5396756932D" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_D8895C4D1BF9DC9C0890B0A844332F78" - "MsmSig" = "8:_UNDEFINED" - } - } - "Configurations" - { - "Debug" - { - "DisplayName" = "8:Debug" - "IsDebugOnly" = "11:TRUE" - "IsReleaseOnly" = "11:FALSE" - "OutputFilename" = "8:Debug\\PlexDL.Installer.msi" - "PackageFilesAs" = "3:2" - "PackageFileSize" = "3:-2147483648" - "CabType" = "3:1" - "Compression" = "3:2" - "SignOutput" = "11:FALSE" - "CertificateFile" = "8:" - "PrivateKeyFile" = "8:" - "TimeStampServer" = "8:" - "InstallerBootstrapper" = "3:2" - "BootstrapperCfg:{63ACBE69-63AA-4F98-B2B6-99F9E24495F2}" - { - "Enabled" = "11:TRUE" - "PromptEnabled" = "11:TRUE" - "PrerequisitesLocation" = "2:1" - "Url" = "8:" - "ComponentsUrl" = "8:" - } - } - "Release" - { - "DisplayName" = "8:Release" - "IsDebugOnly" = "11:FALSE" - "IsReleaseOnly" = "11:TRUE" - "OutputFilename" = "8:Release\\PlexDL.Installer.msi" - "PackageFilesAs" = "3:2" - "PackageFileSize" = "3:-2147483648" - "CabType" = "3:1" - "Compression" = "3:2" - "SignOutput" = "11:FALSE" - "CertificateFile" = "8:" - "PrivateKeyFile" = "8:" - "TimeStampServer" = "8:" - "InstallerBootstrapper" = "3:2" - "BootstrapperCfg:{63ACBE69-63AA-4F98-B2B6-99F9E24495F2}" - { - "Enabled" = "11:TRUE" - "PromptEnabled" = "11:TRUE" - "PrerequisitesLocation" = "2:1" - "Url" = "8:" - "ComponentsUrl" = "8:" - } - } - } - "Deployable" - { - "CustomAction" - { - } - "DefaultFeature" - { - "Name" = "8:DefaultFeature" - "Title" = "8:" - "Description" = "8:" - } - "ExternalPersistence" - { - "LaunchCondition" - { - "{A06ECF26-33A3-4562-8140-9B0E340D4F24}:_47623B48FC0A495AA879B4EE47D082EC" - { - "Name" = "8:.NET Framework" - "Message" = "8:[VSDNETMSG]" - "FrameworkVersion" = "8:.NETFramework,Version=v4.7.2" - "AllowLaterVersions" = "11:FALSE" - "InstallUrl" = "8:http://go.microsoft.com/fwlink/?LinkId=863262" - } - } - } - "File" - { - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_107671BFEA1C6B806B3C633CD971EE3C" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:UIHelpers, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL" - "ScatterAssemblies" - { - "_107671BFEA1C6B806B3C633CD971EE3C" - { - "Name" = "8:UIHelpers.dll" - "Attributes" = "3:512" - } - } - "SourcePath" = "8:UIHelpers.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_E3289F50E7E54BFCAFBE5D075275C51F" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_2097FACF6740F68BE3EA5A64C897B9D2" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:PlexDL.AltoHTTP, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL" - "ScatterAssemblies" - { - "_2097FACF6740F68BE3EA5A64C897B9D2" - { - "Name" = "8:PlexDL.AltoHTTP.dll" - "Attributes" = "3:512" - } - } - "SourcePath" = "8:PlexDL.AltoHTTP.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_E3289F50E7E54BFCAFBE5D075275C51F" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_223CD518FC6DF3B8B1A9028D59784582" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51" - "ScatterAssemblies" - { - "_223CD518FC6DF3B8B1A9028D59784582" - { - "Name" = "8:netstandard.dll" - "Attributes" = "3:512" - } - } - "SourcePath" = "8:netstandard.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_E3289F50E7E54BFCAFBE5D075275C51F" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_22DA512AF2A06942EF72892B8404F998" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:System.Numerics.Vectors, Version=4.1.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" - "ScatterAssemblies" - { - "_22DA512AF2A06942EF72892B8404F998" - { - "Name" = "8:System.Numerics.Vectors.dll" - "Attributes" = "3:512" - } - } - "SourcePath" = "8:System.Numerics.Vectors.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_E3289F50E7E54BFCAFBE5D075275C51F" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_2336A284E2BD581467E5001B59BFB3A7" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:PlexDL.WaitWindow, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL" - "ScatterAssemblies" - { - "_2336A284E2BD581467E5001B59BFB3A7" - { - "Name" = "8:PlexDL.WaitWindow.dll" - "Attributes" = "3:512" - } - } - "SourcePath" = "8:PlexDL.WaitWindow.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_E3289F50E7E54BFCAFBE5D075275C51F" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_2AE2838DB32F4DD4FF5ADC45C798D041" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:GitHubUpdater, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL" - "ScatterAssemblies" - { - "_2AE2838DB32F4DD4FF5ADC45C798D041" - { - "Name" = "8:GitHubUpdater.dll" - "Attributes" = "3:512" - } - } - "SourcePath" = "8:GitHubUpdater.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_E3289F50E7E54BFCAFBE5D075275C51F" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_3DA663E88684D13A318029C8E8DC85B9" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:PlexDL.Common.Components, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL" - "ScatterAssemblies" - { - "_3DA663E88684D13A318029C8E8DC85B9" - { - "Name" = "8:PlexDL.Common.Components.dll" - "Attributes" = "3:512" - } - } - "SourcePath" = "8:PlexDL.Common.Components.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_E3289F50E7E54BFCAFBE5D075275C51F" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_3DE61B83814A80F0BBDA07E9C133DA92" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:PlexDL.Player, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL" - "ScatterAssemblies" - { - "_3DE61B83814A80F0BBDA07E9C133DA92" - { - "Name" = "8:PlexDL.Player.dll" - "Attributes" = "3:512" - } - } - "SourcePath" = "8:PlexDL.Player.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_E3289F50E7E54BFCAFBE5D075275C51F" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_3DF9DC82DB0E3FF8BB16ECF358542E7B" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Markdig, Version=0.20.0.0, Culture=neutral, processorArchitecture=MSIL" - "ScatterAssemblies" - { - "_3DF9DC82DB0E3FF8BB16ECF358542E7B" - { - "Name" = "8:Markdig.dll" - "Attributes" = "3:512" - } - } - "SourcePath" = "8:Markdig.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_E3289F50E7E54BFCAFBE5D075275C51F" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_4A936AFEE6353DE9FAF47CC37D85FA4F" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:System.Memory, Version=4.0.1.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL" - "ScatterAssemblies" - { - "_4A936AFEE6353DE9FAF47CC37D85FA4F" - { - "Name" = "8:System.Memory.dll" - "Attributes" = "3:512" - } - } - "SourcePath" = "8:System.Memory.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_E3289F50E7E54BFCAFBE5D075275C51F" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_4E7C879F485E01532E5484312D93A550" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:System.Net.Http, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" - "ScatterAssemblies" - { - "_4E7C879F485E01532E5484312D93A550" - { - "Name" = "8:System.Net.Http.dll" - "Attributes" = "3:512" - } - } - "SourcePath" = "8:System.Net.Http.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_E3289F50E7E54BFCAFBE5D075275C51F" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_5440A6AF800EB689525D31CC687FC288" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:System.Runtime.CompilerServices.Unsafe, Version=4.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" - "ScatterAssemblies" - { - "_5440A6AF800EB689525D31CC687FC288" - { - "Name" = "8:System.Runtime.CompilerServices.Unsafe.dll" - "Attributes" = "3:512" - } - } - "SourcePath" = "8:System.Runtime.CompilerServices.Unsafe.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_E3289F50E7E54BFCAFBE5D075275C51F" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_606208B6A4CFE8B06D85AA36CA6FD48F" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:inet, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL" - "ScatterAssemblies" - { - "_606208B6A4CFE8B06D85AA36CA6FD48F" - { - "Name" = "8:inet.dll" - "Attributes" = "3:512" - } - } - "SourcePath" = "8:inet.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_E3289F50E7E54BFCAFBE5D075275C51F" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_77A65FFB2D85C5589F5B1382D1A936AF" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:TRUE" - "AssemblyAsmDisplayName" = "8:System.Diagnostics.Tracing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" - "ScatterAssemblies" - { - "_77A65FFB2D85C5589F5B1382D1A936AF" - { - "Name" = "8:System.Diagnostics.Tracing.dll" - "Attributes" = "3:512" - } - } - "SourcePath" = "8:System.Diagnostics.Tracing.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_E3289F50E7E54BFCAFBE5D075275C51F" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_84F710332A37B146B55A83484BE3BE19" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:libbrhscgui, Version=1.0.7261.35271, Culture=neutral, processorArchitecture=MSIL" - "ScatterAssemblies" - { - "_84F710332A37B146B55A83484BE3BE19" - { - "Name" = "8:libbrhscgui.dll" - "Attributes" = "3:512" - } - } - "SourcePath" = "8:libbrhscgui.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_E3289F50E7E54BFCAFBE5D075275C51F" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_8A0029CDC47C4C3DA8BE4734737C42EC" - { - "SourcePath" = "8:..\\PlexDL\\Resources\\baseline_cloud_download_black_48dp.ico" - "TargetName" = "8:baseline_cloud_download_black_48dp.ico" - "Tag" = "8:" - "Folder" = "8:_E3289F50E7E54BFCAFBE5D075275C51F" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_8B39E1E26CD62B3B4CB8939BE14D1C1D" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:PlexDL.PlexAPI, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL" - "ScatterAssemblies" - { - "_8B39E1E26CD62B3B4CB8939BE14D1C1D" - { - "Name" = "8:PlexDL.PlexAPI.dll" - "Attributes" = "3:512" - } - } - "SourcePath" = "8:PlexDL.PlexAPI.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_E3289F50E7E54BFCAFBE5D075275C51F" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_8E1BA84916C02AFD940243CD8E4FC8D1" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Markdig, Version=0.20.0.0, Culture=neutral, processorArchitecture=MSIL" - "ScatterAssemblies" - { - "_8E1BA84916C02AFD940243CD8E4FC8D1" - { - "Name" = "8:Markdig.dll" - "Attributes" = "3:512" - } - } - "SourcePath" = "8:Markdig.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_E3289F50E7E54BFCAFBE5D075275C51F" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_91FE5DC7699D574D355070837037CCB8" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:TRUE" - "AssemblyAsmDisplayName" = "8:System.IO.Compression, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL" - "ScatterAssemblies" - { - "_91FE5DC7699D574D355070837037CCB8" - { - "Name" = "8:System.IO.Compression.dll" - "Attributes" = "3:512" - } - } - "SourcePath" = "8:System.IO.Compression.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_E3289F50E7E54BFCAFBE5D075275C51F" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_AABB3A9E41CBACA7128C222FB5D8B013" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:PlexDL.Animation, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL" - "ScatterAssemblies" - { - "_AABB3A9E41CBACA7128C222FB5D8B013" - { - "Name" = "8:PlexDL.Animation.dll" - "Attributes" = "3:512" - } - } - "SourcePath" = "8:PlexDL.Animation.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_E3289F50E7E54BFCAFBE5D075275C51F" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_AF29618318B1DB0317BABFE7259DC4CC" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:TRUE" - "AssemblyAsmDisplayName" = "8:System.IO.Compression.FileSystem, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL" - "ScatterAssemblies" - { - "_AF29618318B1DB0317BABFE7259DC4CC" - { - "Name" = "8:System.IO.Compression.FileSystem.dll" - "Attributes" = "3:512" - } - } - "SourcePath" = "8:System.IO.Compression.FileSystem.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_E3289F50E7E54BFCAFBE5D075275C51F" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_BA6E00E66E5B767D4EBC320419011E34" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:RestSharp, Version=106.11.4.0, Culture=neutral, PublicKeyToken=598062e77f915f75, processorArchitecture=MSIL" - "ScatterAssemblies" - { - "_BA6E00E66E5B767D4EBC320419011E34" - { - "Name" = "8:RestSharp.dll" - "Attributes" = "3:512" - } - } - "SourcePath" = "8:RestSharp.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_E3289F50E7E54BFCAFBE5D075275C51F" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_C0A4C421B094EB92C83656418278016B" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:System.Windows, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" - "ScatterAssemblies" - { - "_C0A4C421B094EB92C83656418278016B" - { - "Name" = "8:System.Windows.dll" - "Attributes" = "3:512" - } - } - "SourcePath" = "8:System.Windows.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_E3289F50E7E54BFCAFBE5D075275C51F" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_C2C7891E5F2D6F5F922B2ECA8C0B5481" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:TRUE" - "AssemblyAsmDisplayName" = "8:System.Net.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" - "ScatterAssemblies" - { - "_C2C7891E5F2D6F5F922B2ECA8C0B5481" - { - "Name" = "8:System.Net.Http.dll" - "Attributes" = "3:512" - } - } - "SourcePath" = "8:System.Net.Http.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_E3289F50E7E54BFCAFBE5D075275C51F" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_C9BE0F2FB840234FB39AE73364672062" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:System.Buffers, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL" - "ScatterAssemblies" - { - "_C9BE0F2FB840234FB39AE73364672062" - { - "Name" = "8:System.Buffers.dll" - "Attributes" = "3:512" - } - } - "SourcePath" = "8:System.Buffers.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_E3289F50E7E54BFCAFBE5D075275C51F" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_CC95A3B0485805878E3D092CA05136F6" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:LogDel, Version=1.0.7483.244, Culture=neutral, processorArchitecture=MSIL" - "ScatterAssemblies" - { - "_CC95A3B0485805878E3D092CA05136F6" - { - "Name" = "8:LogDel.dll" - "Attributes" = "3:512" - } - } - "SourcePath" = "8:LogDel.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_E3289F50E7E54BFCAFBE5D075275C51F" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_D8895C4D1BF9DC9C0890B0A844332F78" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:PlexDL.Animation, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL" - "ScatterAssemblies" - { - "_D8895C4D1BF9DC9C0890B0A844332F78" - { - "Name" = "8:PlexDL.Animation.dll" - "Attributes" = "3:512" - } - } - "SourcePath" = "8:PlexDL.Animation.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_E3289F50E7E54BFCAFBE5D075275C51F" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_D88C6F9C0E96EE89456E06F3B1119F22" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:PlexDL.Animation, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL" - "ScatterAssemblies" - { - "_D88C6F9C0E96EE89456E06F3B1119F22" - { - "Name" = "8:PlexDL.Animation.dll" - "Attributes" = "3:512" - } - } - "SourcePath" = "8:PlexDL.Animation.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_E3289F50E7E54BFCAFBE5D075275C51F" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_E394DA2B3CE7B35879615FB13C5A4AF8" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:PlexDL.Common.Components, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL" - "ScatterAssemblies" - { - "_E394DA2B3CE7B35879615FB13C5A4AF8" - { - "Name" = "8:PlexDL.Common.Components.dll" - "Attributes" = "3:512" - } - } - "SourcePath" = "8:PlexDL.Common.Components.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_E3289F50E7E54BFCAFBE5D075275C51F" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_E3CDB02F29C0CFC27294FA7CF44453BD" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL" - "ScatterAssemblies" - { - "_E3CDB02F29C0CFC27294FA7CF44453BD" - { - "Name" = "8:Newtonsoft.Json.dll" - "Attributes" = "3:512" - } - } - "SourcePath" = "8:Newtonsoft.Json.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_E3289F50E7E54BFCAFBE5D075275C51F" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - } - "FileType" - { - "{5EB83D71-FA18-4901-BE56-DE22E13CC478}:_7087453D479B4F87904885777E88EB87" - { - "Name" = "8:PlexMovie File" - "Description" = "8:" - "Extensions" = "8:pmxml" - "MIME" = "8:" - "Icon" = "8:_8A0029CDC47C4C3DA8BE4734737C42EC" - "IconIndex" = "3:0" - "Command" - { - } - "Verbs" - { - "{95C0C507-CBF0-42B8-B119-07219E384A4A}:_F8FA2019784445BB8D17C0072ABBAE11" - { - "Command" = "8:&Open" - "Verb" = "8:open" - "Arguments" = "8:\"%1\"" - "Order" = "3:0" - } - } - } - } - "Folder" - { - "{1525181F-901A-416C-8A58-119130FE478E}:_4BD6C877BC704C5787AEBC0FE9E6F14C" - { - "Name" = "8:#1916" - "AlwaysCreate" = "11:FALSE" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Property" = "8:DesktopFolder" - "Folders" - { - } - } - "{3C67513D-01DD-4637-8A68-80971EB9504F}:_E3289F50E7E54BFCAFBE5D075275C51F" - { - "DefaultLocation" = "8:[ProgramFilesFolder][Manufacturer]\\[ProductName]" - "Name" = "8:#1925" - "AlwaysCreate" = "11:FALSE" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Property" = "8:TARGETDIR" - "Folders" - { - } - } - "{1525181F-901A-416C-8A58-119130FE478E}:_FDC6A388C6D04F239D44740E142D2E02" - { - "Name" = "8:#1919" - "AlwaysCreate" = "11:FALSE" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Property" = "8:ProgramMenuFolder" - "Folders" - { - } - } - } - "LaunchCondition" - { - } - "Locator" - { - } - "MsiBootstrapper" - { - "LangId" = "3:1033" - "RequiresElevation" = "11:FALSE" - } - "Product" - { - "Name" = "8:Microsoft Visual Studio" - "ProductName" = "8:PlexDL" - "ProductCode" = "8:{5D9D7D1B-E734-4A5A-802A-F1F62EAD8DBF}" - "PackageCode" = "8:{49825A8C-1662-418D-8CA2-33A906292642}" - "UpgradeCode" = "8:{A2E130B4-8AAB-4E7B-9778-EA651E9B45FC}" - "AspNetVersion" = "8:2.0.50727.0" - "RestartWWWService" = "11:FALSE" - "RemovePreviousVersions" = "11:TRUE" - "DetectNewerInstalledVersion" = "11:TRUE" - "InstallAllUsers" = "11:TRUE" - "ProductVersion" = "8:1.0.0" - "Manufacturer" = "8:BRH Media" - "ARPHELPTELEPHONE" = "8:" - "ARPHELPLINK" = "8:" - "Title" = "8:PlexDL Installer" - "Subject" = "8:" - "ARPCONTACT" = "8:BRH Media" - "Keywords" = "8:" - "ARPCOMMENTS" = "8:" - "ARPURLINFOABOUT" = "8:" - "ARPPRODUCTICON" = "8:_8A0029CDC47C4C3DA8BE4734737C42EC" - "ARPIconIndex" = "3:0" - "SearchPath" = "8:" - "UseSystemSearchPath" = "11:TRUE" - "TargetPlatform" = "3:0" - "PreBuildEvent" = "8:" - "PostBuildEvent" = "8:" - "RunPostBuildEvent" = "3:0" - } - "Registry" - { - "HKLM" - { - "Keys" - { - "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_0600E782FA3548838781F77D6D21F160" - { - "Name" = "8:Software" - "Condition" = "8:" - "AlwaysCreate" = "11:FALSE" - "DeleteAtUninstall" = "11:FALSE" - "Transitive" = "11:FALSE" - "Keys" - { - "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_A83D3BF2812B49E29A3292045A11078B" - { - "Name" = "8:[Manufacturer]" - "Condition" = "8:" - "AlwaysCreate" = "11:FALSE" - "DeleteAtUninstall" = "11:FALSE" - "Transitive" = "11:FALSE" - "Keys" - { - } - "Values" - { - } - } - } - "Values" - { - } - } - } - } - "HKCU" - { - "Keys" - { - "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_FF954E9D1A684A0BAF3BD0A5078446F7" - { - "Name" = "8:Software" - "Condition" = "8:" - "AlwaysCreate" = "11:FALSE" - "DeleteAtUninstall" = "11:FALSE" - "Transitive" = "11:FALSE" - "Keys" - { - "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_4488FE34A40447F6A7750AF7305C8FF9" - { - "Name" = "8:[Manufacturer]" - "Condition" = "8:" - "AlwaysCreate" = "11:FALSE" - "DeleteAtUninstall" = "11:FALSE" - "Transitive" = "11:FALSE" - "Keys" - { - } - "Values" - { - } - } - } - "Values" - { - } - } - } - } - "HKCR" - { - "Keys" - { - } - } - "HKU" - { - "Keys" - { - } - } - "HKPU" - { - "Keys" - { - } - } - } - "Sequences" - { - } - "Shortcut" - { - } - "UserInterface" - { - "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_1DB312B298CC43CB94FF0E5C16BB4B4D" - { - "Name" = "8:#1902" - "Sequence" = "3:1" - "Attributes" = "3:3" - "Dialogs" - { - "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_CCE276A815F14A96A1881F52E46D51A5" - { - "Sequence" = "3:100" - "DisplayName" = "8:Finished" - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:FALSE" - "SourcePath" = "8:\\VsdFinishedDlg.wid" - "Properties" - { - "BannerBitmap" - { - "Name" = "8:BannerBitmap" - "DisplayName" = "8:#1001" - "Description" = "8:#1101" - "Type" = "3:8" - "ContextData" = "8:Bitmap" - "Attributes" = "3:4" - "Setting" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - "UpdateText" - { - "Name" = "8:UpdateText" - "DisplayName" = "8:#1058" - "Description" = "8:#1158" - "Type" = "3:15" - "ContextData" = "8:" - "Attributes" = "3:0" - "Setting" = "3:1" - "Value" = "8:#1258" - "DefaultValue" = "8:#1258" - "UsePlugInResources" = "11:TRUE" - } - } - } - } - } - "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_478AE9C4C9904DC797245FDF3D705D6E" - { - "Name" = "8:#1900" - "Sequence" = "3:1" - "Attributes" = "3:1" - "Dialogs" - { - "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_521BAECE33F945E8B1971C53141197AC" - { - "Sequence" = "3:100" - "DisplayName" = "8:Welcome" - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:FALSE" - "SourcePath" = "8:\\VsdWelcomeDlg.wid" - "Properties" - { - "BannerBitmap" - { - "Name" = "8:BannerBitmap" - "DisplayName" = "8:#1001" - "Description" = "8:#1101" - "Type" = "3:8" - "ContextData" = "8:Bitmap" - "Attributes" = "3:4" - "Setting" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - "CopyrightWarning" - { - "Name" = "8:CopyrightWarning" - "DisplayName" = "8:#1002" - "Description" = "8:#1102" - "Type" = "3:3" - "ContextData" = "8:" - "Attributes" = "3:0" - "Setting" = "3:1" - "Value" = "8:#1202" - "DefaultValue" = "8:#1202" - "UsePlugInResources" = "11:TRUE" - } - "Welcome" - { - "Name" = "8:Welcome" - "DisplayName" = "8:#1003" - "Description" = "8:#1103" - "Type" = "3:3" - "ContextData" = "8:" - "Attributes" = "3:0" - "Setting" = "3:1" - "Value" = "8:#1203" - "DefaultValue" = "8:#1203" - "UsePlugInResources" = "11:TRUE" - } - } - } - "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_837129BD5AD94B1B8E9882445702E06A" - { - "Sequence" = "3:300" - "DisplayName" = "8:Confirm Installation" - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:FALSE" - "SourcePath" = "8:\\VsdConfirmDlg.wid" - "Properties" - { - "BannerBitmap" - { - "Name" = "8:BannerBitmap" - "DisplayName" = "8:#1001" - "Description" = "8:#1101" - "Type" = "3:8" - "ContextData" = "8:Bitmap" - "Attributes" = "3:4" - "Setting" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - } - } - "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_B960225F0E084DB58D46AC32E6C3C64B" - { - "Sequence" = "3:200" - "DisplayName" = "8:Installation Folder" - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:FALSE" - "SourcePath" = "8:\\VsdFolderDlg.wid" - "Properties" - { - "BannerBitmap" - { - "Name" = "8:BannerBitmap" - "DisplayName" = "8:#1001" - "Description" = "8:#1101" - "Type" = "3:8" - "ContextData" = "8:Bitmap" - "Attributes" = "3:4" - "Setting" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - "InstallAllUsersVisible" - { - "Name" = "8:InstallAllUsersVisible" - "DisplayName" = "8:#1059" - "Description" = "8:#1159" - "Type" = "3:5" - "ContextData" = "8:1;True=1;False=0" - "Attributes" = "3:0" - "Setting" = "3:0" - "Value" = "3:1" - "DefaultValue" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - } - } - } - } - "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_727EB5F0B18F4F5CA70DAEDB37C9F8E9" - { - "Name" = "8:#1901" - "Sequence" = "3:1" - "Attributes" = "3:2" - "Dialogs" - { - "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_95BA8B8465F74EA69BDE33C73EBE1451" - { - "Sequence" = "3:100" - "DisplayName" = "8:Progress" - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:FALSE" - "SourcePath" = "8:\\VsdProgressDlg.wid" - "Properties" - { - "BannerBitmap" - { - "Name" = "8:BannerBitmap" - "DisplayName" = "8:#1001" - "Description" = "8:#1101" - "Type" = "3:8" - "ContextData" = "8:Bitmap" - "Attributes" = "3:4" - "Setting" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - "ShowProgress" - { - "Name" = "8:ShowProgress" - "DisplayName" = "8:#1009" - "Description" = "8:#1109" - "Type" = "3:5" - "ContextData" = "8:1;True=1;False=0" - "Attributes" = "3:0" - "Setting" = "3:0" - "Value" = "3:1" - "DefaultValue" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - } - } - } - } - "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_79BC839F27154D3BB8D06287842C6010" - { - "Name" = "8:#1901" - "Sequence" = "3:2" - "Attributes" = "3:2" - "Dialogs" - { - "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_E3184D8BEA1341B3A1E8A746D577951B" - { - "Sequence" = "3:100" - "DisplayName" = "8:Progress" - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:FALSE" - "SourcePath" = "8:\\VsdAdminProgressDlg.wid" - "Properties" - { - "BannerBitmap" - { - "Name" = "8:BannerBitmap" - "DisplayName" = "8:#1001" - "Description" = "8:#1101" - "Type" = "3:8" - "ContextData" = "8:Bitmap" - "Attributes" = "3:4" - "Setting" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - "ShowProgress" - { - "Name" = "8:ShowProgress" - "DisplayName" = "8:#1009" - "Description" = "8:#1109" - "Type" = "3:5" - "ContextData" = "8:1;True=1;False=0" - "Attributes" = "3:0" - "Setting" = "3:0" - "Value" = "3:1" - "DefaultValue" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - } - } - } - } - "{2479F3F5-0309-486D-8047-8187E2CE5BA0}:_7C566AB95EC0401CA6563E856B1B1EFC" - { - "UseDynamicProperties" = "11:FALSE" - "IsDependency" = "11:FALSE" - "SourcePath" = "8:\\VsdUserInterface.wim" - } - "{2479F3F5-0309-486D-8047-8187E2CE5BA0}:_9DB798277D4E442AA4BE062865D44588" - { - "UseDynamicProperties" = "11:FALSE" - "IsDependency" = "11:FALSE" - "SourcePath" = "8:\\VsdBasicDialogs.wim" - } - "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_B65A76ABF9504084BCDDE6B6F4D1B3E7" - { - "Name" = "8:#1902" - "Sequence" = "3:2" - "Attributes" = "3:3" - "Dialogs" - { - "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_4D020863EFE042B892CB16DF7995FEAC" - { - "Sequence" = "3:100" - "DisplayName" = "8:Finished" - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:FALSE" - "SourcePath" = "8:\\VsdAdminFinishedDlg.wid" - "Properties" - { - "BannerBitmap" - { - "Name" = "8:BannerBitmap" - "DisplayName" = "8:#1001" - "Description" = "8:#1101" - "Type" = "3:8" - "ContextData" = "8:Bitmap" - "Attributes" = "3:4" - "Setting" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - } - } - } - } - "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_F8A0497AF5A94134AC5861BDBB2CD047" - { - "Name" = "8:#1900" - "Sequence" = "3:2" - "Attributes" = "3:1" - "Dialogs" - { - "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_0A3B8C46C00B4081BBA9AC6D511846D0" - { - "Sequence" = "3:200" - "DisplayName" = "8:Installation Folder" - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:FALSE" - "SourcePath" = "8:\\VsdAdminFolderDlg.wid" - "Properties" - { - "BannerBitmap" - { - "Name" = "8:BannerBitmap" - "DisplayName" = "8:#1001" - "Description" = "8:#1101" - "Type" = "3:8" - "ContextData" = "8:Bitmap" - "Attributes" = "3:4" - "Setting" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - } - } - "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_2D9D41DF9F624E438D9343CDCB9E3175" - { - "Sequence" = "3:300" - "DisplayName" = "8:Confirm Installation" - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:FALSE" - "SourcePath" = "8:\\VsdAdminConfirmDlg.wid" - "Properties" - { - "BannerBitmap" - { - "Name" = "8:BannerBitmap" - "DisplayName" = "8:#1001" - "Description" = "8:#1101" - "Type" = "3:8" - "ContextData" = "8:Bitmap" - "Attributes" = "3:4" - "Setting" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - } - } - "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_BB5C8B26D00942CCA48F1E4DF865E13B" - { - "Sequence" = "3:100" - "DisplayName" = "8:Welcome" - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:FALSE" - "SourcePath" = "8:\\VsdAdminWelcomeDlg.wid" - "Properties" - { - "BannerBitmap" - { - "Name" = "8:BannerBitmap" - "DisplayName" = "8:#1001" - "Description" = "8:#1101" - "Type" = "3:8" - "ContextData" = "8:Bitmap" - "Attributes" = "3:4" - "Setting" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - "CopyrightWarning" - { - "Name" = "8:CopyrightWarning" - "DisplayName" = "8:#1002" - "Description" = "8:#1102" - "Type" = "3:3" - "ContextData" = "8:" - "Attributes" = "3:0" - "Setting" = "3:1" - "Value" = "8:#1202" - "DefaultValue" = "8:#1202" - "UsePlugInResources" = "11:TRUE" - } - "Welcome" - { - "Name" = "8:Welcome" - "DisplayName" = "8:#1003" - "Description" = "8:#1103" - "Type" = "3:3" - "ContextData" = "8:" - "Attributes" = "3:0" - "Setting" = "3:1" - "Value" = "8:#1203" - "DefaultValue" = "8:#1203" - "UsePlugInResources" = "11:TRUE" - } - } - } - } - } - } - "MergeModule" - { - } - "ProjectOutput" - { - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_0297F85466BF43089D8CED1F35F872E1" + "LaunchCondition" { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_E3289F50E7E54BFCAFBE5D075275C51F" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:Release|Any CPU" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{8D6702F9-0556-405A-B0DF-0E0DE79E49C7}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" + "{A06ECF26-33A3-4562-8140-9B0E340D4F24}:_47623B48FC0A495AA879B4EE47D082EC" { + "Name" = "8:.NET Framework" + "Message" = "8:[VSDNETMSG]" + "FrameworkVersion" = "8:.NETFramework,Version=v4.7.2" + "AllowLaterVersions" = "11:FALSE" + "InstallUrl" = "8:http://go.microsoft.com/fwlink/?LinkId=863262" } } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_146A908ED407477A98D4F58DA0ABA975" + } + "File" + { + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_223CD518FC6DF3B8B1A9028D59784582" { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_E3289F50E7E54BFCAFBE5D075275C51F" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:Release|Any CPU" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{6423075D-FB6A-4A21-B8C3-2BDB02D3E744}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" + "AssemblyRegister" = "3:1" + "AssemblyIsInGAC" = "11:FALSE" + "AssemblyAsmDisplayName" = "8:netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51" + "ScatterAssemblies" { + "_223CD518FC6DF3B8B1A9028D59784582" + { + "Name" = "8:netstandard.dll" + "Attributes" = "3:512" + } } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_1E9E6150974A46379989E0151B619D4B" - { - "SourcePath" = "8:" + "SourcePath" = "8:netstandard.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_E3289F50E7E54BFCAFBE5D075275C51F" @@ -2396,48 +280,23 @@ "PackageAs" = "3:1" "Register" = "3:1" "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" + "IsDependency" = "11:TRUE" "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:Release|Any CPU" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{765CCD3E-B3C3-4948-A3C3-824A94F9ADE8}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_228647397FA24F958CACB5396756932D" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_454353F7C022CBFFE799DE3FD505CC84" { - "SourcePath" = "8:..\\PlexDL.Common.Components\\obj\\Release\\PlexDL.Common.Components.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_E3289F50E7E54BFCAFBE5D075275C51F" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:Release|Any CPU" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{3C18FC31-D361-42FB-AE18-42FAACD4E419}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" + "AssemblyRegister" = "3:1" + "AssemblyIsInGAC" = "11:FALSE" + "AssemblyAsmDisplayName" = "8:System.IO.Compression.FileSystem, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" + "ScatterAssemblies" { + "_454353F7C022CBFFE799DE3FD505CC84" + { + "Name" = "8:System.IO.Compression.FileSystem.dll" + "Attributes" = "3:512" + } } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_2A01FEBD689E4058AC99C71EF9F78B49" - { - "SourcePath" = "8:..\\PlexDL.AltoHTTP\\obj\\Release\\PlexDL.AltoHTTP.dll" + "SourcePath" = "8:System.IO.Compression.FileSystem.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_E3289F50E7E54BFCAFBE5D075275C51F" @@ -2452,48 +311,23 @@ "PackageAs" = "3:1" "Register" = "3:1" "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" + "IsDependency" = "11:TRUE" "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:Release|Any CPU" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{765CCD3E-B3C3-4948-A3C3-824A94F9ADE8}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_2FC1FAD8288446A5BD0CEBD5BBC3DBF0" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_4AF7355DFAC8334E0C947B85EB9436B7" { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_E3289F50E7E54BFCAFBE5D075275C51F" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:Release|Any CPU" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{EAC25A53-6264-4FCA-A11F-D3E96BD51095}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" + "AssemblyRegister" = "3:1" + "AssemblyIsInGAC" = "11:FALSE" + "AssemblyAsmDisplayName" = "8:System.Runtime.CompilerServices.Unsafe, Version=4.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" + "ScatterAssemblies" { + "_4AF7355DFAC8334E0C947B85EB9436B7" + { + "Name" = "8:System.Runtime.CompilerServices.Unsafe.dll" + "Attributes" = "3:512" + } } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_40157104C6484B0385B33451CF8D6917" - { - "SourcePath" = "8:..\\GitHubUpdater\\obj\\Release\\GitHubUpdater.dll" + "SourcePath" = "8:System.Runtime.CompilerServices.Unsafe.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_E3289F50E7E54BFCAFBE5D075275C51F" @@ -2508,20 +342,23 @@ "PackageAs" = "3:1" "Register" = "3:1" "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" + "IsDependency" = "11:TRUE" "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:Release|Any CPU" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{9E90936D-F2B8-4AD6-940A-11178AE67082}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_4BFA65A67A62405D80FF2E8E802C21F4" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_4C96849C69782A0499CB5AEEB2BA72AC" { - "SourcePath" = "8:..\\PlexDL.Player\\obj\\Release\\PlexDL.Player.dll" + "AssemblyRegister" = "3:1" + "AssemblyIsInGAC" = "11:FALSE" + "AssemblyAsmDisplayName" = "8:GitHubUpdater, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL" + "ScatterAssemblies" + { + "_4C96849C69782A0499CB5AEEB2BA72AC" + { + "Name" = "8:GitHubUpdater.dll" + "Attributes" = "3:512" + } + } + "SourcePath" = "8:GitHubUpdater.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_E3289F50E7E54BFCAFBE5D075275C51F" @@ -2536,20 +373,23 @@ "PackageAs" = "3:1" "Register" = "3:1" "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" + "IsDependency" = "11:TRUE" "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:Release|Any CPU" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{8D6702F9-0556-405A-B0DF-0E0DE79E49C7}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_4CF721B566F343D8B223D4F7F310ED72" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_77A65FFB2D85C5589F5B1382D1A936AF" { - "SourcePath" = "8:..\\PlexDL\\obj\\Release\\PlexDL.exe" + "AssemblyRegister" = "3:1" + "AssemblyIsInGAC" = "11:TRUE" + "AssemblyAsmDisplayName" = "8:System.Diagnostics.Tracing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" + "ScatterAssemblies" + { + "_77A65FFB2D85C5589F5B1382D1A936AF" + { + "Name" = "8:System.Diagnostics.Tracing.dll" + "Attributes" = "3:512" + } + } + "SourcePath" = "8:System.Diagnostics.Tracing.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_E3289F50E7E54BFCAFBE5D075275C51F" @@ -2564,20 +404,23 @@ "PackageAs" = "3:1" "Register" = "3:1" "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" + "IsDependency" = "11:TRUE" "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:Release|Any CPU" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{EAC25A53-6264-4FCA-A11F-D3E96BD51095}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_4CFEADB816564F188BFB77BE2AE3EE44" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_8AB8DB74D590D9F7A7562D01BAAA989B" { - "SourcePath" = "8:" + "AssemblyRegister" = "3:1" + "AssemblyIsInGAC" = "11:FALSE" + "AssemblyAsmDisplayName" = "8:Markdig, Version=0.20.0.0, Culture=neutral, processorArchitecture=MSIL" + "ScatterAssemblies" + { + "_8AB8DB74D590D9F7A7562D01BAAA989B" + { + "Name" = "8:Markdig.dll" + "Attributes" = "3:512" + } + } + "SourcePath" = "8:Markdig.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_E3289F50E7E54BFCAFBE5D075275C51F" @@ -2592,20 +435,23 @@ "PackageAs" = "3:1" "Register" = "3:1" "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" + "IsDependency" = "11:TRUE" "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:Release|Any CPU" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{F983C455-7C57-469E-9152-9095F114D697}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_5420AABF5CB747EF928AE368DAF9083E" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_91FE5DC7699D574D355070837037CCB8" { - "SourcePath" = "8:..\\UIHelpers\\obj\\Release\\UIHelpers.dll" + "AssemblyRegister" = "3:1" + "AssemblyIsInGAC" = "11:TRUE" + "AssemblyAsmDisplayName" = "8:System.IO.Compression, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL" + "ScatterAssemblies" + { + "_91FE5DC7699D574D355070837037CCB8" + { + "Name" = "8:System.IO.Compression.dll" + "Attributes" = "3:512" + } + } + "SourcePath" = "8:System.IO.Compression.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_E3289F50E7E54BFCAFBE5D075275C51F" @@ -2620,20 +466,23 @@ "PackageAs" = "3:1" "Register" = "3:1" "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" + "IsDependency" = "11:TRUE" "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:Release|Any CPU" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{E3CE262B-B962-44FF-ABC0-5EBFB403D51D}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_5E97C056CADE4E7D9FEFD5F11CE371F0" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_C0A4C421B094EB92C83656418278016B" { - "SourcePath" = "8:" + "AssemblyRegister" = "3:1" + "AssemblyIsInGAC" = "11:FALSE" + "AssemblyAsmDisplayName" = "8:System.Windows, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" + "ScatterAssemblies" + { + "_C0A4C421B094EB92C83656418278016B" + { + "Name" = "8:System.Windows.dll" + "Attributes" = "3:512" + } + } + "SourcePath" = "8:System.Windows.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_E3289F50E7E54BFCAFBE5D075275C51F" @@ -2648,20 +497,23 @@ "PackageAs" = "3:1" "Register" = "3:1" "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" + "IsDependency" = "11:TRUE" "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:Release|Any CPU" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{9E90936D-F2B8-4AD6-940A-11178AE67082}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_67EB574A1DC044D98AAEB00CD9B824E2" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_C2C7891E5F2D6F5F922B2ECA8C0B5481" { - "SourcePath" = "8:" + "AssemblyRegister" = "3:1" + "AssemblyIsInGAC" = "11:TRUE" + "AssemblyAsmDisplayName" = "8:System.Net.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" + "ScatterAssemblies" + { + "_C2C7891E5F2D6F5F922B2ECA8C0B5481" + { + "Name" = "8:System.Net.Http.dll" + "Attributes" = "3:512" + } + } + "SourcePath" = "8:System.Net.Http.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_E3289F50E7E54BFCAFBE5D075275C51F" @@ -2676,20 +528,23 @@ "PackageAs" = "3:1" "Register" = "3:1" "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" + "IsDependency" = "11:TRUE" "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:Release|Any CPU" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{3C18FC31-D361-42FB-AE18-42FAACD4E419}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" + } + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_C5B5701BEBD8B69F019665F61394882E" + { + "AssemblyRegister" = "3:1" + "AssemblyIsInGAC" = "11:FALSE" + "AssemblyAsmDisplayName" = "8:System.Numerics.Vectors, Version=4.1.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" + "ScatterAssemblies" { + "_C5B5701BEBD8B69F019665F61394882E" + { + "Name" = "8:System.Numerics.Vectors.dll" + "Attributes" = "3:512" + } } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_78A4DD1BE1804C568A704486576E8566" - { - "SourcePath" = "8:..\\PlexDL.WaitWindow\\obj\\Release\\PlexDL.WaitWindow.dll" + "SourcePath" = "8:System.Numerics.Vectors.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_E3289F50E7E54BFCAFBE5D075275C51F" @@ -2704,20 +559,23 @@ "PackageAs" = "3:1" "Register" = "3:1" "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" + "IsDependency" = "11:TRUE" "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:Release|Any CPU" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{6D5D6FDD-9371-4EBB-8875-EEBE170A47CD}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_8BCA8CDEA35848C1A65192E44078F561" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_F71C4A1970FBB5DD143510A181631B5B" { - "SourcePath" = "8:" + "AssemblyRegister" = "3:1" + "AssemblyIsInGAC" = "11:FALSE" + "AssemblyAsmDisplayName" = "8:System.Memory, Version=4.0.1.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL" + "ScatterAssemblies" + { + "_F71C4A1970FBB5DD143510A181631B5B" + { + "Name" = "8:System.Memory.dll" + "Attributes" = "3:512" + } + } + "SourcePath" = "8:System.Memory.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_E3289F50E7E54BFCAFBE5D075275C51F" @@ -2732,20 +590,23 @@ "PackageAs" = "3:1" "Register" = "3:1" "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" + "IsDependency" = "11:TRUE" "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:Release|Any CPU" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{8D6702F9-0556-405A-B0DF-0E0DE79E49C7}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_9C0C138D6FFB4DDFB24A47CDD9939BD0" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_FBF0B57C243458ED5301963CABED7193" { - "SourcePath" = "8:..\\inet\\obj\\Release\\inet.dll" + "AssemblyRegister" = "3:1" + "AssemblyIsInGAC" = "11:FALSE" + "AssemblyAsmDisplayName" = "8:System.Buffers, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL" + "ScatterAssemblies" + { + "_FBF0B57C243458ED5301963CABED7193" + { + "Name" = "8:System.Buffers.dll" + "Attributes" = "3:512" + } + } + "SourcePath" = "8:System.Buffers.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_E3289F50E7E54BFCAFBE5D075275C51F" @@ -2760,216 +621,610 @@ "PackageAs" = "3:1" "Register" = "3:1" "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" + "IsDependency" = "11:TRUE" "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:Release|Any CPU" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{6423075D-FB6A-4A21-B8C3-2BDB02D3E744}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" + } + } + "FileType" + { + "{5EB83D71-FA18-4901-BE56-DE22E13CC478}:_7087453D479B4F87904885777E88EB87" + { + "Name" = "8:PlexMovie File" + "Description" = "8:PlexMovie File" + "Extensions" = "8:.pmxml" + "MIME" = "8:" + "Icon" = "8:" + "IconIndex" = "3:0" + "Command" + { + } + "Verbs" + { + "{95C0C507-CBF0-42B8-B119-07219E384A4A}:_F8FA2019784445BB8D17C0072ABBAE11" + { + "Command" = "8:&Open" + "Verb" = "8:open" + "Arguments" = "8:\"%1\"" + "Order" = "3:0" + } + } + } + } + "Folder" + { + "{1525181F-901A-416C-8A58-119130FE478E}:_4BD6C877BC704C5787AEBC0FE9E6F14C" + { + "Name" = "8:#1916" + "AlwaysCreate" = "11:FALSE" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Property" = "8:DesktopFolder" + "Folders" + { + } + } + "{3C67513D-01DD-4637-8A68-80971EB9504F}:_E3289F50E7E54BFCAFBE5D075275C51F" + { + "DefaultLocation" = "8:[ProgramFilesFolder][Manufacturer]\\[ProductName]" + "Name" = "8:#1925" + "AlwaysCreate" = "11:FALSE" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Property" = "8:TARGETDIR" + "Folders" + { + } + } + "{1525181F-901A-416C-8A58-119130FE478E}:_FDC6A388C6D04F239D44740E142D2E02" + { + "Name" = "8:#1919" + "AlwaysCreate" = "11:FALSE" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Property" = "8:ProgramMenuFolder" + "Folders" + { + } + } + } + "LaunchCondition" + { + } + "Locator" + { + } + "MsiBootstrapper" + { + "LangId" = "3:1033" + "RequiresElevation" = "11:FALSE" + } + "Product" + { + "Name" = "8:Microsoft Visual Studio" + "ProductName" = "8:PlexDL" + "ProductCode" = "8:{5D9D7D1B-E734-4A5A-802A-F1F62EAD8DBF}" + "PackageCode" = "8:{49825A8C-1662-418D-8CA2-33A906292642}" + "UpgradeCode" = "8:{A2E130B4-8AAB-4E7B-9778-EA651E9B45FC}" + "AspNetVersion" = "8:2.0.50727.0" + "RestartWWWService" = "11:FALSE" + "RemovePreviousVersions" = "11:TRUE" + "DetectNewerInstalledVersion" = "11:TRUE" + "InstallAllUsers" = "11:TRUE" + "ProductVersion" = "8:1.0.0" + "Manufacturer" = "8:BRH Media" + "ARPHELPTELEPHONE" = "8:" + "ARPHELPLINK" = "8:" + "Title" = "8:PlexDL Installer" + "Subject" = "8:" + "ARPCONTACT" = "8:BRH Media" + "Keywords" = "8:" + "ARPCOMMENTS" = "8:" + "ARPURLINFOABOUT" = "8:" + "ARPPRODUCTICON" = "8:" + "ARPIconIndex" = "3:0" + "SearchPath" = "8:" + "UseSystemSearchPath" = "11:TRUE" + "TargetPlatform" = "3:0" + "PreBuildEvent" = "8:" + "PostBuildEvent" = "8:" + "RunPostBuildEvent" = "3:0" + } + "Registry" + { + "HKLM" + { + "Keys" + { + "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_0600E782FA3548838781F77D6D21F160" + { + "Name" = "8:Software" + "Condition" = "8:" + "AlwaysCreate" = "11:FALSE" + "DeleteAtUninstall" = "11:FALSE" + "Transitive" = "11:FALSE" + "Keys" + { + "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_A83D3BF2812B49E29A3292045A11078B" + { + "Name" = "8:[Manufacturer]" + "Condition" = "8:" + "AlwaysCreate" = "11:FALSE" + "DeleteAtUninstall" = "11:FALSE" + "Transitive" = "11:FALSE" + "Keys" + { + } + "Values" + { + } + } + } + "Values" + { + } + } + } + } + "HKCU" + { + "Keys" + { + "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_FF954E9D1A684A0BAF3BD0A5078446F7" + { + "Name" = "8:Software" + "Condition" = "8:" + "AlwaysCreate" = "11:FALSE" + "DeleteAtUninstall" = "11:FALSE" + "Transitive" = "11:FALSE" + "Keys" + { + "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_4488FE34A40447F6A7750AF7305C8FF9" + { + "Name" = "8:[Manufacturer]" + "Condition" = "8:" + "AlwaysCreate" = "11:FALSE" + "DeleteAtUninstall" = "11:FALSE" + "Transitive" = "11:FALSE" + "Keys" + { + } + "Values" + { + } + } + } + "Values" + { + } + } + } + } + "HKCR" + { + "Keys" + { + } + } + "HKU" + { + "Keys" + { + } + } + "HKPU" + { + "Keys" + { + } + } + } + "Sequences" + { + } + "Shortcut" + { + } + "UserInterface" + { + "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_1DB312B298CC43CB94FF0E5C16BB4B4D" + { + "Name" = "8:#1902" + "Sequence" = "3:1" + "Attributes" = "3:3" + "Dialogs" { + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_CCE276A815F14A96A1881F52E46D51A5" + { + "Sequence" = "3:100" + "DisplayName" = "8:Finished" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdFinishedDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + "UpdateText" + { + "Name" = "8:UpdateText" + "DisplayName" = "8:#1058" + "Description" = "8:#1158" + "Type" = "3:15" + "ContextData" = "8:" + "Attributes" = "3:0" + "Setting" = "3:1" + "Value" = "8:#1258" + "DefaultValue" = "8:#1258" + "UsePlugInResources" = "11:TRUE" + } + } + } } } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_A5AC8CF6B684490CAF37F112246743A0" + "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_478AE9C4C9904DC797245FDF3D705D6E" { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_E3289F50E7E54BFCAFBE5D075275C51F" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:Release|Any CPU" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{E3CE262B-B962-44FF-ABC0-5EBFB403D51D}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" + "Name" = "8:#1900" + "Sequence" = "3:1" + "Attributes" = "3:1" + "Dialogs" { + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_521BAECE33F945E8B1971C53141197AC" + { + "Sequence" = "3:100" + "DisplayName" = "8:Welcome" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdWelcomeDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + "CopyrightWarning" + { + "Name" = "8:CopyrightWarning" + "DisplayName" = "8:#1002" + "Description" = "8:#1102" + "Type" = "3:3" + "ContextData" = "8:" + "Attributes" = "3:0" + "Setting" = "3:1" + "Value" = "8:#1202" + "DefaultValue" = "8:#1202" + "UsePlugInResources" = "11:TRUE" + } + "Welcome" + { + "Name" = "8:Welcome" + "DisplayName" = "8:#1003" + "Description" = "8:#1103" + "Type" = "3:3" + "ContextData" = "8:" + "Attributes" = "3:0" + "Setting" = "3:1" + "Value" = "8:#1203" + "DefaultValue" = "8:#1203" + "UsePlugInResources" = "11:TRUE" + } + } + } + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_837129BD5AD94B1B8E9882445702E06A" + { + "Sequence" = "3:300" + "DisplayName" = "8:Confirm Installation" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdConfirmDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_B960225F0E084DB58D46AC32E6C3C64B" + { + "Sequence" = "3:200" + "DisplayName" = "8:Installation Folder" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdFolderDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + "InstallAllUsersVisible" + { + "Name" = "8:InstallAllUsersVisible" + "DisplayName" = "8:#1059" + "Description" = "8:#1159" + "Type" = "3:5" + "ContextData" = "8:1;True=1;False=0" + "Attributes" = "3:0" + "Setting" = "3:0" + "Value" = "3:1" + "DefaultValue" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } } } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_B2EA21A7B34C48CC882584A163811475" + "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_727EB5F0B18F4F5CA70DAEDB37C9F8E9" { - "SourcePath" = "8:..\\LogDel\\obj\\Release\\LogDel.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_E3289F50E7E54BFCAFBE5D075275C51F" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:Release|Any CPU" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{F983C455-7C57-469E-9152-9095F114D697}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" + "Name" = "8:#1901" + "Sequence" = "3:1" + "Attributes" = "3:2" + "Dialogs" { + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_95BA8B8465F74EA69BDE33C73EBE1451" + { + "Sequence" = "3:100" + "DisplayName" = "8:Progress" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdProgressDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + "ShowProgress" + { + "Name" = "8:ShowProgress" + "DisplayName" = "8:#1009" + "Description" = "8:#1109" + "Type" = "3:5" + "ContextData" = "8:1;True=1;False=0" + "Attributes" = "3:0" + "Setting" = "3:0" + "Value" = "3:1" + "DefaultValue" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } } } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_BE74F758404644D6BE88FA0601B58F6A" + "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_79BC839F27154D3BB8D06287842C6010" { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_E3289F50E7E54BFCAFBE5D075275C51F" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:Release|Any CPU" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{94E9EAEA-BB7A-4834-B2AE-98AFCD68C8DB}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" + "Name" = "8:#1901" + "Sequence" = "3:2" + "Attributes" = "3:2" + "Dialogs" { + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_E3184D8BEA1341B3A1E8A746D577951B" + { + "Sequence" = "3:100" + "DisplayName" = "8:Progress" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdAdminProgressDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + "ShowProgress" + { + "Name" = "8:ShowProgress" + "DisplayName" = "8:#1009" + "Description" = "8:#1109" + "Type" = "3:5" + "ContextData" = "8:1;True=1;False=0" + "Attributes" = "3:0" + "Setting" = "3:0" + "Value" = "3:1" + "DefaultValue" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } } } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_C8AF3B49AEE94532850FBACA09905EA1" + "{2479F3F5-0309-486D-8047-8187E2CE5BA0}:_7C566AB95EC0401CA6563E856B1B1EFC" { - "SourcePath" = "8:..\\PlexDL.Animation\\obj\\Release\\PlexDL.Animation.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_E3289F50E7E54BFCAFBE5D075275C51F" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" + "UseDynamicProperties" = "11:FALSE" "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:Release|Any CPU" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{EF2E6FD4-9E55-458B-81A2-DF40FCB52D57}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } + "SourcePath" = "8:\\VsdUserInterface.wim" } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_D542903704194EF4A69113E098BCA13C" + "{2479F3F5-0309-486D-8047-8187E2CE5BA0}:_9DB798277D4E442AA4BE062865D44588" { - "SourcePath" = "8:..\\PlexDL.Player\\obj\\Release\\PlexDL.Player.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_E3289F50E7E54BFCAFBE5D075275C51F" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" + "UseDynamicProperties" = "11:FALSE" "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:Release|Any CPU" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{8D6702F9-0556-405A-B0DF-0E0DE79E49C7}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } + "SourcePath" = "8:\\VsdBasicDialogs.wim" } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_F5783A3D765245348B5E905D43A3A3D4" + "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_B65A76ABF9504084BCDDE6B6F4D1B3E7" { - "SourcePath" = "8:..\\PlexDL.PlexAPI\\obj\\Release\\PlexDL.PlexAPI.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_E3289F50E7E54BFCAFBE5D075275C51F" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:Release|Any CPU" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{94E9EAEA-BB7A-4834-B2AE-98AFCD68C8DB}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" + "Name" = "8:#1902" + "Sequence" = "3:2" + "Attributes" = "3:3" + "Dialogs" { + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_4D020863EFE042B892CB16DF7995FEAC" + { + "Sequence" = "3:100" + "DisplayName" = "8:Finished" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdAdminFinishedDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } } } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_F7FEE32E203E4564BFEC031E385B78C7" + "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_F8A0497AF5A94134AC5861BDBB2CD047" { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_E3289F50E7E54BFCAFBE5D075275C51F" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:Release|Any CPU" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{EF2E6FD4-9E55-458B-81A2-DF40FCB52D57}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" + "Name" = "8:#1900" + "Sequence" = "3:2" + "Attributes" = "3:1" + "Dialogs" { + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_0A3B8C46C00B4081BBA9AC6D511846D0" + { + "Sequence" = "3:200" + "DisplayName" = "8:Installation Folder" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdAdminFolderDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_2D9D41DF9F624E438D9343CDCB9E3175" + { + "Sequence" = "3:300" + "DisplayName" = "8:Confirm Installation" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdAdminConfirmDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_BB5C8B26D00942CCA48F1E4DF865E13B" + { + "Sequence" = "3:100" + "DisplayName" = "8:Welcome" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdAdminWelcomeDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + "CopyrightWarning" + { + "Name" = "8:CopyrightWarning" + "DisplayName" = "8:#1002" + "Description" = "8:#1102" + "Type" = "3:3" + "ContextData" = "8:" + "Attributes" = "3:0" + "Setting" = "3:1" + "Value" = "8:#1202" + "DefaultValue" = "8:#1202" + "UsePlugInResources" = "11:TRUE" + } + "Welcome" + { + "Name" = "8:Welcome" + "DisplayName" = "8:#1003" + "Description" = "8:#1103" + "Type" = "3:3" + "ContextData" = "8:" + "Attributes" = "3:0" + "Setting" = "3:1" + "Value" = "8:#1203" + "DefaultValue" = "8:#1203" + "UsePlugInResources" = "11:TRUE" + } + } + } } } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_FE7E4D3388704DC6BC7C8CA1A7EF000B" + } + "MergeModule" + { + } + "ProjectOutput" + { + "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_41D4C0EEA04A4401A3D1731F184F821E" { - "SourcePath" = "8:" + "SourcePath" = "8:..\\PlexDL\\obj\\Release\\PlexDL.exe" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_E3289F50E7E54BFCAFBE5D075275C51F" @@ -2988,8 +1243,8 @@ "IsolateTo" = "8:" "ProjectOutputGroupRegister" = "3:1" "OutputConfiguration" = "8:Release|Any CPU" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{6D5D6FDD-9371-4EBB-8875-EEBE170A47CD}" + "OutputGroupCanonicalName" = "8:Built" + "OutputProjectGuid" = "8:{EAC25A53-6264-4FCA-A11F-D3E96BD51095}" "ShowKeyOutput" = "11:TRUE" "ExcludeFilters" { diff --git a/PlexDL.PlexAPI.LoginHandler/Auth/PlexPins.cs b/PlexDL.PlexAPI.LoginHandler/Auth/PlexPins.cs new file mode 100644 index 0000000..24580cd --- /dev/null +++ b/PlexDL.PlexAPI.LoginHandler/Auth/PlexPins.cs @@ -0,0 +1,146 @@ +// +// +// To parse this JSON data, add NuGet 'Newtonsoft.Json' then do: +// +// using PlexDL.PlexAPI.Auth; +// +// var plexPins = PlexPins.FromJson(jsonString); + +namespace PlexDL.PlexAPI.LoginHandler.Auth +{ + using System; + + using System.Globalization; + using Newtonsoft.Json; + using Newtonsoft.Json.Converters; + using UIHelpers; + + public partial class PlexPins + { + public static PlexPins NewPlexAuthPin() + { + var j = Get.DownloadJson(Endpoints.PlexPinsEndpoint,RestSharp.Method.POST); + return FromJson(j); + } + public PlexPins FromPinEndpoint() + { + var j = Get.DownloadJson(PinEndpointUrl); + return FromJson(j); + } + + public string PinEndpointUrl => $"https://plex.tv/api/v2/pins/{Id}"; + public string LoginInterfaceUrl => $"https://app.plex.tv/auth/#!?clientID={PlexDefs.ClientID}&context[device][version]=Plex OAuth&context[device][model]=Plex OAuth&code={Code}&context[device][product]=Plex Web"; + + [JsonProperty("id")] + public long Id { get; set; } + + [JsonProperty("code")] + public string Code { get; set; } + + [JsonProperty("product")] + public string Product { get; set; } + + [JsonProperty("trusted")] + public bool Trusted { get; set; } + + [JsonProperty("clientIdentifier")] + public string ClientIdentifier { get; set; } + + [JsonProperty("location")] + public Location Location { get; set; } + + [JsonProperty("expiresIn")] + public long ExpiresIn { get; set; } + + [JsonProperty("createdAt")] + public DateTimeOffset CreatedAt { get; set; } + + [JsonProperty("expiresAt")] + public DateTimeOffset ExpiresAt { get; set; } + + [JsonProperty("authToken")] + public string AuthToken { get; set; } + + [JsonProperty("newRegistration")] + public object NewRegistration { get; set; } + } + + public partial class Location + { + [JsonProperty("code")] + public string Code { get; set; } + + [JsonProperty("country")] + public string Country { get; set; } + + [JsonProperty("city")] + public string City { get; set; } + + [JsonProperty("time_zone")] + public string TimeZone { get; set; } + + [JsonProperty("postal_code")] + [JsonConverter(typeof(ParseStringConverter))] + public long PostalCode { get; set; } + + [JsonProperty("subdivisions")] + public string Subdivisions { get; set; } + + [JsonProperty("coordinates")] + public string Coordinates { get; set; } + } + + public partial class PlexPins + { + public static PlexPins FromJson(string json) => JsonConvert.DeserializeObject(json, Converter.Settings); + } + + public static class Serialize + { + public static string ToJson(this PlexPins self) => JsonConvert.SerializeObject(self, Converter.Settings); + } + + internal static class Converter + { + public static readonly JsonSerializerSettings Settings = new JsonSerializerSettings + { + MetadataPropertyHandling = MetadataPropertyHandling.Ignore, + DateParseHandling = DateParseHandling.None, + Converters = + { + new IsoDateTimeConverter { DateTimeStyles = DateTimeStyles.AssumeUniversal } + }, + }; + } + + internal class ParseStringConverter : JsonConverter + { + public override bool CanConvert(Type t) => t == typeof(long) || t == typeof(long?); + + public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer) + { + if (reader.TokenType == JsonToken.Null) return null; + var value = serializer.Deserialize(reader); + long l; + if (Int64.TryParse(value, out l)) + { + return l; + } + throw new Exception("Cannot unmarshal type long"); + } + + public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer) + { + if (untypedValue == null) + { + serializer.Serialize(writer, null); + return; + } + var value = (long)untypedValue; + serializer.Serialize(writer, value.ToString()); + return; + } + + public static readonly ParseStringConverter Singleton = new ParseStringConverter(); + } +} diff --git a/PlexDL.PlexAPI.LoginHandler/AuthRoutine.cs b/PlexDL.PlexAPI.LoginHandler/AuthRoutine.cs new file mode 100644 index 0000000..9ccc549 --- /dev/null +++ b/PlexDL.PlexAPI.LoginHandler/AuthRoutine.cs @@ -0,0 +1,55 @@ +using PlexDL.PlexAPI.LoginHandler.Auth; +using PlexDL.WaitWindow; +using System.Windows.Forms; + +namespace PlexDL.PlexAPI.LoginHandler +{ + public static class AuthRoutine + { + public static string GetAuthToken() + { + var stored = TokenManager.StoredToken(); + + if (string.IsNullOrEmpty(stored)) + { + //request a new Auth ticket + var init = NewInit(); + + using (var frm = new LoginWindow()) + { + frm.PlexRequestPin = init; + if (frm.ShowDialog() == DialogResult.OK) + { + if (frm.Success) + { + if (frm.Result != null) + { + var t = frm.Result.AuthToken; + TokenManager.SaveToken(t); + return t; + } + else + return null; + } + else + return null; + } + else + return null; + } + } + else + return stored; + } + + private static PlexPins NewInit() + { + return (PlexPins)WaitWindow.WaitWindow.Show(NewInit_Callback, @"Talking to Plex.tv"); + } + + private static void NewInit_Callback(object sender, WaitWindowEventArgs e) + { + e.Result = PlexPins.NewPlexAuthPin(); + } + } +} \ No newline at end of file diff --git a/PlexDL.PlexAPI.LoginHandler/Endpoints.cs b/PlexDL.PlexAPI.LoginHandler/Endpoints.cs new file mode 100644 index 0000000..9ca188f --- /dev/null +++ b/PlexDL.PlexAPI.LoginHandler/Endpoints.cs @@ -0,0 +1,7 @@ +namespace PlexDL.PlexAPI.LoginHandler +{ + public static class Endpoints + { + public static string PlexPinsEndpoint { get; set; } = @"https://plex.tv/api/v2/pins?strong=true"; + } +} \ No newline at end of file diff --git a/PlexDL.PlexAPI.LoginHandler/Get.cs b/PlexDL.PlexAPI.LoginHandler/Get.cs new file mode 100644 index 0000000..ffe7116 --- /dev/null +++ b/PlexDL.PlexAPI.LoginHandler/Get.cs @@ -0,0 +1,24 @@ +using PlexDL.PlexAPI.LoginHandler; +using RestSharp; + +namespace PlexDL.PlexAPI.LoginHandler +{ + public static class Get + { + public static string DownloadJson(string url, Method method = Method.GET) + { + var client = new RestClient(url); + client.Timeout = -1; + var request = new RestRequest(method); + request.AddHeader("Accept", "application/json"); + request.AddHeader("X-Plex-Product", PlexDefs.Product); + request.AddHeader("X-Plex-Version", PlexDefs.Version); + request.AddHeader("X-Plex-Client-Identifier", PlexDefs.ClientID); + request.AddHeader("X-Plex-Model", PlexDefs.Model); + IRestResponse response = client.Execute(request); + + // if string with JSON data is not empty, deserialize it to class and return its instance + return !string.IsNullOrEmpty(response.Content) ? response.Content : string.Empty; + } + } +} \ No newline at end of file diff --git a/PlexDL.PlexAPI.LoginHandler/LoginWindow.Designer.cs b/PlexDL.PlexAPI.LoginHandler/LoginWindow.Designer.cs new file mode 100644 index 0000000..575c364 --- /dev/null +++ b/PlexDL.PlexAPI.LoginHandler/LoginWindow.Designer.cs @@ -0,0 +1,130 @@ +namespace PlexDL.PlexAPI.LoginHandler +{ + partial class LoginWindow + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(LoginWindow)); + this.pbMain = new PlexDL.Common.Components.CircularProgressBar(); + this.lblInstructions = new System.Windows.Forms.Label(); + this.btnOK = new System.Windows.Forms.Button(); + this.tmrDotChange = new System.Windows.Forms.Timer(this.components); + this.SuspendLayout(); + // + // pbMain + // + this.pbMain.AnimationFunction = PlexDL.Animation.WinFormAnimation.KnownAnimationFunctions.Liner; + this.pbMain.AnimationSpeed = 500; + this.pbMain.BackColor = System.Drawing.Color.Transparent; + this.pbMain.Font = new System.Drawing.Font("Microsoft Sans Serif", 72F, System.Drawing.FontStyle.Bold); + this.pbMain.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.pbMain.InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224))))); + this.pbMain.InnerMargin = 2; + this.pbMain.InnerWidth = -1; + this.pbMain.Location = new System.Drawing.Point(12, 12); + this.pbMain.MarqueeAnimationSpeed = 2000; + this.pbMain.Name = "pbMain"; + this.pbMain.OuterColor = System.Drawing.Color.Gray; + this.pbMain.OuterMargin = -25; + this.pbMain.OuterWidth = 26; + this.pbMain.ProgressColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(128)))), ((int)(((byte)(0))))); + this.pbMain.ProgressWidth = 25; + this.pbMain.SecondaryFont = new System.Drawing.Font("Microsoft Sans Serif", 36F); + this.pbMain.Size = new System.Drawing.Size(200, 200); + this.pbMain.StartAngle = 270; + this.pbMain.SubscriptColor = System.Drawing.Color.FromArgb(((int)(((byte)(166)))), ((int)(((byte)(166)))), ((int)(((byte)(166))))); + this.pbMain.SubscriptMargin = new System.Windows.Forms.Padding(10, -35, 0, 0); + this.pbMain.SubscriptText = ""; + this.pbMain.SuperscriptColor = System.Drawing.Color.FromArgb(((int)(((byte)(166)))), ((int)(((byte)(166)))), ((int)(((byte)(166))))); + this.pbMain.SuperscriptMargin = new System.Windows.Forms.Padding(10, 35, 0, 0); + this.pbMain.SuperscriptText = ""; + this.pbMain.TabIndex = 0; + this.pbMain.TextMargin = new System.Windows.Forms.Padding(8, 8, 0, 0); + this.pbMain.Value = 68; + // + // lblInstructions + // + this.lblInstructions.AutoSize = true; + this.lblInstructions.Font = new System.Drawing.Font("Microsoft Sans Serif", 21.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lblInstructions.ForeColor = System.Drawing.Color.Gray; + this.lblInstructions.Location = new System.Drawing.Point(235, 12); + this.lblInstructions.Name = "lblInstructions"; + this.lblInstructions.Size = new System.Drawing.Size(315, 99); + this.lblInstructions.TabIndex = 1; + this.lblInstructions.Text = "Press \'OK\' once you\'ve\r\nlogged in with your\r\nbrowser"; + // + // btnOK + // + this.btnOK.BackColor = System.Drawing.Color.Gray; + this.btnOK.FlatAppearance.BorderSize = 0; + this.btnOK.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.btnOK.Font = new System.Drawing.Font("Microsoft Sans Serif", 20.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.btnOK.ForeColor = System.Drawing.Color.White; + this.btnOK.Location = new System.Drawing.Point(241, 141); + this.btnOK.Name = "btnOK"; + this.btnOK.Size = new System.Drawing.Size(315, 48); + this.btnOK.TabIndex = 2; + this.btnOK.Text = "OK"; + this.btnOK.UseVisualStyleBackColor = false; + this.btnOK.Click += new System.EventHandler(this.BtnOK_Click); + // + // tmrDotChange + // + this.tmrDotChange.Interval = 200; + this.tmrDotChange.Tick += new System.EventHandler(this.TmrDotChange_Tick); + // + // LoginWindow + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(578, 225); + this.Controls.Add(this.btnOK); + this.Controls.Add(this.lblInstructions); + this.Controls.Add(this.pbMain); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "LoginWindow"; + this.ShowIcon = false; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Plex.tv Authentication"; + this.Load += new System.EventHandler(this.LoginWindow_Load); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private Common.Components.CircularProgressBar pbMain; + private System.Windows.Forms.Label lblInstructions; + private System.Windows.Forms.Button btnOK; + private System.Windows.Forms.Timer tmrDotChange; + } +} \ No newline at end of file diff --git a/PlexDL.PlexAPI.LoginHandler/LoginWindow.cs b/PlexDL.PlexAPI.LoginHandler/LoginWindow.cs new file mode 100644 index 0000000..60e232a --- /dev/null +++ b/PlexDL.PlexAPI.LoginHandler/LoginWindow.cs @@ -0,0 +1,78 @@ +using PlexDL.PlexAPI.LoginHandler.Auth; +using System; +using System.Diagnostics; +using System.Windows.Forms; +using UIHelpers; + +namespace PlexDL.PlexAPI.LoginHandler +{ + public partial class LoginWindow : Form + { + public PlexPins PlexRequestPin { get; set; } = null; + + public bool Success { get; set; } = false; + + public PlexPins Result { get; set; } = null; + + public string ChangeToBrowser = @"Press 'OK' once you've +logged in with your +browser"; + + public string TalkingToPlex = @"Talking to Plex.tv"; + + public LoginWindow() + { + InitializeComponent(); + } + + private void TmrDotChange_Tick(object sender, EventArgs e) + { + var dots = pbMain.Text; + var len = dots.Length; + var lim = 3; + if (len < lim) + { + dots += '.'; + } + else + { + dots = ""; + } + pbMain.Text = dots; + } + + private void LoginWindow_Load(object sender, EventArgs e) + { + tmrDotChange.Start(); + var endp = PlexRequestPin.LoginInterfaceUrl; + //show in default browser + Process.Start(endp); + } + + private void BtnOK_Click(object sender, EventArgs e) + { + try + { + //change UI accordingly + lblInstructions.Text = TalkingToPlex; + + //try and grab the new token + var newPin = PlexRequestPin?.FromPinEndpoint(); + + //it's only successful if a token was actually provided + if (newPin != null) + Success = !string.IsNullOrEmpty(newPin.AuthToken); + + //apply the result + Result = newPin; + + DialogResult = DialogResult.OK; + Close(); + } + catch (Exception ex) + { + UIMessages.Error($"An error occured whilst logging into Plex.tv:\n\n{ex}"); + } + } + } +} \ No newline at end of file diff --git a/PlexDL/UI/PlexLogin.resx b/PlexDL.PlexAPI.LoginHandler/LoginWindow.resx similarity index 99% rename from PlexDL/UI/PlexLogin.resx rename to PlexDL.PlexAPI.LoginHandler/LoginWindow.resx index 0fbccc7..deabf87 100644 --- a/PlexDL/UI/PlexLogin.resx +++ b/PlexDL.PlexAPI.LoginHandler/LoginWindow.resx @@ -117,6 +117,9 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 17, 17 + diff --git a/PlexDL.PlexAPI.LoginHandler/PlexDL.PlexAPI.LoginHandler.csproj b/PlexDL.PlexAPI.LoginHandler/PlexDL.PlexAPI.LoginHandler.csproj new file mode 100644 index 0000000..f05712b --- /dev/null +++ b/PlexDL.PlexAPI.LoginHandler/PlexDL.PlexAPI.LoginHandler.csproj @@ -0,0 +1,94 @@ + + + + + Debug + AnyCPU + {F40A5D3C-078C-44A6-B6CF-53FF7B9C89DF} + Library + Properties + PlexDL.PlexAPI.LoginHandler + PlexDL.PlexAPI.LoginHandler + v4.7.2 + 512 + true + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll + + + ..\packages\RestSharp.106.11.4\lib\net452\RestSharp.dll + + + + + + + + + + + + + + + + + + + + Form + + + LoginWindow.cs + + + + + + + + + + + LoginWindow.cs + + + + + {ef2e6fd4-9e55-458b-81a2-df40fcb52d57} + PlexDL.Animation + + + {3c18fc31-d361-42fb-ae18-42faacd4e419} + PlexDL.Common.Components + + + {6d5d6fdd-9371-4ebb-8875-eebe170a47cd} + PlexDL.WaitWindow + + + {e3ce262b-b962-44ff-abc0-5ebfb403d51d} + UIHelpers + + + + \ No newline at end of file diff --git a/PlexDL.PlexAPI.LoginHandler/PlexDefs.cs b/PlexDL.PlexAPI.LoginHandler/PlexDefs.cs new file mode 100644 index 0000000..3a4c174 --- /dev/null +++ b/PlexDL.PlexAPI.LoginHandler/PlexDefs.cs @@ -0,0 +1,10 @@ +namespace PlexDL.PlexAPI.LoginHandler +{ + public static class PlexDefs + { + public static string ClientID { get; set; } = @"AB6CCCC7-5CF5-4523-826A-B969E0FFD8A0"; + public static string Version { get; set; } = @"Plex OAuth"; + public static string Model { get; set; } = @"Plex OAuth"; + public static string Product { get; set; } = @"PlexDL (Windows)"; + } +} \ No newline at end of file diff --git a/PlexDL.PlexAPI.LoginHandler/Properties/AssemblyInfo.cs b/PlexDL.PlexAPI.LoginHandler/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..8f7f9f5 --- /dev/null +++ b/PlexDL.PlexAPI.LoginHandler/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("PlexDL.PlexAPI.LoginHandler")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("PlexDL.PlexAPI.LoginHandler")] +[assembly: AssemblyCopyright("Copyright © 2020")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("f40a5d3c-078c-44a6-b6cf-53ff7b9c89df")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// 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("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PlexDL.PlexAPI.LoginHandler/TokenManager.cs b/PlexDL.PlexAPI.LoginHandler/TokenManager.cs new file mode 100644 index 0000000..7d8aed3 --- /dev/null +++ b/PlexDL.PlexAPI.LoginHandler/TokenManager.cs @@ -0,0 +1,63 @@ +using System; +using System.IO; + +namespace PlexDL.PlexAPI.LoginHandler +{ + public static class TokenManager + { + private static readonly string appdata = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); + private static readonly string file = @".token"; + private static readonly string final = $@"{appdata}\.plexdl\{file}"; + + public static bool TokenCachingEnabled { get; set; } = true; + + public static bool IsTokenStored => File.Exists(final); + + public static string StoredToken() + { + if (IsTokenStored && TokenCachingEnabled) + { + var t = File.ReadAllText(final); + return ((t.Length == 20) && (!string.IsNullOrEmpty(t))) ? t : string.Empty; //valid Plex tokens are always 20 characters in length. + } + else + return string.Empty; + } + + public static bool SaveToken(string token, bool deleteIfPresent = true) + { + if (deleteIfPresent) ClearStored(); + + try + { + if (TokenCachingEnabled) + File.WriteAllText(final, token); + return true; + } + catch (Exception) + { + //ignore any errors + return false; + } + } + + public static bool ClearStored() + { + if (IsTokenStored) + { + try + { + File.Delete(final); + return true; + } + catch (Exception) + { + //ignore any errors + return false; + } + } + else + return false; + } + } +} \ No newline at end of file diff --git a/PlexDL.PlexAPI.LoginHandler/packages.config b/PlexDL.PlexAPI.LoginHandler/packages.config new file mode 100644 index 0000000..abbe7b7 --- /dev/null +++ b/PlexDL.PlexAPI.LoginHandler/packages.config @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/PlexDL.WaitWindow/WaitWindowGUI.cs b/PlexDL.WaitWindow/WaitWindowGUI.cs index 7b6faef..7d7e594 100644 --- a/PlexDL.WaitWindow/WaitWindowGUI.cs +++ b/PlexDL.WaitWindow/WaitWindowGUI.cs @@ -1,8 +1,6 @@ -using PlexDL.Animation.WinFormAnimation; -using PlexDL.Common.Components; +using PlexDL.Common.Components; using System; using System.ComponentModel; -using System.Drawing; using System.Windows.Forms; using Timer = System.Windows.Forms.Timer; @@ -127,77 +125,75 @@ protected override void Dispose(bool disposing) /// private void InitializeComponent() { - components = new Container(); - MessageLabel = new Label(); - tmrDots = new Timer(components); - ProgressMain = new CircularProgressBar(); - SuspendLayout(); + this.components = new System.ComponentModel.Container(); + this.MessageLabel = new System.Windows.Forms.Label(); + this.tmrDots = new System.Windows.Forms.Timer(this.components); + this.ProgressMain = new PlexDL.Common.Components.CircularProgressBar(); + this.SuspendLayout(); // // MessageLabel // - MessageLabel.Font = new Font("Microsoft Sans Serif", 12F, FontStyle.Regular, GraphicsUnit.Point, 0); - MessageLabel.Location = new Point(130, 12); - MessageLabel.Name = "MessageLabel"; - MessageLabel.Size = new Size(174, 108); - MessageLabel.TabIndex = 2; - MessageLabel.Text = "Working on it"; - MessageLabel.TextAlign = ContentAlignment.MiddleCenter; + this.MessageLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.MessageLabel.Location = new System.Drawing.Point(130, 12); + this.MessageLabel.Name = "MessageLabel"; + this.MessageLabel.Size = new System.Drawing.Size(174, 108); + this.MessageLabel.TabIndex = 2; + this.MessageLabel.Text = "Working on it"; + this.MessageLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; // // tmrDots // - tmrDots.Interval = 200; - tmrDots.Tick += tmrDots_Tick; + this.tmrDots.Interval = 200; + this.tmrDots.Tick += new System.EventHandler(this.TmrDots_Tick); // // ProgressMain // - ProgressMain.AnimationFunction = KnownAnimationFunctions.QuadraticEaseInOut; - ProgressMain.AnimationSpeed = 500; - ProgressMain.BackColor = Color.Transparent; - ProgressMain.Font = new Font("Microsoft Sans Serif", 72F, FontStyle.Bold); - ProgressMain.ForeColor = Color.FromArgb(64, 64, 64); - ProgressMain.InnerColor = Color.FromArgb(224, 224, 224); - ProgressMain.InnerMargin = 2; - ProgressMain.InnerWidth = -1; - ProgressMain.Location = new Point(12, 12); - ProgressMain.MarqueeAnimationSpeed = 2000; - ProgressMain.Name = "ProgressMain"; - ProgressMain.OuterColor = Color.Gray; - ProgressMain.OuterMargin = -25; - ProgressMain.OuterWidth = 26; - ProgressMain.ProgressColor = Color.FromArgb(65, 177, 225); - ProgressMain.ProgressWidth = 25; - ProgressMain.SecondaryFont = new Font("Microsoft Sans Serif", 36F); - ProgressMain.Size = new Size(108, 108); - ProgressMain.StartAngle = 270; - ProgressMain.Style = ProgressBarStyle.Marquee; - ProgressMain.SubscriptColor = Color.FromArgb(166, 166, 166); - ProgressMain.SubscriptMargin = new Padding(10, -35, 0, 0); - ProgressMain.SubscriptText = ".23"; - ProgressMain.SuperscriptColor = Color.FromArgb(166, 166, 166); - ProgressMain.SuperscriptMargin = new Padding(10, 35, 0, 0); - ProgressMain.SuperscriptText = "°C"; - ProgressMain.TabIndex = 3; - ProgressMain.TextMargin = new Padding(8, 8, 0, 0); - ProgressMain.Value = 68; + this.ProgressMain.AnimationFunction = PlexDL.Animation.WinFormAnimation.KnownAnimationFunctions.QuadraticEaseInOut; + this.ProgressMain.AnimationSpeed = 500; + this.ProgressMain.BackColor = System.Drawing.Color.Transparent; + this.ProgressMain.Font = new System.Drawing.Font("Microsoft Sans Serif", 72F, System.Drawing.FontStyle.Bold); + this.ProgressMain.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.ProgressMain.InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224))))); + this.ProgressMain.InnerMargin = 2; + this.ProgressMain.InnerWidth = -1; + this.ProgressMain.Location = new System.Drawing.Point(12, 12); + this.ProgressMain.MarqueeAnimationSpeed = 2000; + this.ProgressMain.Name = "ProgressMain"; + this.ProgressMain.OuterColor = System.Drawing.Color.Gray; + this.ProgressMain.OuterMargin = -25; + this.ProgressMain.OuterWidth = 26; + this.ProgressMain.ProgressColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(128)))), ((int)(((byte)(0))))); + this.ProgressMain.ProgressWidth = 25; + this.ProgressMain.SecondaryFont = new System.Drawing.Font("Microsoft Sans Serif", 36F); + this.ProgressMain.Size = new System.Drawing.Size(108, 108); + this.ProgressMain.StartAngle = 270; + this.ProgressMain.Style = System.Windows.Forms.ProgressBarStyle.Marquee; + this.ProgressMain.SubscriptColor = System.Drawing.Color.FromArgb(((int)(((byte)(166)))), ((int)(((byte)(166)))), ((int)(((byte)(166))))); + this.ProgressMain.SubscriptMargin = new System.Windows.Forms.Padding(10, -35, 0, 0); + this.ProgressMain.SubscriptText = ".23"; + this.ProgressMain.SuperscriptColor = System.Drawing.Color.FromArgb(((int)(((byte)(166)))), ((int)(((byte)(166)))), ((int)(((byte)(166))))); + this.ProgressMain.SuperscriptMargin = new System.Windows.Forms.Padding(10, 35, 0, 0); + this.ProgressMain.SuperscriptText = "°C"; + this.ProgressMain.TabIndex = 3; + this.ProgressMain.TextMargin = new System.Windows.Forms.Padding(8, 8, 0, 0); + this.ProgressMain.Value = 68; // // WaitWindowGUI // - AutoScaleMode = AutoScaleMode.None; - BackColor = Color.WhiteSmoke; - ClientSize = new Size(316, 129); - ControlBox = false; - Controls.Add(ProgressMain); - Controls.Add(MessageLabel); - FormBorderStyle = FormBorderStyle.None; - MaximizeBox = false; - MinimizeBox = false; - Name = "WaitWindowGUI"; - ShowInTaskbar = false; - StartPosition = FormStartPosition.CenterScreen; - Text = "Working"; - FormClosing += WaitWindowGUI_FormClosing; - Load += WaitWindowGUI_Load; - ResumeLayout(false); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.BackColor = System.Drawing.Color.WhiteSmoke; + this.ClientSize = new System.Drawing.Size(316, 129); + this.ControlBox = false; + this.Controls.Add(this.ProgressMain); + this.Controls.Add(this.MessageLabel); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "WaitWindowGUI"; + this.ShowInTaskbar = false; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Working"; + this.ResumeLayout(false); } private void WaitWindowGUI_Load(object sender, EventArgs e) @@ -210,7 +206,7 @@ private void WaitWindowGUI_FormClosing(object sender, FormClosingEventArgs e) tmrDots.Stop(); } - private void tmrDots_Tick(object sender, EventArgs e) + private void TmrDots_Tick(object sender, EventArgs e) { if (dotCount < 3) { diff --git a/PlexDL.sln b/PlexDL.sln index 13853a6..b550720 100644 --- a/PlexDL.sln +++ b/PlexDL.sln @@ -27,6 +27,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UIHelpers", "UIHelpers\UIHe EndProject Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "PlexDL.Installer", "PlexDL.Installer\PlexDL.Installer.vdproj", "{5878C22C-3FC3-4EBD-87EF-BABA7DB0E9E7}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PlexDL.PlexAPI.LoginHandler", "PlexDL.PlexAPI.LoginHandler\PlexDL.PlexAPI.LoginHandler.csproj", "{F40A5D3C-078C-44A6-B6CF-53FF7B9C89DF}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -79,6 +81,10 @@ Global {E3CE262B-B962-44FF-ABC0-5EBFB403D51D}.Release|Any CPU.Build.0 = Release|Any CPU {5878C22C-3FC3-4EBD-87EF-BABA7DB0E9E7}.Debug|Any CPU.ActiveCfg = Debug {5878C22C-3FC3-4EBD-87EF-BABA7DB0E9E7}.Release|Any CPU.ActiveCfg = Release + {F40A5D3C-078C-44A6-B6CF-53FF7B9C89DF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F40A5D3C-078C-44A6-B6CF-53FF7B9C89DF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F40A5D3C-078C-44A6-B6CF-53FF7B9C89DF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F40A5D3C-078C-44A6-B6CF-53FF7B9C89DF}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/PlexDL/Common/Structures/AppOptions/Caching/CacheMode.cs b/PlexDL/Common/Structures/AppOptions/Caching/CacheMode.cs index c72348c..13bf0a9 100644 --- a/PlexDL/Common/Structures/AppOptions/Caching/CacheMode.cs +++ b/PlexDL/Common/Structures/AppOptions/Caching/CacheMode.cs @@ -1,9 +1,12 @@ -using System.ComponentModel; +using PlexDL.PlexAPI.LoginHandler; +using System.ComponentModel; namespace PlexDL.Common.Structures.AppOptions.Caching { public class CacheMode { + private bool _authCaching = true; + [DisplayName("Server Caching")] [Description( "Instead of grabbing servers from Plex.tv every time, PlexDL can cache server lists for you (this does not apply to relays). You can disable this if your servers frequently change locations.")] @@ -19,6 +22,19 @@ public class CacheMode "API Caching enables PlexDL to cache all API requests to a PMS server. This means content lists, metadata, library sections and other important information doesn't have to be downloaded again.")] public bool EnableXmlCaching { get; set; } = true; + [DisplayName("Auth Caching")] + [Description( + "Auth Caching enables PlexDL to cache your Plex.tv token. This means that your token does not have to be requested every time you login, as it's stored locally.")] + public bool EnableAuthCaching + { + get => _authCaching; + set + { + TokenManager.TokenCachingEnabled = value; //apply token caching flag to the LoginManager module + _authCaching = value; + } + } + // to make sure the PropertyGrid doesn't keep showing the name of this class, just return a blank string. public override string ToString() { diff --git a/PlexDL/Common/Structures/AppOptions/Caching/CachePaths.cs b/PlexDL/Common/Structures/AppOptions/Caching/CachePaths.cs index 30a64d3..7d176be 100644 --- a/PlexDL/Common/Structures/AppOptions/Caching/CachePaths.cs +++ b/PlexDL/Common/Structures/AppOptions/Caching/CachePaths.cs @@ -1,5 +1,5 @@ -using System.ComponentModel; -using PlexDL.Common.Caching; +using PlexDL.Common.Caching; +using System.ComponentModel; namespace PlexDL.Common.Structures.AppOptions.Caching { diff --git a/PlexDL/PlexDL.csproj b/PlexDL/PlexDL.csproj index 8c1c89f..37e3c5d 100644 --- a/PlexDL/PlexDL.csproj +++ b/PlexDL/PlexDL.csproj @@ -53,7 +53,7 @@ 4 - Resources\baseline_cloud_download_black_48dp.ico + Resources\PlexDL.ico PlexDL.Internal.Program @@ -235,12 +235,6 @@ Player.cs - - Form - - - PlexLogin.cs - Form @@ -306,9 +300,6 @@ Player.cs - - PlexLogin.cs - Settings.cs @@ -433,7 +424,7 @@ - + @@ -498,6 +489,10 @@ {8d6702f9-0556-405a-b0df-0e0de79e49c7} PlexDL.Player + + {f40a5d3c-078c-44a6-b6cf-53ff7b9c89df} + PlexDL.PlexAPI.LoginHandler + {94e9eaea-bb7a-4834-b2ae-98afcd68c8db} PlexDL.PlexAPI diff --git a/PlexDL/Properties/AssemblyInfo.cs b/PlexDL/Properties/AssemblyInfo.cs index 257c32d..002af11 100644 --- a/PlexDL/Properties/AssemblyInfo.cs +++ b/PlexDL/Properties/AssemblyInfo.cs @@ -29,6 +29,6 @@ // Build Number // Revision // -[assembly: AssemblyVersion("1.5.5.*")] -[assembly: AssemblyFileVersion("1.5.5.*")] +[assembly: AssemblyVersion("1.5.6.*")] +[assembly: AssemblyFileVersion("1.5.6.*")] [assembly: NeutralResourcesLanguage("en-AU")] \ No newline at end of file diff --git a/PlexDL/Resources/baseline_cloud_download_black_48dp.ico b/PlexDL/Resources/PlexDL.ico similarity index 100% rename from PlexDL/Resources/baseline_cloud_download_black_48dp.ico rename to PlexDL/Resources/PlexDL.ico diff --git a/PlexDL/UI/Home.Designer.cs b/PlexDL/UI/Home.Designer.cs index c83855f..504d3c9 100644 --- a/PlexDL/UI/Home.Designer.cs +++ b/PlexDL/UI/Home.Designer.cs @@ -36,15 +36,15 @@ private void InitializeComponent() { this.components = new System.ComponentModel.Container(); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Home)); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle10 = new System.Windows.Forms.DataGridViewCellStyle(); System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle11 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle12 = new System.Windows.Forms.DataGridViewCellStyle(); System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle5 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle6 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle13 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle14 = new System.Windows.Forms.DataGridViewCellStyle(); System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle7 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle8 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle9 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle15 = new System.Windows.Forms.DataGridViewCellStyle(); this.wkrUpdateContentView = new System.ComponentModel.BackgroundWorker(); this.sfdSaveProfile = new System.Windows.Forms.SaveFileDialog(); this.fbdSave = new System.Windows.Forms.FolderBrowserDialog(); @@ -153,6 +153,7 @@ private void InitializeComponent() this.cxtTracks = new System.Windows.Forms.ContextMenuStrip(this.components); this.itmDownloadThisTrack = new System.Windows.Forms.ToolStripMenuItem(); this.itmDownloadThisAlbum = new System.Windows.Forms.ToolStripMenuItem(); + this.itmClearMyToken = new System.Windows.Forms.ToolStripMenuItem(); this.cxtEpisodes.SuspendLayout(); this.cxtEpisodeOptions.SuspendLayout(); this.cxtLibrarySections.SuspendLayout(); @@ -258,21 +259,21 @@ private void InitializeComponent() // itmDGVDownloadThisEpisode // this.itmDGVDownloadThisEpisode.Name = "itmDGVDownloadThisEpisode"; - this.itmDGVDownloadThisEpisode.Size = new System.Drawing.Size(180, 22); + this.itmDGVDownloadThisEpisode.Size = new System.Drawing.Size(172, 22); this.itmDGVDownloadThisEpisode.Text = "Download Episode"; this.itmDGVDownloadThisEpisode.Click += new System.EventHandler(this.ItmDGVDownloadThisEpisode_Click); // // itmDGVDownloadThisSeason // this.itmDGVDownloadThisSeason.Name = "itmDGVDownloadThisSeason"; - this.itmDGVDownloadThisSeason.Size = new System.Drawing.Size(180, 22); + this.itmDGVDownloadThisSeason.Size = new System.Drawing.Size(172, 22); this.itmDGVDownloadThisSeason.Text = "Download Season"; this.itmDGVDownloadThisSeason.Click += new System.EventHandler(this.ItmDGVDownloadThisSeason_Click); // // itmDGVViewEpisodeDownloadLink // this.itmDGVViewEpisodeDownloadLink.Name = "itmDGVViewEpisodeDownloadLink"; - this.itmDGVViewEpisodeDownloadLink.Size = new System.Drawing.Size(180, 22); + this.itmDGVViewEpisodeDownloadLink.Size = new System.Drawing.Size(172, 22); this.itmDGVViewEpisodeDownloadLink.Text = "View Link"; this.itmDGVViewEpisodeDownloadLink.Click += new System.EventHandler(this.ItmDGVViewEpisodeDownloadLink_Click); // @@ -330,14 +331,14 @@ private void InitializeComponent() // itmDGVDownloadThisMovie // this.itmDGVDownloadThisMovie.Name = "itmDGVDownloadThisMovie"; - this.itmDGVDownloadThisMovie.Size = new System.Drawing.Size(180, 22); + this.itmDGVDownloadThisMovie.Size = new System.Drawing.Size(164, 22); this.itmDGVDownloadThisMovie.Text = "Download Movie"; this.itmDGVDownloadThisMovie.Click += new System.EventHandler(this.ItmDGVDownloadThisMovie_Click); // // itmDGVViewMovieDownloadLink // this.itmDGVViewMovieDownloadLink.Name = "itmDGVViewMovieDownloadLink"; - this.itmDGVViewMovieDownloadLink.Size = new System.Drawing.Size(180, 22); + this.itmDGVViewMovieDownloadLink.Size = new System.Drawing.Size(164, 22); this.itmDGVViewMovieDownloadLink.Text = "View Link"; this.itmDGVViewMovieDownloadLink.Click += new System.EventHandler(this.ItmDGVViewMovieDownloadLink_Click); // @@ -503,14 +504,14 @@ private void InitializeComponent() this.dgvMovies.BorderStyle = System.Windows.Forms.BorderStyle.None; this.dgvMovies.CellBorderStyle = System.Windows.Forms.DataGridViewCellBorderStyle.None; this.dgvMovies.ContextMenuStrip = this.cxtMovieOptions; - dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; - dataGridViewCellStyle1.BackColor = System.Drawing.SystemColors.Window; - dataGridViewCellStyle1.Font = new System.Drawing.Font("Microsoft Sans Serif", 13F); - dataGridViewCellStyle1.ForeColor = System.Drawing.Color.Gray; - dataGridViewCellStyle1.SelectionBackColor = System.Drawing.SystemColors.Highlight; - dataGridViewCellStyle1.SelectionForeColor = System.Drawing.SystemColors.HighlightText; - dataGridViewCellStyle1.WrapMode = System.Windows.Forms.DataGridViewTriState.False; - this.dgvMovies.DefaultCellStyle = dataGridViewCellStyle1; + dataGridViewCellStyle10.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; + dataGridViewCellStyle10.BackColor = System.Drawing.SystemColors.Window; + dataGridViewCellStyle10.Font = new System.Drawing.Font("Microsoft Sans Serif", 13F); + dataGridViewCellStyle10.ForeColor = System.Drawing.Color.Gray; + dataGridViewCellStyle10.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle10.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle10.WrapMode = System.Windows.Forms.DataGridViewTriState.False; + this.dgvMovies.DefaultCellStyle = dataGridViewCellStyle10; this.dgvMovies.Dock = System.Windows.Forms.DockStyle.Fill; this.dgvMovies.EditMode = System.Windows.Forms.DataGridViewEditMode.EditProgrammatically; this.dgvMovies.Font = new System.Drawing.Font("Microsoft Sans Serif", 13F); @@ -567,14 +568,14 @@ private void InitializeComponent() this.dgvTVShows.BackgroundColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224))))); this.dgvTVShows.BorderStyle = System.Windows.Forms.BorderStyle.None; this.dgvTVShows.CellBorderStyle = System.Windows.Forms.DataGridViewCellBorderStyle.None; - dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; - dataGridViewCellStyle2.BackColor = System.Drawing.SystemColors.Window; - dataGridViewCellStyle2.Font = new System.Drawing.Font("Microsoft Sans Serif", 13F); - dataGridViewCellStyle2.ForeColor = System.Drawing.Color.Gray; - dataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight; - dataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText; - dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.False; - this.dgvTVShows.DefaultCellStyle = dataGridViewCellStyle2; + dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; + dataGridViewCellStyle1.BackColor = System.Drawing.SystemColors.Window; + dataGridViewCellStyle1.Font = new System.Drawing.Font("Microsoft Sans Serif", 13F); + dataGridViewCellStyle1.ForeColor = System.Drawing.Color.Gray; + dataGridViewCellStyle1.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle1.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle1.WrapMode = System.Windows.Forms.DataGridViewTriState.False; + this.dgvTVShows.DefaultCellStyle = dataGridViewCellStyle1; this.dgvTVShows.Dock = System.Windows.Forms.DockStyle.Fill; this.dgvTVShows.EditMode = System.Windows.Forms.DataGridViewEditMode.EditProgrammatically; this.dgvTVShows.Font = new System.Drawing.Font("Microsoft Sans Serif", 13F); @@ -602,14 +603,14 @@ private void InitializeComponent() this.dgvSeasons.BackgroundColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224))))); this.dgvSeasons.BorderStyle = System.Windows.Forms.BorderStyle.None; this.dgvSeasons.CellBorderStyle = System.Windows.Forms.DataGridViewCellBorderStyle.None; - dataGridViewCellStyle3.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; - dataGridViewCellStyle3.BackColor = System.Drawing.SystemColors.Window; - dataGridViewCellStyle3.Font = new System.Drawing.Font("Microsoft Sans Serif", 13F); - dataGridViewCellStyle3.ForeColor = System.Drawing.Color.Gray; - dataGridViewCellStyle3.SelectionBackColor = System.Drawing.SystemColors.Highlight; - dataGridViewCellStyle3.SelectionForeColor = System.Drawing.SystemColors.HighlightText; - dataGridViewCellStyle3.WrapMode = System.Windows.Forms.DataGridViewTriState.False; - this.dgvSeasons.DefaultCellStyle = dataGridViewCellStyle3; + dataGridViewCellStyle11.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; + dataGridViewCellStyle11.BackColor = System.Drawing.SystemColors.Window; + dataGridViewCellStyle11.Font = new System.Drawing.Font("Microsoft Sans Serif", 13F); + dataGridViewCellStyle11.ForeColor = System.Drawing.Color.Gray; + dataGridViewCellStyle11.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle11.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle11.WrapMode = System.Windows.Forms.DataGridViewTriState.False; + this.dgvSeasons.DefaultCellStyle = dataGridViewCellStyle11; this.dgvSeasons.Dock = System.Windows.Forms.DockStyle.Fill; this.dgvSeasons.EditMode = System.Windows.Forms.DataGridViewEditMode.EditProgrammatically; this.dgvSeasons.Font = new System.Drawing.Font("Microsoft Sans Serif", 13F); @@ -637,14 +638,14 @@ private void InitializeComponent() this.dgvEpisodes.BorderStyle = System.Windows.Forms.BorderStyle.None; this.dgvEpisodes.CellBorderStyle = System.Windows.Forms.DataGridViewCellBorderStyle.None; this.dgvEpisodes.ContextMenuStrip = this.cxtEpisodeOptions; - dataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; - dataGridViewCellStyle4.BackColor = System.Drawing.SystemColors.Window; - dataGridViewCellStyle4.Font = new System.Drawing.Font("Microsoft Sans Serif", 13F); - dataGridViewCellStyle4.ForeColor = System.Drawing.Color.Gray; - dataGridViewCellStyle4.SelectionBackColor = System.Drawing.SystemColors.Highlight; - dataGridViewCellStyle4.SelectionForeColor = System.Drawing.SystemColors.HighlightText; - dataGridViewCellStyle4.WrapMode = System.Windows.Forms.DataGridViewTriState.False; - this.dgvEpisodes.DefaultCellStyle = dataGridViewCellStyle4; + dataGridViewCellStyle12.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; + dataGridViewCellStyle12.BackColor = System.Drawing.SystemColors.Window; + dataGridViewCellStyle12.Font = new System.Drawing.Font("Microsoft Sans Serif", 13F); + dataGridViewCellStyle12.ForeColor = System.Drawing.Color.Gray; + dataGridViewCellStyle12.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle12.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle12.WrapMode = System.Windows.Forms.DataGridViewTriState.False; + this.dgvEpisodes.DefaultCellStyle = dataGridViewCellStyle12; this.dgvEpisodes.Dock = System.Windows.Forms.DockStyle.Fill; this.dgvEpisodes.EditMode = System.Windows.Forms.DataGridViewEditMode.EditProgrammatically; this.dgvEpisodes.Font = new System.Drawing.Font("Microsoft Sans Serif", 13F); @@ -700,14 +701,14 @@ private void InitializeComponent() this.dgvArtists.BackgroundColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224))))); this.dgvArtists.BorderStyle = System.Windows.Forms.BorderStyle.None; this.dgvArtists.CellBorderStyle = System.Windows.Forms.DataGridViewCellBorderStyle.None; - dataGridViewCellStyle5.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; - dataGridViewCellStyle5.BackColor = System.Drawing.SystemColors.Window; - dataGridViewCellStyle5.Font = new System.Drawing.Font("Microsoft Sans Serif", 13F); - dataGridViewCellStyle5.ForeColor = System.Drawing.Color.Gray; - dataGridViewCellStyle5.SelectionBackColor = System.Drawing.SystemColors.Highlight; - dataGridViewCellStyle5.SelectionForeColor = System.Drawing.SystemColors.HighlightText; - dataGridViewCellStyle5.WrapMode = System.Windows.Forms.DataGridViewTriState.False; - this.dgvArtists.DefaultCellStyle = dataGridViewCellStyle5; + dataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; + dataGridViewCellStyle4.BackColor = System.Drawing.SystemColors.Window; + dataGridViewCellStyle4.Font = new System.Drawing.Font("Microsoft Sans Serif", 13F); + dataGridViewCellStyle4.ForeColor = System.Drawing.Color.Gray; + dataGridViewCellStyle4.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle4.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle4.WrapMode = System.Windows.Forms.DataGridViewTriState.False; + this.dgvArtists.DefaultCellStyle = dataGridViewCellStyle4; this.dgvArtists.Dock = System.Windows.Forms.DockStyle.Fill; this.dgvArtists.EditMode = System.Windows.Forms.DataGridViewEditMode.EditProgrammatically; this.dgvArtists.Font = new System.Drawing.Font("Microsoft Sans Serif", 13F); @@ -735,14 +736,14 @@ private void InitializeComponent() this.dgvAlbums.BackgroundColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224))))); this.dgvAlbums.BorderStyle = System.Windows.Forms.BorderStyle.None; this.dgvAlbums.CellBorderStyle = System.Windows.Forms.DataGridViewCellBorderStyle.None; - dataGridViewCellStyle6.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; - dataGridViewCellStyle6.BackColor = System.Drawing.SystemColors.Window; - dataGridViewCellStyle6.Font = new System.Drawing.Font("Microsoft Sans Serif", 13F); - dataGridViewCellStyle6.ForeColor = System.Drawing.Color.Gray; - dataGridViewCellStyle6.SelectionBackColor = System.Drawing.SystemColors.Highlight; - dataGridViewCellStyle6.SelectionForeColor = System.Drawing.SystemColors.HighlightText; - dataGridViewCellStyle6.WrapMode = System.Windows.Forms.DataGridViewTriState.False; - this.dgvAlbums.DefaultCellStyle = dataGridViewCellStyle6; + dataGridViewCellStyle13.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; + dataGridViewCellStyle13.BackColor = System.Drawing.SystemColors.Window; + dataGridViewCellStyle13.Font = new System.Drawing.Font("Microsoft Sans Serif", 13F); + dataGridViewCellStyle13.ForeColor = System.Drawing.Color.Gray; + dataGridViewCellStyle13.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle13.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle13.WrapMode = System.Windows.Forms.DataGridViewTriState.False; + this.dgvAlbums.DefaultCellStyle = dataGridViewCellStyle13; this.dgvAlbums.Dock = System.Windows.Forms.DockStyle.Fill; this.dgvAlbums.EditMode = System.Windows.Forms.DataGridViewEditMode.EditProgrammatically; this.dgvAlbums.Font = new System.Drawing.Font("Microsoft Sans Serif", 13F); @@ -770,14 +771,14 @@ private void InitializeComponent() this.dgvTracks.BorderStyle = System.Windows.Forms.BorderStyle.None; this.dgvTracks.CellBorderStyle = System.Windows.Forms.DataGridViewCellBorderStyle.None; this.dgvTracks.ContextMenuStrip = this.cxtTrackOptions; - dataGridViewCellStyle7.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; - dataGridViewCellStyle7.BackColor = System.Drawing.SystemColors.Window; - dataGridViewCellStyle7.Font = new System.Drawing.Font("Microsoft Sans Serif", 13F); - dataGridViewCellStyle7.ForeColor = System.Drawing.Color.Gray; - dataGridViewCellStyle7.SelectionBackColor = System.Drawing.SystemColors.Highlight; - dataGridViewCellStyle7.SelectionForeColor = System.Drawing.SystemColors.HighlightText; - dataGridViewCellStyle7.WrapMode = System.Windows.Forms.DataGridViewTriState.False; - this.dgvTracks.DefaultCellStyle = dataGridViewCellStyle7; + dataGridViewCellStyle14.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; + dataGridViewCellStyle14.BackColor = System.Drawing.SystemColors.Window; + dataGridViewCellStyle14.Font = new System.Drawing.Font("Microsoft Sans Serif", 13F); + dataGridViewCellStyle14.ForeColor = System.Drawing.Color.Gray; + dataGridViewCellStyle14.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle14.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle14.WrapMode = System.Windows.Forms.DataGridViewTriState.False; + this.dgvTracks.DefaultCellStyle = dataGridViewCellStyle14; this.dgvTracks.Dock = System.Windows.Forms.DockStyle.Fill; this.dgvTracks.EditMode = System.Windows.Forms.DataGridViewEditMode.EditProgrammatically; this.dgvTracks.Font = new System.Drawing.Font("Microsoft Sans Serif", 13F); @@ -824,21 +825,21 @@ private void InitializeComponent() // itmDGVDownloadThisTrack // this.itmDGVDownloadThisTrack.Name = "itmDGVDownloadThisTrack"; - this.itmDGVDownloadThisTrack.Size = new System.Drawing.Size(180, 22); + this.itmDGVDownloadThisTrack.Size = new System.Drawing.Size(167, 22); this.itmDGVDownloadThisTrack.Text = "Download Track"; this.itmDGVDownloadThisTrack.Click += new System.EventHandler(this.ItmDGVDownloadThisTrack_Click); // // itmDGVDownloadThisAlbum // this.itmDGVDownloadThisAlbum.Name = "itmDGVDownloadThisAlbum"; - this.itmDGVDownloadThisAlbum.Size = new System.Drawing.Size(180, 22); + this.itmDGVDownloadThisAlbum.Size = new System.Drawing.Size(167, 22); this.itmDGVDownloadThisAlbum.Text = "Download Album"; this.itmDGVDownloadThisAlbum.Click += new System.EventHandler(this.ItmDGVDownloadThisAlbum_Click); // // itmDGVViewTrackDownloadLink // this.itmDGVViewTrackDownloadLink.Name = "itmDGVViewTrackDownloadLink"; - this.itmDGVViewTrackDownloadLink.Size = new System.Drawing.Size(180, 22); + this.itmDGVViewTrackDownloadLink.Size = new System.Drawing.Size(167, 22); this.itmDGVViewTrackDownloadLink.Text = "View Link"; this.itmDGVViewTrackDownloadLink.Click += new System.EventHandler(this.ItmDGVViewTrackDownloadLink_Click); // @@ -877,14 +878,14 @@ private void InitializeComponent() this.dgvLog.BorderStyle = System.Windows.Forms.BorderStyle.None; this.dgvLog.CellBorderStyle = System.Windows.Forms.DataGridViewCellBorderStyle.None; this.dgvLog.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; - dataGridViewCellStyle8.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; - dataGridViewCellStyle8.BackColor = System.Drawing.SystemColors.Window; - dataGridViewCellStyle8.Font = new System.Drawing.Font("Microsoft Sans Serif", 13F); - dataGridViewCellStyle8.ForeColor = System.Drawing.SystemColors.ControlText; - dataGridViewCellStyle8.SelectionBackColor = System.Drawing.SystemColors.Highlight; - dataGridViewCellStyle8.SelectionForeColor = System.Drawing.SystemColors.HighlightText; - dataGridViewCellStyle8.WrapMode = System.Windows.Forms.DataGridViewTriState.False; - this.dgvLog.DefaultCellStyle = dataGridViewCellStyle8; + dataGridViewCellStyle7.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; + dataGridViewCellStyle7.BackColor = System.Drawing.SystemColors.Window; + dataGridViewCellStyle7.Font = new System.Drawing.Font("Microsoft Sans Serif", 13F); + dataGridViewCellStyle7.ForeColor = System.Drawing.SystemColors.ControlText; + dataGridViewCellStyle7.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle7.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle7.WrapMode = System.Windows.Forms.DataGridViewTriState.False; + this.dgvLog.DefaultCellStyle = dataGridViewCellStyle7; this.dgvLog.Dock = System.Windows.Forms.DockStyle.Fill; this.dgvLog.EditMode = System.Windows.Forms.DataGridViewEditMode.EditProgrammatically; this.dgvLog.Font = new System.Drawing.Font("Microsoft Sans Serif", 13F); @@ -954,14 +955,14 @@ private void InitializeComponent() this.dgvSections.BorderStyle = System.Windows.Forms.BorderStyle.None; this.dgvSections.CellBorderStyle = System.Windows.Forms.DataGridViewCellBorderStyle.None; this.dgvSections.ContextMenuStrip = this.cxtLibrarySections; - dataGridViewCellStyle9.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; - dataGridViewCellStyle9.BackColor = System.Drawing.SystemColors.Window; - dataGridViewCellStyle9.Font = new System.Drawing.Font("Microsoft Sans Serif", 13F); - dataGridViewCellStyle9.ForeColor = System.Drawing.Color.Gray; - dataGridViewCellStyle9.SelectionBackColor = System.Drawing.SystemColors.Highlight; - dataGridViewCellStyle9.SelectionForeColor = System.Drawing.SystemColors.HighlightText; - dataGridViewCellStyle9.WrapMode = System.Windows.Forms.DataGridViewTriState.False; - this.dgvSections.DefaultCellStyle = dataGridViewCellStyle9; + dataGridViewCellStyle15.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; + dataGridViewCellStyle15.BackColor = System.Drawing.SystemColors.Window; + dataGridViewCellStyle15.Font = new System.Drawing.Font("Microsoft Sans Serif", 13F); + dataGridViewCellStyle15.ForeColor = System.Drawing.Color.Gray; + dataGridViewCellStyle15.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle15.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle15.WrapMode = System.Windows.Forms.DataGridViewTriState.False; + this.dgvSections.DefaultCellStyle = dataGridViewCellStyle15; this.dgvSections.Dock = System.Windows.Forms.DockStyle.Fill; this.dgvSections.EditMode = System.Windows.Forms.DataGridViewEditMode.EditProgrammatically; this.dgvSections.Font = new System.Drawing.Font("Microsoft Sans Serif", 13F); @@ -1056,6 +1057,7 @@ private void InitializeComponent() // this.itmServers.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.itmServerManager, + this.itmClearMyToken, this.itmDisconnect}); this.itmServers.Name = "itmServers"; this.itmServers.Size = new System.Drawing.Size(56, 20); @@ -1331,6 +1333,13 @@ private void InitializeComponent() this.itmDownloadThisAlbum.Text = "Download This Album"; this.itmDownloadThisAlbum.Click += new System.EventHandler(this.ItmDownloadThisAlbum_Click); // + // itmClearMyToken + // + this.itmClearMyToken.Name = "itmClearMyToken"; + this.itmClearMyToken.Size = new System.Drawing.Size(198, 22); + this.itmClearMyToken.Text = "Clear My Token"; + this.itmClearMyToken.Click += new System.EventHandler(this.ItmClearMyToken_Click); + // // Home // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); @@ -1498,6 +1507,7 @@ private void InitializeComponent() private ToolStripMenuItem itmDGVViewTrackDownloadLink; private ToolStripMenuItem itmDGVDownloadThisMovie; private ToolStripMenuItem itmDGVViewMovieDownloadLink; + private ToolStripMenuItem itmClearMyToken; } } diff --git a/PlexDL/UI/Home.cs b/PlexDL/UI/Home.cs index 83b49b1..6dd147f 100644 --- a/PlexDL/UI/Home.cs +++ b/PlexDL/UI/Home.cs @@ -19,6 +19,7 @@ using PlexDL.Common.Structures.Plex; using PlexDL.Common.Update; using PlexDL.PlexAPI; +using PlexDL.PlexAPI.LoginHandler; using PlexDL.WaitWindow; using System; using System.Collections.Generic; @@ -2549,5 +2550,18 @@ private void ItmDGVViewEpisodeDownloadLink_Click(object sender, EventArgs e) { ShowLinkViewer(); } + + private void ItmClearMyToken_Click(object sender, EventArgs e) + { + if (TokenManager.IsTokenStored) + { + if (TokenManager.ClearStored()) + UIMessages.Info(@"Successfully cleared your Plex.tv token. It will be reinstated once you login via the Server Manager."); + else + UIMessages.Error(@"Couldn't remove your token, because an unknown error occured. Please delete it manually, and report this issue via GitHub."); + } + else + UIMessages.Error(@"Couldn't remove your token, because PlexDL has not saved it yet."); + } } } \ No newline at end of file diff --git a/PlexDL/UI/PlexLogin.Designer.cs b/PlexDL/UI/PlexLogin.Designer.cs deleted file mode 100644 index 5025097..0000000 --- a/PlexDL/UI/PlexLogin.Designer.cs +++ /dev/null @@ -1,180 +0,0 @@ -namespace PlexDL.UI -{ - partial class PlexLogin - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(PlexLogin)); - this.gbDisclaimer = new System.Windows.Forms.GroupBox(); - this.lblDisclaimer = new System.Windows.Forms.Label(); - this.gbCredentials = new System.Windows.Forms.GroupBox(); - this.btnShowHidePwd = new System.Windows.Forms.Button(); - this.txtPassword = new libbrhscgui.Components.WaterMarkTextBox(); - this.txtUsername = new libbrhscgui.Components.WaterMarkTextBox(); - this.btnCancel = new System.Windows.Forms.Button(); - this.btnLogin = new System.Windows.Forms.Button(); - this.chkRememberMe = new System.Windows.Forms.CheckBox(); - this.gbDisclaimer.SuspendLayout(); - this.gbCredentials.SuspendLayout(); - this.SuspendLayout(); - // - // gbDisclaimer - // - this.gbDisclaimer.Controls.Add(this.lblDisclaimer); - this.gbDisclaimer.Location = new System.Drawing.Point(12, 12); - this.gbDisclaimer.Name = "gbDisclaimer"; - this.gbDisclaimer.Size = new System.Drawing.Size(314, 63); - this.gbDisclaimer.TabIndex = 0; - this.gbDisclaimer.TabStop = false; - this.gbDisclaimer.Text = "Disclaimer"; - // - // lblDisclaimer - // - this.lblDisclaimer.Dock = System.Windows.Forms.DockStyle.Fill; - this.lblDisclaimer.Location = new System.Drawing.Point(3, 16); - this.lblDisclaimer.Name = "lblDisclaimer"; - this.lblDisclaimer.Size = new System.Drawing.Size(308, 44); - this.lblDisclaimer.TabIndex = 0; - this.lblDisclaimer.Text = "Your details will only be sent to Plex.tv, and are not forwarded or stored anywhe" + - "re else. This information will not be locally cached unless you select \'Remember" + - " Me\'."; - // - // gbCredentials - // - this.gbCredentials.Controls.Add(this.btnShowHidePwd); - this.gbCredentials.Controls.Add(this.txtPassword); - this.gbCredentials.Controls.Add(this.txtUsername); - this.gbCredentials.Location = new System.Drawing.Point(12, 81); - this.gbCredentials.Name = "gbCredentials"; - this.gbCredentials.Size = new System.Drawing.Size(314, 72); - this.gbCredentials.TabIndex = 1; - this.gbCredentials.TabStop = false; - this.gbCredentials.Text = "Credentials"; - // - // btnShowHidePwd - // - this.btnShowHidePwd.Location = new System.Drawing.Point(242, 45); - this.btnShowHidePwd.Name = "btnShowHidePwd"; - this.btnShowHidePwd.Size = new System.Drawing.Size(66, 20); - this.btnShowHidePwd.TabIndex = 2; - this.btnShowHidePwd.Text = "Show"; - this.btnShowHidePwd.UseVisualStyleBackColor = true; - this.btnShowHidePwd.Click += new System.EventHandler(this.BtnShowHidePwd_Click); - // - // txtPassword - // - this.txtPassword.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F); - this.txtPassword.Location = new System.Drawing.Point(6, 45); - this.txtPassword.Name = "txtPassword"; - this.txtPassword.Size = new System.Drawing.Size(230, 20); - this.txtPassword.TabIndex = 1; - this.txtPassword.UseSystemPasswordChar = true; - this.txtPassword.WaterMarkColor = System.Drawing.Color.Gray; - this.txtPassword.WaterMarkText = "Password"; - // - // txtUsername - // - this.txtUsername.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F); - this.txtUsername.Location = new System.Drawing.Point(6, 19); - this.txtUsername.Name = "txtUsername"; - this.txtUsername.Size = new System.Drawing.Size(302, 20); - this.txtUsername.TabIndex = 0; - this.txtUsername.WaterMarkColor = System.Drawing.Color.Gray; - this.txtUsername.WaterMarkText = "Username"; - // - // btnCancel - // - this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.btnCancel.Location = new System.Drawing.Point(12, 180); - this.btnCancel.Name = "btnCancel"; - this.btnCancel.Size = new System.Drawing.Size(155, 23); - this.btnCancel.TabIndex = 2; - this.btnCancel.Text = "Cancel"; - this.btnCancel.UseVisualStyleBackColor = true; - // - // btnLogin - // - this.btnLogin.Location = new System.Drawing.Point(171, 180); - this.btnLogin.Name = "btnLogin"; - this.btnLogin.Size = new System.Drawing.Size(155, 23); - this.btnLogin.TabIndex = 3; - this.btnLogin.Text = "Login"; - this.btnLogin.UseVisualStyleBackColor = true; - this.btnLogin.Click += new System.EventHandler(this.BtnLogin_Click); - // - // chkRememberMe - // - this.chkRememberMe.AutoSize = true; - this.chkRememberMe.Location = new System.Drawing.Point(12, 159); - this.chkRememberMe.Name = "chkRememberMe"; - this.chkRememberMe.Size = new System.Drawing.Size(95, 17); - this.chkRememberMe.TabIndex = 1; - this.chkRememberMe.Text = "Remember Me"; - this.chkRememberMe.UseVisualStyleBackColor = true; - // - // PlexLogin - // - this.AcceptButton = this.btnLogin; - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.CancelButton = this.btnCancel; - this.ClientSize = new System.Drawing.Size(338, 217); - this.Controls.Add(this.chkRememberMe); - this.Controls.Add(this.btnLogin); - this.Controls.Add(this.btnCancel); - this.Controls.Add(this.gbCredentials); - this.Controls.Add(this.gbDisclaimer); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; - this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "PlexLogin"; - this.ShowInTaskbar = false; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; - this.Text = "Login to Plex.tv"; - this.Load += new System.EventHandler(this.PlexLogin_Load); - this.gbDisclaimer.ResumeLayout(false); - this.gbCredentials.ResumeLayout(false); - this.gbCredentials.PerformLayout(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.GroupBox gbDisclaimer; - private System.Windows.Forms.Label lblDisclaimer; - private System.Windows.Forms.GroupBox gbCredentials; - private libbrhscgui.Components.WaterMarkTextBox txtUsername; - private libbrhscgui.Components.WaterMarkTextBox txtPassword; - private System.Windows.Forms.Button btnShowHidePwd; - private System.Windows.Forms.Button btnCancel; - private System.Windows.Forms.Button btnLogin; - private System.Windows.Forms.CheckBox chkRememberMe; - } -} \ No newline at end of file diff --git a/PlexDL/UI/PlexLogin.cs b/PlexDL/UI/PlexLogin.cs deleted file mode 100644 index b7a03d5..0000000 --- a/PlexDL/UI/PlexLogin.cs +++ /dev/null @@ -1,190 +0,0 @@ -using PlexDL.Common.Enums; -using PlexDL.Common.Globals; -using PlexDL.Common.Logging; -using PlexDL.Common.Security; -using PlexDL.Common.Structures; -using PlexDL.PlexAPI; -using PlexDL.WaitWindow; -using System; -using System.IO; -using System.Windows.Forms; -using UIHelpers; - -namespace PlexDL.UI -{ - public partial class PlexLogin : Form - { - public bool Success { get; set; } - public string AccountToken { get; set; } = ""; - private string RememberMeFile { get; } = ".plex_account"; - private string RememberMePath { get; } - - public PlexLogin() - { - InitializeComponent(); - - //assemble RememberMePath (you can't initialise a property with another property) - RememberMePath = $"{GlobalStaticVars.PlexDlAppData}\\{RememberMeFile}"; - } - - private void PlexLogin_Load(object sender, EventArgs e) - { - LoadRememberMe(); - } - - private bool RememberMeFileExists() - { - var barePath = GlobalStaticVars.PlexDlAppData; - if (!System.IO.Directory.Exists(barePath)) - System.IO.Directory.CreateDirectory(barePath); - return File.Exists(RememberMePath); - } - - private void LoadRememberMe() - { - try - { - if (!RememberMeFileExists()) return; - - var login = CachedPlexLogin.FromFile(RememberMePath); - //check if the MD5 checksum is still valid (small yet weak security measure; most users won't care). - if (!login.VerifyThis()) return; - - //setup decryption processing - var user = new ProtectedString(login.Username, StringProtectionMode.Decrypt); - var pass = new ProtectedString(login.Password, StringProtectionMode.Decrypt); - - //set the UI with decrypted values from the file - txtUsername.Text = user.ProcessedValue; - txtPassword.Text = pass.ProcessedValue; - - //check the "Remember Me" box - chkRememberMe.Checked = true; - } - catch (Exception ex) - { - //log and ignore the error - LoggingHelpers.RecordException(ex.Message, "RememberMeError"); - } - } - - protected override bool ProcessCmdKey(ref Message msg, Keys keyData) - { - if (keyData != Keys.Enter) return base.ProcessCmdKey(ref msg, keyData); - BtnLogin_Click(null, null); - return true; - } - - private void LoginWorker(object sender, WaitWindowEventArgs e) - { - try - { - var plex = new MyPlex(); - var user = plex.Authenticate(txtUsername.Text, txtPassword.Text); - var token = user.authenticationToken; - e.Result = token; - } - catch (Exception ex) - { - LoggingHelpers.RecordException(ex.Message, "PlexLoginWorkerError"); - e.Result = null; - } - } - - private void BtnShowHidePwd_Click(object sender, EventArgs e) - { - if (txtPassword.UseSystemPasswordChar) - { - txtPassword.UseSystemPasswordChar = false; - btnShowHidePwd.Text = @"Hide"; - } - else - { - txtPassword.UseSystemPasswordChar = true; - btnShowHidePwd.Text = @"Show"; - } - } - - private void RememberMe(bool status) - { - try - { - if (status) - { - var protectedUsername = new ProtectedString(txtUsername.Text, StringProtectionMode.Encrypt); - var protectedPassword = new ProtectedString(txtPassword.Text, StringProtectionMode.Encrypt); - var username = protectedUsername.ProcessedValue; - var password = protectedPassword.ProcessedValue; - var login = new CachedPlexLogin(username, password); - login.ToFile(RememberMePath); - } - else - { - if (RememberMeFileExists()) - File.Delete(RememberMePath); - } - } - catch (Exception ex) - { - //log and ignore the error - LoggingHelpers.RecordException(ex.Message, "RememberMeError"); - } - } - - private void BtnLogin_Click(object sender, EventArgs e) - { - try - { - if (!string.IsNullOrWhiteSpace(txtUsername.Text) && !string.IsNullOrWhiteSpace(txtPassword.Text)) - { - var token = (string)WaitWindow.WaitWindow.Show(LoginWorker, "Logging you in"); - - if (token != null) - { - if (token != string.Empty) - { - // valid account tokens are always 20 characters in length - if (token.Length == 20) - { - RememberMe(chkRememberMe.Checked); - - UIMessages.Info( - @"Successfully authenticated your Plex.tv account. You can now load servers and relays from Plex.tv", - @"Success"); - AccountToken = token; - Success = true; - DialogResult = DialogResult.OK; - Close(); - } - else - { - UIMessages.Error(@"Received an invalid token from the Plex.tv authorisation server", - @"Authentication Error"); - } - } - else - UIMessages.Error(@"Incorrect username/password", - @"Authentication Error"); - } - else - UIMessages.Error(@"Server gave a null reply. Maybe an API error occurred?", - @"Authentication Error"); - } - else - { - UIMessages.Error(@"Please enter your Plex.tv username and password correctly", - @"Validation Error"); - } - } - catch (Exception ex) - { - UIMessages.Error("Failed to login to Plex.tv; an error occurred.\n\n" + ex, - @"Connection Error"); - LoggingHelpers.RecordException(ex.Message, "PlexLoginError"); - Success = false; - DialogResult = DialogResult.OK; - Close(); - } - } - } -} \ No newline at end of file diff --git a/PlexDL/UI/ServerManager.cs b/PlexDL/UI/ServerManager.cs index cb61c1e..c69adaf 100644 --- a/PlexDL/UI/ServerManager.cs +++ b/PlexDL/UI/ServerManager.cs @@ -8,6 +8,7 @@ using PlexDL.Common.Renderers.DGVRenderers; using PlexDL.Common.Structures; using PlexDL.PlexAPI; +using PlexDL.PlexAPI.LoginHandler; using PlexDL.WaitWindow; using System; using System.Collections.Generic; @@ -224,6 +225,8 @@ private static WebCheck TestConnection(Server svr) { var uri = ConnectionLink(svr); + //UIMessages.Info(uri); + var testUrl = WebCheck.TestUrl(uri); value = testUrl; @@ -430,16 +433,23 @@ private void ItmViaPlexTv_Click(object sender, EventArgs e) { //check if there's a connection before trying to update the authentication token if (ConnectionChecker.CheckForInternetConnection()) - using (var frm = new PlexLogin()) + { + var auth = AuthRoutine.GetAuthToken(); + if (auth == null) { - if (frm.ShowDialog() != DialogResult.OK) return; - if (!frm.Success) return; - - if (ApplyToken(frm.AccountToken)) + UIMessages.Error(@"Login failed: null result"); + } + else + { + if (ApplyToken(auth)) + { + UIMessages.Info(@"Successfully connected to Plex.tv. You can now load and connect to your servers/relays.", @"Success"); LoadServers(true); + } else UIMessages.Error(@"An unknown error occurred"); } + } else // trying to connect on no connection will not end well; alert the user. UIMessages.Warning(