Параметры метода groups.get
예제 #1
0
		/// <summary>
		/// Привести к типу VkParameters.
		/// </summary>
		/// <param name="p">Параметры.</param>
		/// <returns></returns>
		internal static VkParameters ToVkParameters(GroupsGetParams p)
		{
			var parameters = new VkParameters
			{
				{ "user_id", p.UserId },
				{ "extended", p.Extended },
				{ "filter", p.Filter },
				{ "fields", p.Fields },
				{ "offset", p.Offset },
				{ "count", p.Count }
			};

			return parameters;
		}
예제 #2
0
		/// <summary>
		/// Привести к типу VkParameters.
		/// </summary>
		/// <param name="p">Параметры.</param>
		/// <returns></returns>
		public static VkParameters ToVkParameters(GroupsGetParams p)
		{
			var parameters = new VkParameters
			{
				{ "user_id", p.UserId },
				{ "extended", p.Extended },
				{ "filter", p.Filter },
				{ "fields", p.Fields },
				{ "offset", p.Offset },
				{ "count", p.Count }
			};

			return parameters;
		}
예제 #3
0
		public ReadOnlyCollection<Group> Get(long uid, bool extended = false, GroupsFilters filters = null, GroupsFields fields = null, uint offset = 0, uint count = 1000)
		{
			VkErrors.ThrowIfNumberIsNegative(() => uid);
			var parameters = new GroupsGetParams
			{
				Count = count,
				Extended = extended,
				Fields = fields,
				Filter = filters,
				Offset = offset,
				UserId = uid
			};

			return Get(parameters).ToReadOnlyCollection();
		}
예제 #4
0
        // Получение постов в группах и составление списка 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);
                }
            }
        }