public async Task <List <VkProfile> > SearchHints(string q, int count = 9, string filters = null, bool searchGlobal = false, string fields = null) { var parameters = new Dictionary <string, string>(); parameters.Add("q", q); if (count != 0) { parameters.Add("limit", count.ToString()); } if (!string.IsNullOrEmpty(filters)) { parameters.Add("filters", filters); } parameters.Add("search_global", searchGlobal ? "1" : "0"); if (!string.IsNullOrWhiteSpace(fields)) { parameters.Add("fields", fields); } _vkontakte.SignMethod(parameters); var response = await VkRequest.GetAsync(VkConst.MethodBase + "execute.searchHints", parameters); if (response["response"] != null) { return(new List <VkProfile>(from u in response["response"] select VkProfile.FromJson(u))); } return(new List <VkProfile>()); }
public async Task <VkNewsResponse> Get(string sourceIds = null, string filters = null, int count = 0, string startFrom = null) { var parameters = new Dictionary <string, string>(); if (!string.IsNullOrEmpty(sourceIds)) { parameters.Add("source_ids", sourceIds); } if (!string.IsNullOrEmpty(filters)) { parameters.Add("filters", filters); } if (count > 0) { parameters.Add("count", count.ToString()); } if (!string.IsNullOrEmpty(startFrom)) { parameters.Add("start_from", startFrom); } _vkontakte.SignMethod(parameters); var response = await VkRequest.GetAsync(VkConst.MethodBase + "newsfeed.get", parameters); if (response.SelectToken("response.items") != null) { var result = new VkNewsResponse((from n in response["response"]["items"] select VkNewsEntry.FromJson(n)).ToList()); if (response["response"]["profiles"] != null) { var users = (from n in response["response"]["profiles"] select VkProfile.FromJson(n)).ToList(); foreach (var entry in result.Items) { entry.Author = users.FirstOrDefault(u => u.Id == entry.SourceId); } } if (response["response"]["groups"] != null) { var groups = (from n in response["response"]["groups"] select VkGroup.FromJson(n)).ToList(); foreach (var entry in result.Items.Where(e => e.Author == null)) { entry.Author = groups.FirstOrDefault(g => g.Id == Math.Abs(entry.SourceId)); } } if (response["response"]["next_from"] != null) { result.NextFrom = response["response"]["next_from"].Value <string>(); } return(result); } return(null); }
public static VkConversation FromJson(JToken json, string apiVersion = null) { if (json == null) { throw new Exception("Json can't be null"); } var result = new VkConversation(); if (json["id"] != null) { result.Id = (long)json["id"]; } if (json["title"] != null) { result.Title = (string)json["title"]; } if (json["admin_id"] != null) { result.AdminId = (long)json["admin_id"]; } if (json["users"] != null) { result.Users = (from u in json["users"] select VkProfile.FromJson(u)).ToList(); } return(result); }
public async Task <VkItemsResponse <VkWallEntry> > Get(long ownerId, string filter, int count = 0, int offset = 0) { var parameters = new Dictionary <string, string>(); if (ownerId != 0) { parameters.Add("owner_id", ownerId.ToString()); } if (!string.IsNullOrEmpty(filter)) { parameters.Add("filter", filter); } if (count > 0) { parameters.Add("count", count.ToString()); } if (offset > 0) { parameters.Add("offset", offset.ToString()); } parameters.Add("extended", "1"); _vkontakte.SignMethod(parameters); var response = await VkRequest.GetAsync(VkConst.MethodBase + "wall.get", parameters); if (response.SelectToken("response.items") != null) { var result = new VkItemsResponse <VkWallEntry>(); result.Items = (from p in response["response"]["items"] where p.HasValues select VkWallEntry.FromJson(p)).ToList(); result.TotalCount = response["response"]["count"].Value <int>(); if (response["response"]["profiles"] != null) { var users = (from n in response["response"]["profiles"] select VkProfile.FromJson(n)).ToList(); foreach (var entry in result.Items) { entry.Author = users.FirstOrDefault(u => u.Id == entry.SourceId); } } if (response["response"]["groups"] != null) { var groups = (from n in response["response"]["groups"] select VkGroup.FromJson(n)).ToList(); foreach (var entry in result.Items.Where(e => e.Author == null)) { entry.Author = groups.FirstOrDefault(g => g.Id == Math.Abs(entry.SourceId)); } } return(result); } return(null); }
public async Task <VkItemsResponse <VkWallEntry> > GetPosts(int count = 0, int offset = 0, bool extended = true) { if (_vkontakte.AccessToken == null || string.IsNullOrEmpty(_vkontakte.AccessToken.Token) || _vkontakte.AccessToken.HasExpired) { throw new Exception("Access token is not valid."); } var parameters = new Dictionary <string, string>(); if (count > 0) { parameters.Add("count", count.ToString()); } if (offset > 0) { parameters.Add("offset", offset.ToString()); } if (extended) { parameters.Add("extended", "1"); } _vkontakte.SignMethod(parameters); var response = await new VkRequest(new Uri(VkConst.MethodBase + "fave.getPosts"), parameters).Execute(); VkErrorProcessor.ProcessError(response); if (response.SelectToken("response.items") != null) { var result = new VkItemsResponse <VkWallEntry>((from n in response["response"]["items"] select VkWallEntry.FromJson(n)).ToList()); if (response["response"]["profiles"] != null) { var users = (from n in response["response"]["profiles"] select VkProfile.FromJson(n)).ToList(); foreach (var entry in result.Items) { entry.Author = users.FirstOrDefault(u => u.Id == entry.SourceId); } } if (response["response"]["groups"] != null) { var groups = (from n in response["response"]["groups"] select VkGroup.FromJson(n)).ToList(); foreach (var entry in result.Items.Where(e => e.Author == null)) { entry.Author = groups.FirstOrDefault(g => g.Id == Math.Abs(entry.SourceId)); } } return(result); } return(null); }
internal static VkCatalogBlock FromJson(JToken json) { if (json == null) { throw new ArgumentException("Json can not be null."); } var result = new VkCatalogBlock(); result.Id = json["id"].Value <int>(); result.Title = json["title"].Value <string>(); result.Subtitle = json["subtitle"].Value <string>(); result.Type = json["type"].Value <string>(); result.Count = json["count"].Value <int>(); result.Source = json["source"].Value <string>(); if (json["audios"] != null) { result.Audios = json["audios"].Select(VkAudio.FromJson).ToList(); } if (json["thumbs"] != null) { result.Thumbs = json["thumbs"].ToObject <List <VkThumb> >(); } if (json["owners"] != null) { result.Owners = json["owners"].Select(x => { if (x["type"].Value <string>() != "profile") { return((VkProfileBase)VkGroup.FromJson(x)); } else { return((VkProfileBase)VkProfile.FromJson(x)); } }).ToList(); } if (json["playlists"] != null) { result.Playlists = json["playlists"].Select(VkPlaylist.FromJson).ToList(); } if (json["extended_playlists"] != null) { result.ExtendedPlaylists = json["extended_playlists"].Select(VkExtendedPlaylist.FromJson).ToList(); } return(result); }
public async Task <VkItemsResponse <VkWallEntry> > GetPosts(int count = 0, int offset = 0, bool extended = true) { var parameters = new Dictionary <string, string>(); if (count > 0) { parameters.Add("count", count.ToString()); } if (offset > 0) { parameters.Add("offset", offset.ToString()); } if (extended) { parameters.Add("extended", "1"); } _vkontakte.SignMethod(parameters); var response = await VkRequest.GetAsync(VkConst.MethodBase + "fave.getPosts", parameters); if (response.SelectToken("response.items") != null) { var result = new VkItemsResponse <VkWallEntry>((from n in response["response"]["items"] select VkWallEntry.FromJson(n)).ToList()); if (response["response"]["profiles"] != null) { var users = (from n in response["response"]["profiles"] select VkProfile.FromJson(n)).ToList(); foreach (var entry in result.Items) { entry.Author = users.FirstOrDefault(u => u.Id == entry.SourceId); } } if (response["response"]["groups"] != null) { var groups = (from n in response["response"]["groups"] select VkGroup.FromJson(n)).ToList(); foreach (var entry in result.Items.Where(e => e.Author == null)) { entry.Author = groups.FirstOrDefault(g => g.Id == Math.Abs(entry.SourceId)); } } return(result); } return(null); }
public async Task <List <VkProfile> > GetUsersAndGroupsById(IEnumerable <string> userIds, IEnumerable <string> groupIds = null, string fields = null, string nameCase = null) { var parameters = new Dictionary <string, string>(); if (userIds != null) { parameters.Add("user_ids", string.Join(",", userIds)); } if (groupIds != null) { parameters.Add("group_ids", string.Join(",", groupIds)); } if (!string.IsNullOrWhiteSpace(fields)) { parameters.Add("fields", fields); } if (!string.IsNullOrWhiteSpace(nameCase)) { parameters.Add("name_case", nameCase); } _vkontakte.SignMethod(parameters); var response = await VkRequest.GetAsync(VkConst.MethodBase + "execute.getUsersAndGroupsById", parameters); if (response["response"] != null) { var result = new List <VkProfile>(); var usersToken = response.SelectToken("response.users"); if (usersToken != null) { result.AddRange((from u in usersToken select VkProfile.FromJson(u)).ToList()); } var gruopsToken = response.SelectToken("response.groups"); if (gruopsToken != null) { result.AddRange((from u in gruopsToken select VkProfile.FromJson(u)).ToList()); } return(result); } return(new List <VkProfile>()); }
public async Task <IEnumerable <VkProfile> > Get(string uid, string fields, string nameCase, int count, int offset, bool sortByRating = true) { Dictionary <string, string> dictionary = new Dictionary <string, string>(); if (!string.IsNullOrEmpty(uid)) { dictionary.Add("uid", uid); } if (!string.IsNullOrWhiteSpace(fields)) { dictionary.Add("fields", fields); } if (!string.IsNullOrWhiteSpace(nameCase)) { dictionary.Add("name_case", nameCase); } if (count > 0) { dictionary.Add("count", count.ToString()); } if (offset > 0) { dictionary.Add("offset", offset.ToString()); } if (sortByRating) { dictionary.Add("order", "hints"); } dictionary.Add("access_token", Vkontakte.Instance.AccessToken.Token); JObject jObject = await new VkRequest(new Uri("https://api.vk.com/method/friends.get"), dictionary, "GET").Execute(); VkErrorProcessor.ProcessError(jObject); IEnumerable <VkProfile> result; if (jObject["response"].HasValues) { result = Enumerable.Select <JToken, VkProfile>(jObject["response"], (JToken u) => VkProfile.FromJson(u)); } else { result = null; } return(result); }