/* Методы из vk api advanced */ /* Метод проверяющий скрытые группы из листа string на принадлежность к миэту по участникам * Возвращает массив json с информацией о пользователях групп */ internal static JArray LocalMietGroupCheck(List <string> local_groups_ids) { List <List <string> > splited_local_groups_ids = new List <List <string> >(); for (int i = 0; i < local_groups_ids.Count; i += 64) { splited_local_groups_ids.Add(local_groups_ids.GetRange(i, Math.Min(64, local_groups_ids.Count - i))); } List <string> unique_ids = new List <string>(); JArray users_data = new JArray(); Parallel.ForEach(splited_local_groups_ids, part_local_group_id => { foreach (string local_group_id in part_local_group_id) { JArray group_data = VkApiAdvanced.LocalMietGroupCheck(local_group_id); if (group_data != null) { for (int i = 0; i < group_data.Count; i++) { string id = group_data[i]["id"].ToString(); if (!unique_ids.Contains(id)) { unique_ids.Add(id); lock (users_data) users_data.Add(group_data[i]); } } } } }); return(users_data); }
/* Метод позволяющий получить всех пользователей из групп в листе string * Возвращает лист int с id всех пользователей */ internal static JArray GroupsGetMembers(List <string> group_ids, int max_count = 0) { List <string> unique_ids = new List <string>(); JArray users_data = new JArray(); Parallel.ForEach(group_ids, group_id => { JArray group_users_data = VkApiAdvanced.GroupsGetMembers(group_id, max_count); for (int i = 0; i < group_users_data.Count; i++) { string id = group_users_data[i]["id"].ToString(); if (!unique_ids.Contains(id)) { unique_ids.Add(id); lock (users_data) users_data.Add(group_users_data[i]); } } }); return(users_data); }