diff --git a/.gitmodules b/.gitmodules index e38da3f..af642d1 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,9 @@ [submodule "DTLib"] path = DTLib url = https://github.com/Timerix22/DTLib.git +[submodule "vknet"] + path = vknet + url = https://github.com/Timerix22/vknet +[submodule "VkNet.AudioBypass"] + path = VkNet.AudioBypass + url = https://github.com/Timerix22/VkNet.AudioBypass diff --git a/.idea/.idea.VkAudioDownloader/.idea/vcs.xml b/.idea/.idea.VkAudioDownloader/.idea/vcs.xml index 9661ac7..cfebfd3 100644 --- a/.idea/.idea.VkAudioDownloader/.idea/vcs.xml +++ b/.idea/.idea.VkAudioDownloader/.idea/vcs.xml @@ -2,5 +2,8 @@ + + + \ No newline at end of file diff --git a/VkAudioDownloader.CLI/Program.cs b/VkAudioDownloader.CLI/Program.cs index a67c86a..74b8de9 100644 --- a/VkAudioDownloader.CLI/Program.cs +++ b/VkAudioDownloader.CLI/Program.cs @@ -1,13 +1,11 @@ -// See https://aka.ms/new-console-template for more information - +using DTLib.Dtsod; using VkAudioDownloader; - -var client = new VkClient(new VkClientConfig() -{ - AppId = 51473647, - Login = "aaa", - Password = "aaa" -}); +var client = new VkClient(VkClientConfig.FromDtsod(new DtsodV23(File.ReadAllText("config.dtsod")))); client.Connect(); Console.WriteLine(client.Api.Token); +var audios = client.FindAudio("моя оборона"); +foreach (var a in audios) +{ + Console.WriteLine(a.Title); +} diff --git a/VkAudioDownloader.CLI/VkAudioDownloader.CLI.csproj b/VkAudioDownloader.CLI/VkAudioDownloader.CLI.csproj index efc7f5a..30f41bc 100644 --- a/VkAudioDownloader.CLI/VkAudioDownloader.CLI.csproj +++ b/VkAudioDownloader.CLI/VkAudioDownloader.CLI.csproj @@ -3,6 +3,7 @@ Exe net6.0 + 10 enable enable diff --git a/VkAudioDownloader.CLI/config.dtsod.default b/VkAudioDownloader.CLI/config.dtsod.default new file mode 100644 index 0000000..e5867dc --- /dev/null +++ b/VkAudioDownloader.CLI/config.dtsod.default @@ -0,0 +1,3 @@ +app_id: 0ul; +login: " "; +password: " "; diff --git a/VkAudioDownloader.sln b/VkAudioDownloader.sln index 8115611..f47fb9a 100644 --- a/VkAudioDownloader.sln +++ b/VkAudioDownloader.sln @@ -8,6 +8,12 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DTLib", "DTLib\DTLib\DTLib. EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DTLib.Dtsod", "DTLib\DTLib.Dtsod\DTLib.Dtsod.csproj", "{F6FA6507-8A20-43F8-9D88-4CB2F049780D}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VkNet", "vknet\VkNet\VkNet.csproj", "{123A7020-4C9B-4F7D-A27A-3002A7B21D4C}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VkNet.Generators", "vknet\VkNet.Generators\VkNet.Generators.csproj", "{BD698045-3408-40C1-AEEF-865219710EE2}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VkNet.AudioBypassService", "VkNet.AudioBypass\VkNet.AudioBypassService\VkNet.AudioBypassService.csproj", "{5650A6DD-602D-49FF-A0B0-DB59BD63EACE}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -30,5 +36,17 @@ Global {F6FA6507-8A20-43F8-9D88-4CB2F049780D}.Debug|Any CPU.Build.0 = Debug|Any CPU {F6FA6507-8A20-43F8-9D88-4CB2F049780D}.Release|Any CPU.ActiveCfg = Release|Any CPU {F6FA6507-8A20-43F8-9D88-4CB2F049780D}.Release|Any CPU.Build.0 = Release|Any CPU + {123A7020-4C9B-4F7D-A27A-3002A7B21D4C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {123A7020-4C9B-4F7D-A27A-3002A7B21D4C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {123A7020-4C9B-4F7D-A27A-3002A7B21D4C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {123A7020-4C9B-4F7D-A27A-3002A7B21D4C}.Release|Any CPU.Build.0 = Release|Any CPU + {BD698045-3408-40C1-AEEF-865219710EE2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BD698045-3408-40C1-AEEF-865219710EE2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BD698045-3408-40C1-AEEF-865219710EE2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BD698045-3408-40C1-AEEF-865219710EE2}.Release|Any CPU.Build.0 = Release|Any CPU + {5650A6DD-602D-49FF-A0B0-DB59BD63EACE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5650A6DD-602D-49FF-A0B0-DB59BD63EACE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5650A6DD-602D-49FF-A0B0-DB59BD63EACE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5650A6DD-602D-49FF-A0B0-DB59BD63EACE}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection EndGlobal diff --git a/VkAudioDownloader/VkAudioDownloader.csproj b/VkAudioDownloader/VkAudioDownloader.csproj index 69369f7..4477e6d 100644 --- a/VkAudioDownloader/VkAudioDownloader.csproj +++ b/VkAudioDownloader/VkAudioDownloader.csproj @@ -2,17 +2,18 @@ net6.0 + 10 enable enable - - - - - - + + + + + diff --git a/VkAudioDownloader/VkClient.cs b/VkAudioDownloader/VkClient.cs index 17d0995..24e5c6b 100644 --- a/VkAudioDownloader/VkClient.cs +++ b/VkAudioDownloader/VkClient.cs @@ -2,9 +2,15 @@ global using DTLib.Extensions; using DTLib.Logging; using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.DependencyInjection.Extensions; using VkNet; using VkNet.Enums.Filters; using VkNet.Model; +using VkNet.Model.RequestParams; +using VkNet.Utils; +using VkNet.Model.Attachments; +using VkNet.AudioBypassService; +using VkNet.AudioBypassService.Extensions; namespace VkAudioDownloader; @@ -20,19 +26,48 @@ public class VkClient : IDisposable Config = conf; var services = new ServiceCollection(); //services.AddSingleton(); + services.AddAudioBypass(); Api = new VkApi(services); } public void Connect() { - Api.Authorize(new ApiAuthParams + var authParams = new ApiAuthParams { ApplicationId = Config.AppId, - Login = Config.Login, - Password = Config.Password, Settings = Settings.Audio + }; + if (Config.Token is not null) + { + Console.WriteLine("authorizing by token"); + authParams.AccessToken = Config.Token; + } + else + { + Console.WriteLine("authorizing by login and password"); + authParams.Login = Config.Login; + authParams.Password = Config.Password; + } + Api.Authorize(authParams); + } + + public VkCollection