Esempio n. 1
0
        private static async Task DownloadMusic(AppConfig config)
        {
            var token = await _vkontakte.Auth.Login(config.VkUsername, config.VkPassword, Auth.VkScopeSettings.CanAccessAudios);

            using (var reader = new StreamReader(@"C:\Users\a.yakonyuk\Desktop\yandex.music.txt"))
            using (var writer = new StreamWriter(Environment.CurrentDirectory + "/yandex.music.url.txt", false))
            {
                while (reader.EndOfStream == false)
                {
                    try
                    {
                        var line = reader.ReadLine();
                        if (File.Exists("D:/Musics/" + line + ".mp3"))
                            continue;

                        Console.WriteLine("Downloading: " + line);

                        var title = line.Split('-')[0].Trim();
                        var artist = line.Split('-')[1].Trim();

                        var audios = await SearchAudio(line, 10);
                        {
                            if (audios.Any())
                            {
                                var audio = audios.FirstOrDefault(x => (String.Equals(x.Title, title, StringComparison.OrdinalIgnoreCase) && String.Equals(x.Artist, artist, StringComparison.OrdinalIgnoreCase)));
                                if (audio == null)
                                    audio = audios.FirstOrDefault(x => String.Equals(x.Title, title, StringComparison.OrdinalIgnoreCase));
                                if (audio == null)
                                {
                                    audio = audios.First();
                                }

                                writer.WriteLine(audio.Url);

                                using (var client = new WebClient())
                                {
                                    client.DownloadFile(audio.Url,  "D:/Musics/" +MakeValidFileName(line) + ".mp3");
                                }
                            }
                            else
                            {
                                Console.WriteLine("Skiped: " + line);
                            }
                        }
                        Thread.Sleep(1000);
                    }
                    catch (Vk.Error.VkCaptchaNeededException ex)
                    {
                        Console.WriteLine("Captch needed");
                        Thread.Sleep(30000);
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.ToString());
                    }
                }


            }
        }
Esempio n. 2
0
        private static void Main(string[] args)
        {
            if (args == null || args.Length == 0)
            {
                Console.WriteLine("Incoming parameters is empty");
                return;
            }

            AppDomain.CurrentDomain.UnhandledException += CurrentDomainOnUnhandledException;

            var config = new AppConfig
            {
                VaultUrl = args[0],
                VaultUsername = args[1],
                VaultPassword = args[2],
                VkUsername = args[3],
                VkPassword = args[4]
            };

          //  DownloadMusic(config).Wait();
           // SyncMusic(config).Wait();
            Console.ReadLine();
            Console.WriteLine("Syncs is completed");
        }
Esempio n. 3
0
        private static async Task SyncMusic(AppConfig config)
        {
            var vkontakte = new Vkontakte("2635307", "aNq5ZwcnrfE8qhhMxkJf", "5.28")
            {
                UseHttps = true,
            };
            var token = await vkontakte.Auth.Login(config.VkUsername, config.VkPassword, Auth.VkScopeSettings.CanAccessAudios);
            var vkResponse = await vkontakte.Audio.Get();

            using (var client = new HttpClient())
            {
                var credentials = Encoding.ASCII.GetBytes(string.Join(":", config.VaultUsername, config.VaultPassword));

                client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic", Convert.ToBase64String(credentials));
                foreach (var audio in vkResponse.Items)
                {
                    var content = new FormUrlEncodedContent(new Dictionary<string, string> {
                    { "artist", audio.Artist },
                    { "track", audio.Title}
                });
                    var response = await client.PostAsync(config.VaultUrl, content);
                    if (response.IsSuccessStatusCode == false)
                    {
                        Console.WriteLine(response.StatusCode);
                    }
                }
            }
        }