Список параметров для метода Wall.Get
Example #1
0
 /// <summary>
 /// Привести к типу VkParameters.
 /// </summary>
 /// <param name="p">Параметры.</param>
 /// <returns></returns>
 internal static VkParameters ToVkParameters(WallGetParams p)
 {
     return(new VkParameters
     {
         { "owner_id", p.OwnerId },
         { "domain", p.Domain },
         { "offset", p.Offset },
         { "count", p.Count },
         { "filter", p.Filter },
         { "extended", p.Extended },
         { "fields", p.Fields }
     });
 }
Example #2
0
 /// <summary>
 /// Привести к типу VkParameters.
 /// </summary>
 /// <param name="p">Параметры.</param>
 /// <returns></returns>
 internal static VkParameters ToVkParameters(WallGetParams p)
 {
     return new VkParameters
     {
         { "owner_id", p.OwnerId },
         { "domain", p.Domain },
         { "offset", p.Offset },
         { "count", p.Count },
         { "filter", p.Filter },
         { "extended", p.Extended },
         { "fields", p.Fields }
     };
 }
Example #3
0
 /// <summary>
 /// Привести к типу VkParameters.
 /// </summary>
 /// <param name="p">Параметры.</param>
 /// <returns></returns>
 public static VkParameters ToVkParameters(WallGetParams p)
 {
     return(new VkParameters
     {
         { "owner_id", p.OwnerId },
         { "domain", p.Domain },
         { "offset", p.Offset },
         { "count", p.Count },
         { "filter", p.Filter },
         { "extended", p.Extended },
         { "fields", p.Fields },
         { "captcha_sid", p.CaptchaSid },
         { "captcha_key", p.CaptchaKey }
     });
 }
Example #4
0
 /// <summary>
 /// Привести к типу VkParameters.
 /// </summary>
 /// <param name="p">Параметры.</param>
 /// <returns></returns>
 public static VkParameters ToVkParameters(WallGetParams p)
 {
     return new VkParameters
     {
         { "owner_id", p.OwnerId },
         { "domain", p.Domain },
         { "offset", p.Offset },
         { "count", p.Count },
         { "filter", p.Filter },
         { "extended", p.Extended },
         { "fields", p.Fields },
         { "captcha_sid", p.CaptchaSid },
         { "captcha_key", p.CaptchaKey }
     };
 }
        // Получение постов в группах и составление списка userIdsToGet
        /// <summary>
        /// Receives the group posts.
        /// </summary>
        /// <param name="userIdsToGet">The user ids to get.</param>
        /// <param name="vkPostsToProcess">The vk posts to process.</param>
        void ReceiveGroupPosts(List<long> userIdsToGet, List<Post> vkPostsToProcess)
        {
            for (int i = 0; i < 3; i++)
            {
                if (currentVkGroup == vkGroupsCount)
                {
                    try
                    {
                        GroupsGetParams vkGroupsParams = new GroupsGetParams();

                        vkGroupsParams.UserId = vk.UserId.Value;
                        vkGroupsParams.Extended = true;

                        var newVkGroups = vk.Groups.Get(vkGroupsParams);

                        vkGroups = newVkGroups;
                        vkGroupsCount = vkGroups.Count;
                    }
                    catch
                    {
                    }

                    currentVkGroup = 0;

                    if (vkGroupsCount == 0)
                        break;
                    else
                        continue;
                }

                Group vkGroup = vkGroups[currentVkGroup];
                long vkGroupId = vkGroup.Id;

                //Console.WriteLine("vkGroup.Name " + vkGroup.Name);

                if (!string.IsNullOrEmpty(vkGroup.Name))
                {
                    groupNamesDict[vkGroupId] = vkGroup.Name;
                }

                currentVkGroup++;

                if (lastReceivingDateForGroups.ContainsKey(vkGroupId) == false)
                    lastReceivingDateForGroups[vkGroupId] = DateTime.Now;

                WallGetParams vkWallParams = new WallGetParams();

                vkWallParams.Count = 50;
                vkWallParams.Offset = 0;
                vkWallParams.OwnerId = -vkGroup.Id; // needs to be negative

                WallGetObject vkWalls = null;

                try // useless, but it would throw an exception if the user is not a member (was deleted) or the group id is wrong.
                {
                    vkWalls = vk.Wall.Get(vkWallParams);
                }
                catch (Exception)
                {
                    continue;
                }

                var posts = vkWalls.WallPosts;
                foreach (var post in posts)
                {
                    if (post.Date.HasValue)
                    {
                        //Console.WriteLine("post.Date " + post.Date.Value.ToString() + " lastReceivingDateForGroups[vkGroupId] " + lastReceivingDateForGroups[vkGroupId].ToString());

                        if (post.Date.Value <= lastReceivingDateForGroups[vkGroupId])
                            continue;

                        if (post.Date.Value > lastReceivingDateForGroups[vkGroupId])
                            lastReceivingDateForGroups[vkGroupId] = post.Date.Value;
                    }
                    else continue;

                    // Составление списка userIdsToGet (id пользователей, которых надо получить с сервера) из постов
                    if (post.FromId.HasValue)
                    {
                        if (post.FromId.Value > 0)
                        {
                            long vkMessageUserId = post.FromId.Value;

                            if ((!usersDict.ContainsKey(vkMessageUserId)) && (!userIdsToGet.Contains(vkMessageUserId)))
                                userIdsToGet.Add(vkMessageUserId);
                        }
                    }

                    vkPostsToProcess.Add(post);
                }
            }
        }