/// <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 } }); }
/// <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 } }; }
/// <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 } }); }
/// <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); } } }