Ejemplo n.º 1
0
        public static new VkAudioAttachment FromJson(JToken json)
        {
            if (json == null)
                throw new ArgumentException("Json can not be null.");

            var result = new VkAudioAttachment();
            result.Id = json["id"].Value<long>();
            result.OwnerId = json["owner_id"].Value<long>();
            result.Artist = json["artist"].Value<string>();
            result.Title = json["title"].Value<string>();
            result.Duration = TimeSpan.FromSeconds(json["duration"].Value<int>());
            if (json["url"] != null)
                result.Url = json["url"].Value<string>();
            return result;
        }
Ejemplo n.º 2
0
        public static List <VkAttachment> FromJson(JToken json)
        {
            var result = new List <VkAttachment>();

            foreach (var a in json)
            {
                switch (a["type"].Value <string>())
                {
                case "audio":
                    result.Add(VkAudioAttachment.FromJson(a["audio"]));
                    break;

                case "photo":
                    result.Add(VkPhotoAttachment.FromJson(a["photo"]));
                    break;

                case "sticker":
                    result.Add(VkStickerAttachment.FromJson(a["sticker"]));
                    break;

                case "gift":
                    result.Add(VkGiftAttachment.FromJson(a["gift"]));
                    break;

                case "link":
                    result.Add(VkLinkAttachment.FromJson(a["link"]));
                    break;

                case "doc":
                    result.Add(VkDocumentAttachment.FromJson(a["doc"]));
                    break;

                case "video":
                    result.Add(VkVideoAttachment.FromJson(a["video"]));
                    break;

                case "wall":
                    result.Add(VkWallPostAttachment.FromJson(a["wall"]));
                    break;
                }
            }

            return(result);
        }
Ejemplo n.º 3
0
        public static List <VkAttachment> FromJson(JToken json, string apiVersion = null)
        {
            var result = new List <VkAttachment>();

            foreach (var a in json)
            {
                switch (a["type"].Value <string>())
                {
                case "audio":
                    result.Add(VkAudioAttachment.FromJson(a["audio"]));
                    break;

                case "photo":
                    result.Add(VkPhotoAttachment.FromJson(a["photo"]));
                    break;
                }
            }

            return(result);
        }
Ejemplo n.º 4
0
        public new static VkAudioAttachment FromJson(JToken json)
        {
            if (json == null)
            {
                throw new ArgumentException("Json can not be null.");
            }

            var result = new VkAudioAttachment();

            result.Id       = json["id"].Value <long>();
            result.OwnerId  = json["owner_id"].Value <long>();
            result.Artist   = json["artist"].Value <string>();
            result.Title    = json["title"].Value <string>();
            result.Duration = TimeSpan.FromSeconds(json["duration"].Value <int>());
            if (json["url"] != null)
            {
                result.Url = json["url"].Value <string>();
            }
            return(result);
        }
Ejemplo n.º 5
0
        private async Task<List<VkAudioAttachment>> GetAudioList(IProgress<int> progress, CancellationToken token)
        {
            if (Tracks == null)
                return null;

            var result = new List<VkAudioAttachment>();
            int requestsCount = 0;
            foreach (var audio in Tracks)
            {
                if (token.IsCancellationRequested)
                    return null;

                if (audio.Source == null)
                {
                    VkAudio vkAudio = null;
                    try
                    {
                        vkAudio = await DataService.GetAudioByArtistAndTitle(audio.Artist, audio.Title);
                    }
                    catch (Exception ex)
                    {
                        LoggingService.Log(ex);
                    }

                    if (vkAudio != null)
                    {
                        var audioAttachment = new VkAudioAttachment();
                        audioAttachment.Id = long.Parse(vkAudio.Id);
                        audioAttachment.OwnerId = vkAudio.OwnerId;
                        result.Add(audioAttachment);
                    }
                    else
                    {
                        LoggingService.Log("Failed to find audio " + audio.Artist + " - " + audio.Title);
                    }

                    requestsCount++;

                    if (requestsCount >= 2) //не больше 2-х запросов в секунду
                    {
                        requestsCount = 0;
                        await Task.Delay(1000);
                    }
                }
                else
                {
                    var audioAttachment = new VkAudioAttachment();
                    audioAttachment.Id = long.Parse(audio.Id);
                    audioAttachment.OwnerId = audio.OwnerId;
                    result.Add(audioAttachment);
                }

                if (token.IsCancellationRequested)
                    return null;

                progress.Report(1);
            }

            return result;
        }