/// <summary> /// Разобрать из json. /// </summary> /// <param name="response"> Ответ сервера. </param> /// <returns> </returns> public static NewsUserListItem FromJson(VkResponse response) { var newsUserListItem = new NewsUserListItem { Id = response[key : "id"] , Title = response[key : "title"] , NoReposts = response[key : "no_reposts"] }; VkResponseArray sourceIds = response[key : "source_ids"]; if (sourceIds.Count == 0) { newsUserListItem.SourceIds = new List <long>(); } else { newsUserListItem.SourceIds = sourceIds.ToReadOnlyCollectionOf <long>(selector: x => x); } return(newsUserListItem); }
/// <summary> /// Разобрать из json. /// </summary> /// <param name="response"> Ответ сервера. </param> /// <returns> </returns> public static LongPollHistoryResponse FromJson(VkResponse response) { var fromJson = new LongPollHistoryResponse { UnreadMessages = response[key : "messages"][key : "count"] , Messages = response[key : "messages"][key : "items"].ToReadOnlyCollectionOf <Message>(selector : x => x) , Profiles = response[key : "profiles"].ToReadOnlyCollectionOf <User>(selector : x => x) , Groups = response[key : "groups"].ToReadOnlyCollectionOf <Group>(selector : x => x) , NewPts = response[key : "new_pts"] , More = response[key : "more"] }; VkResponseArray historys = response[key : "history"]; foreach (var history in historys) { VkResponseArray item = history; fromJson.History.Add(item: new ReadOnlyCollection <long>(list: item.ToReadOnlyCollectionOf <long>(selector: x => x))); } return(fromJson); }
public ReadOnlyCollection <User> GetList(LikeObjectType type, long?ownerId = null, long?itemId = null, string pageUrl = null, string filter = null, bool?friendsOnly = null, bool?extended = null, long?offset = null, int?count = null) { VkErrors.ThrowIfNumberIsNegative(() => offset); VkErrors.ThrowIfNumberIsNegative(() => count); var parameters = new VkParameters { { "type", type }, { "owner_id", ownerId }, { "item_id", itemId }, { "page_url", pageUrl }, { "filter", filter }, { "friends_only", friendsOnly }, { "extended", extended }, { "offset", offset }, { "count", count } }; VkResponseArray response = _vk.Call("likes.getList", parameters); return(response.ToReadOnlyCollectionOf <User>(x => x)); }
public ReadOnlyCollection <Group> Search([NotNull] string query, out int totalCount, uint?offset = null, uint?count = null, GroupSort sort = GroupSort.Normal, GroupType type = null, uint?countryId = null, uint?cityId = null, bool future = false) { VkErrors.ThrowIfNullOrEmpty(() => query); var parameters = new VkParameters { { "q", query }, { "offset", offset }, { "count", count }, { "future", future }, { "sort", sort }, { "type", type }, { "country_id", countryId }, { "city_id", cityId } }; VkResponseArray response = _vk.Call("groups.search", parameters); totalCount = response[0]; return(response.Skip(1).ToReadOnlyCollectionOf <Group>(r => r)); }
public ReadOnlyCollection <User> Search([NotNull] string query, out int itemsCount, ProfileFields fields = null, int count = 20, int offset = 0) { if (string.IsNullOrEmpty(query)) { throw new ArgumentException("Query can not be null or empty."); } var parameters = new VkParameters { { "q", query }, { "fields", fields }, { "count", count } }; if (offset > 0) { parameters.Add("offset", offset); } VkResponseArray response = _vk.Call("users.search", parameters); itemsCount = response[0]; return(response.Skip(1).ToReadOnlyCollectionOf <User>(r => r)); }
/// <summary>Разобрать из json.</summary> /// <param name="response">Ответ сервера.</param> /// <returns></returns> public static Update FromJson(VkResponseArray response) { var update = new Update(); var code = (int) response.First(); switch (code) { case 4: update.Type = typeof (NewMessage); update.NewMessage = NewMessage.FromJson(response); break; case 5: update.Type = typeof (EditMessage); update.EditMessage = EditMessage.FromJson(response); break; case 6: update.Type = typeof (ReadAllIncomingMessages); update.ReadAllIncomingMessages = ReadAllIncomingMessages.FromJson(response); break; case 7: update.Type = typeof (ReadAllOutcomingMessages); update.ReadAllOutcomingMessages = ReadAllOutcomingMessages.FromJson(response); break; case 8: update.Type = typeof (FriendBecameOnline); update.FriendBecameOnline = FriendBecameOnline.FromJson(response); break; case 9: update.Type = typeof (FriendBecameOffline); update.FriendBecameOffline = FriendBecameOffline.FromJson(response); break; case 61: update.Type = typeof (UserTypingInPrivateDialog); update.UserTypingInPrivateDialog = UserTypingInPrivateDialog.FromJson(response); break; default: throw new InvalidParameterException($"The type '{(object) code}' of event is not defined."); } return update; }
public ReadOnlyCollection <NewsSearchResult> Search(SearchParams @params) { var parameters = new VkParameters { { "q", @params.Query }, { "extended", @params.Extended }, { "latitude", @params.Latitude }, { "longitude", @params.Longitude }, { "start_time", @params.StartTime }, { "end_time", @params.EndTime }, { "start_from", @params.StartFrom }, { "fields", @params.Fields } }; if (@params.Count <= 200) { parameters.Add("count", @params.Count); } VkResponseArray response = _vk.Call("newsfeed.search", parameters); return(response.ToReadOnlyCollectionOf <NewsSearchResult>(x => x)); }
public ReadOnlyCollection <Video> Search(string query, VideoSort sort, bool isHd = false, bool isAdult = false, VideoFilters filters = null, bool isSearchOwn = false, int?count = null, int?offset = null) { VkErrors.ThrowIfNullOrEmpty(() => query); VkErrors.ThrowIfNumberIsNegative(() => count); VkErrors.ThrowIfNumberIsNegative(() => offset); var parameters = new VkParameters { { "q", query }, { "sort", sort }, { "hd", isHd }, { "adult", isAdult }, { "filters", filters }, { "search_own", isSearchOwn }, { "offset", offset }, { "count", count } }; VkResponseArray response = _vk.Call("video.search", parameters); return(response.ToReadOnlyCollectionOf <Video>(x => x)); }
private ReadOnlyCollection <Audio> InternalGet( string paramId, long id, out User user, long?albumId = null, IEnumerable <ulong> aids = null, bool?needUser = null, uint?count = null, uint?offset = null) { // todo Порефакторить метод var parameters = new VkParameters { { paramId, id }, { "album_id", albumId }, { "aids", aids }, { "need_user", needUser }, { "offset", offset } }; if (count <= 6000) { parameters.Add("count", count); } VkResponseArray response = _vk.Call("audio.get", parameters); IEnumerable <VkResponse> items = response.ToList(); user = null; if (needUser.HasValue && needUser.Value && items.Any()) { user = items.First(); items = items.Skip(1); } return(items.ToReadOnlyCollectionOf <Audio>(r => r)); }
/// <summary> /// Разобрать из json. /// </summary> /// <param name="response"> Ответ сервера. </param> /// <returns> </returns> public static BotsLongPollHistoryResponse FromJson(VkResponse response) { if (response.ContainsKey("failed")) { int code = response["failed"]; if (code == 1) { throw new BotsLongPollOutdateException(response["ts"]); } if (code == 2) { throw new BotsLongPollKeyExpiredException(); } if (code == 3) { throw new BotsLongPollInfoLostException(); } } var fromJson = new BotsLongPollHistoryResponse { Ts = response["ts"], }; VkResponseArray updates = response[key : "updates"]; var updateList = new List <GroupUpdate.GroupUpdate>(); foreach (var update in updates) { updateList.Add(GroupUpdate.GroupUpdate.FromJson(update)); } fromJson.Updates = updateList; return(fromJson); }
public ReadOnlyCollection <Comment> GetComments( long ownerId, long postId, out int totalCount, CommentsSort sort = null, bool needLikes = false, int?count = null, int?offset = null, int previewLength = 0) { VkErrors.ThrowIfNumberIsNegative(() => postId); VkErrors.ThrowIfNumberIsNegative(() => offset); VkErrors.ThrowIfNumberIsNegative(() => count); VkErrors.ThrowIfNumberIsNegative(() => previewLength); var parameters = new VkParameters { { "owner_id", ownerId }, { "post_id", postId }, { "need_likes", needLikes }, { "count", count }, { "offset", offset }, { "preview_length", previewLength }, { "v", _vk.ApiVersion } }; if (sort != null) { parameters.Add("sort", sort.ToString().ToLowerInvariant()); } VkResponseArray response = _vk.Call("wall.getComments", parameters); totalCount = response[0]; return(response.Skip(1).ToReadOnlyCollectionOf <Comment>(c => c)); }
public SearchDialogsResponse SearchDialogs([NotNull] string query, ProfileFields fields = null, uint limit = 20) { if (string.IsNullOrEmpty(query)) { throw new ArgumentException("Query can not be null or empty.", "query"); } var parameters = new VkParameters { { "q", query }, { "fields", fields }, { "limit", limit } }; VkResponseArray response = _vk.Call("messages.searchDialogs", parameters); var result = new SearchDialogsResponse(); foreach (var record in response) { string type = record["type"]; switch (type) { case "profile": result.Users.Add(record); break; case "chat": result.Chats.Add(record); break; case "email": // TODO: Add email support. continue; } } return(result); }
/// <summary> /// Разобрать из json. /// </summary> /// <param name="response">Ответ сервера.</param> /// <returns></returns> public static NewsSuggestions FromJson(VkResponse response) { var newsSuggestions = new NewsSuggestions { Users = new List <User>(), Groups = new List <Group>() }; VkResponseArray result = response; foreach (var item in result) { switch (item["type"].ToString()) { case "page": case "group": { Group @group = item; newsSuggestions.Groups.Add(@group); } break; case "profile": { User user = item; newsSuggestions.Users.Add(user); } break; default: { throw new System.Exception(string.Format("Типа '{0}' не существует. Пожалуйста заведите задачу на сайте проекта: https://github.com/vknet/vk/issues", item["type"])); } } } return(newsSuggestions); }
public ReadOnlyCollection <ulong> GetMembers(string gid, out int totalCount, uint?count = null, uint?offset = null, GroupsSort sort = null, GroupsFields fields = null, GroupsFilters filters = null) { var parameters = new VkParameters { { "gid", gid }, { "offset", offset }, { "sort", sort }, { "fields", fields }, { "filter", filters } }; if (count.HasValue && count.Value > 0 && count.Value < 1000) { parameters.Add("count", count); } var response = _vk.Call("groups.getMembers", parameters, true); totalCount = response["count"]; VkResponseArray users = response["users"]; return(users.ToReadOnlyCollectionOf <ulong>(x => x)); }
public ReadOnlyCollection <Message> GetHistory( long id, bool isChat, out int totalCount, int?offset = null, int?count = null, bool?inReverse = null, long?startMessageId = null) { var parameters = new VkParameters { { isChat ? "chat_id" : "uid", id }, { "offset", offset }, { "count", count }, { "start_mid", startMessageId }, { "rev", inReverse } }; VkResponseArray response = _vk.Call("messages.getHistory", parameters); totalCount = response[0]; return(response.Skip(1).ToReadOnlyCollectionOf <Message>(r => r)); }
/// <summary> /// Возвращает результаты поиска по статусам. Новости возвращаются в порядке от более новых к более старым. /// </summary> /// <param name="params">Параметры запроса.</param> /// <returns> /// Возвращает результат выполнения метода. /// </returns> /// <remarks> /// Страница документации ВКонтакте http://vk.com/dev/newsfeed.search /// </remarks> public ReadOnlyCollection <NewsSearchResult> Search(NewsFeedSearchParams @params) { VkResponseArray response = _vk.Call("newsfeed.search", @params); return(response.ToReadOnlyCollectionOf <NewsSearchResult>(x => x)); }
public ReadOnlyCollection <long> GetMutual(FriendsGetMutualParams @params) { VkResponseArray response = _vk.Call("friends.getMutual", @params); return(response.ToReadOnlyCollectionOf <long>(x => x)); }
/// <summary> /// Возвращает результаты поиска по статусам. Новости возвращаются в порядке от /// более новых к более старым. /// </summary> /// <param name="params"> Параметры запроса. </param> /// <returns> /// Возвращает результат выполнения метода. /// </returns> /// <remarks> /// Страница документации ВКонтакте http://vk.com/dev/newsfeed.search /// </remarks> public ReadOnlyCollection <NewsSearchResult> Search(NewsFeedSearchParams @params) { VkResponseArray response = _vk.Call(methodName: "newsfeed.search", parameters: @params); return(response.ToReadOnlyCollectionOf <NewsSearchResult>(selector: x => x)); }
public ReadOnlyCollection <long> GetList(LikesGetListParams @params) { VkResponseArray response = _vk.Call("likes.getList", @params); return(response.ToReadOnlyCollectionOf <long>(x => x)); }
public ReadOnlyCollection <long> GetAppUsers() { VkResponseArray response = _vk.Call(methodName: "friends.getAppUsers", parameters: VkParameters.Empty); return(response.ToReadOnlyCollectionOf <long>(selector: x => x)); }
/// <summary> /// Возвращает список идентификаторов общих друзей между парой пользователей. /// </summary> /// <param name="params"> Входные параметры выборки. </param> /// <returns> /// После успешного выполнения возвращает список идентификаторов (id) общих друзей /// между пользователями с /// идентификаторами source_uid и target_uid. /// </returns> /// <remarks> /// Страница документации ВКонтакте http://vk.com/dev/friends.getMutual /// </remarks> public ReadOnlyCollection <long> GetMutual(FriendsGetMutualParams @params) { VkResponseArray response = _vk.Call(methodName: "friends.getMutual", parameters: @params); return(response.ToReadOnlyCollectionOf <long>(selector: x => x)); }
public ReadOnlyCollection <FriendList> GetLists() { VkResponseArray response = _vk.Call("friends.getLists", VkParameters.Empty); return(response.ToReadOnlyCollectionOf <FriendList>(x => x)); }
public ReadOnlyCollection <long> GetAppUsers() { VkResponseArray response = _vk.Call("friends.getAppUsers", VkParameters.Empty); return(response.ToReadOnlyCollectionOf <long>(x => x)); }
public ReadOnlyCollection <Photo> Save(PhotoSaveParams @params) { VkResponseArray response = _vk.Call("photos.save", @params); return(response.ToReadOnlyCollectionOf <Photo>(x => x)); }