Exemplo n.º 1
0
        public ReadOnlyCollection <Photo> GetProfile(long?ownerId = null, IEnumerable <long> photoIds = null, bool?rev = null, bool?extended = null, string feedType = null, DateTime?feed = null, bool?photoSizes = null, ulong?count = null, ulong?offset = null)
        {
            var parameters = new VkParameters
            {
                { "owner_id", ownerId },
                { "photo_ids", photoIds },
                { "rev", rev },
                { "extended", extended },
                { "feed_type", feedType },
                { "feed", feed },
                { "photo_sizes", photoSizes },
                { "count", count },
                { "offset", offset }
            };

            VkResponseArray response = _vk.Call("photos.getProfile", parameters);

            return(response.ToReadOnlyCollectionOf <Photo>(x => x));
        }
Exemplo n.º 2
0
        public ReadOnlyCollection <Audio> GetRecommendations(long?userId = null, int?count = null, int?offset = null, bool shuffle = true, string targetAudio = "")
        {
            VkErrors.ThrowIfNumberIsNegative(() => userId);
            VkErrors.ThrowIfNumberIsNegative(() => offset);
            VkErrors.ThrowIfNumberIsNegative(() => count);

            var parameters = new VkParameters
            {
                { "target_audio", targetAudio },
                { "user_id", userId },
                { "offset", offset },
                { "count", count },
                { "shuffle", shuffle }
            };

            VkResponseArray response = _vk.Call("audio.getRecommendations", parameters);

            return(response.ToReadOnlyCollectionOf <Audio>(x => x));
        }
Exemplo n.º 3
0
        public ReadOnlyCollection <Video> GetUserVideos(long userId, int?count = null, int?offset = null)
        {
            // throw new NotImplementedException("Метод некорректно работает на самом сервере вконтакте");

            VkErrors.ThrowIfNumberIsNegative(() => userId);
            VkErrors.ThrowIfNumberIsNegative(() => count);
            VkErrors.ThrowIfNumberIsNegative(() => offset);

            var parameters = new VkParameters
            {
                { "user_id", userId },
                { "count", count },
                { "offset", offset }
            };

            VkResponseArray response = _vk.Call("video.getUserVideos", parameters);

            return(response.ToReadOnlyCollectionOf <Video>(x => x));
        }
        public ReadOnlyCollection <long> GetMembers(long gid, out int totalCount, int?count = null, int?offset = null, GroupsSort sort = null)
        {
            var parameters = new VkParameters {
                { "gid", gid }, { "offset", offset }, { "sort", sort }
            };

            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 <long>(x => x));
        }
Exemplo n.º 5
0
        public async Task <ReadOnlyCollection <User> > GetAsync([NotNull] IEnumerable <string> screenNames, ProfileFields fields = null, NameCase nameCase = null)
        {
            if (screenNames == null)
            {
                throw new ArgumentNullException("screenNames");
            }

            var parameters = new VkParameters
            {
                { "user_ids", screenNames },
                { "fields", fields },
                { "name_case", nameCase },
                { "v", _vk.ApiVersion }
            };

            VkResponseArray response = await _vk.CallAsync("users.get", parameters);

            return(response.ToReadOnlyCollectionOf <User>(x => x));
        }
Exemplo n.º 6
0
        /// <summary>
        /// Возвращает список рекомендуемых аудиозаписей на основе списка воспроизведения
        /// заданного пользователя или на основе
        /// одной выбранной аудиозаписи.
        /// </summary>
        /// <param name="targetAudio">
        /// Идентификатор аудиозаписи, на основе которой будет строиться список
        /// рекомендаций.
        /// Используется вместо параметра uid. Идентификатор представляет из себя
        /// разделённые знаком подчеркивания id
        /// пользователя, которому принадлежит аудиозапись, и id самой аудиозаписи. Если
        /// аудиозапись принадлежит сообществу, то
        /// в качестве первого параметра используется -id сообщества. строка (Строка).
        /// </param>
        /// <param name="userId">
        /// Идентификатор пользователя для получения списка рекомендаций на основе его
        /// набора аудиозаписей (по
        /// умолчанию — идентификатор текущего пользователя). положительное число
        /// (Положительное число).
        /// </param>
        /// <param name="offset">
        /// Смещение относительно первой найденной аудиозаписи для выборки определенного
        /// подмножества.
        /// положительное число (Положительное число).
        /// </param>
        /// <param name="count">
        /// Количество возвращаемых аудиозаписей. положительное число, максимальное
        /// значение 1000, по умолчанию
        /// 100 (Положительное число, максимальное значение 1000, по умолчанию 100).
        /// </param>
        /// <param name="shuffle">
        /// 1 — включен случайный порядок. флаг, может принимать значения 1 или 0 (Флаг,
        /// может принимать
        /// значения 1 или 0).
        /// </param>
        /// <returns>
        /// После успешного выполнения возвращает список объектов audio. Обратите внимание,
        /// что ссылки на аудиозаписи привязаны
        /// к ip адресу.
        /// </returns>
        /// <remarks>
        /// Страница документации ВКонтакте http://vk.com/dev/audio.getRecommendations
        /// </remarks>
        public ReadOnlyCollection <Audio> GetRecommendations(long?userId          = null
                                                             , uint?count         = null
                                                             , uint?offset        = null
                                                             , bool shuffle       = true
                                                             , string targetAudio = "")
        {
            var parameters = new VkParameters
            {
                { "target_audio", targetAudio }
                , { "user_id", userId }
                , { "offset", offset }
                , { "count", count }
                , { "shuffle", shuffle }
            };

            VkResponseArray response = _vk.Call(methodName: "audio.getRecommendations", parameters: parameters);

            return(response.ToReadOnlyCollectionOf <Audio>(selector: x => x));
        }
Exemplo n.º 7
0
        public ReadOnlyCollection <Group> GetSubscriptions(long?userId = null, int?count = null, int?offset = null)
        {
            VkErrors.ThrowIfNumberIsNegative(() => userId);
            VkErrors.ThrowIfNumberIsNegative(() => count);
            VkErrors.ThrowIfNumberIsNegative(() => offset);

            var parameters = new VkParameters
            {
                { "user_id", userId },
                { "extended", true },
                { "offset", offset },
                { "count", count },
                { "v", _vk.ApiVersion }
            };

            VkResponseArray response = _vk.Call("users.getSubscriptions", parameters);

            return(response.ToReadOnlyCollectionOf <Group>(x => x));
        }
Exemplo n.º 8
0
        /// <summary>
        /// Разобрать из json.
        /// </summary>
        /// <param name="response">Ответ сервера.</param>
        /// <returns></returns>
        public static LongPollHistoryResponse FromJson(VkResponse response)
        {
            var fromJson = new LongPollHistoryResponse
            {
                UnreadMessages = response["messages"]["count"],
                Messages       = response["messages"]["items"].ToReadOnlyCollectionOf <Message>(x => x),
                Profiles       = response["profiles"].ToReadOnlyCollectionOf <User>(x => x),
                NewPts         = response["new_pts"],
                More           = response["more"]
            };
            VkResponseArray historys = response["history"];

            foreach (var history in historys)
            {
                VkResponseArray item = history;
                fromJson.History.Add(new ReadOnlyCollection <long>(item.ToReadOnlyCollectionOf <long>(x => x)));
            }
            return(fromJson);
        }
Exemplo n.º 9
0
        public ReadOnlyCollection <Post> GetById(IEnumerable <string> posts)
        {
            if (posts == null)
            {
                throw new ArgumentNullException("posts");
            }

            if (!posts.Any())
            {
                throw new ArgumentException("Posts collection was empty.", "posts");
            }

            var parameters = new VkParameters {
                { "posts", posts }
            };

            VkResponseArray response = _vk.Call("wall.getById", parameters);

            return(response.ToReadOnlyCollectionOf <Post>(x => x));
        }
Exemplo n.º 10
0
        /// <summary>
        /// Разобрать из json.
        /// </summary>
        /// <param name="response">Ответ сервера.</param>
        /// <returns></returns>
        public static NewsUserListItem FromJson(VkResponse response)
        {
            var newsUserListItem = new NewsUserListItem
            {
                Id        = response["id"],
                Title     = response["title"],
                NoReposts = response["no_reposts"]
            };
            VkResponseArray sourceIds = response["source_ids"];

            if (sourceIds.Count == 0)
            {
                newsUserListItem.SourceIds = new List <long>();
            }
            else
            {
                newsUserListItem.SourceIds = sourceIds.ToReadOnlyCollectionOf <long>(x => x);
            }
            return(newsUserListItem);
        }
Exemplo n.º 11
0
        public ReadOnlyCollection <Video> Get(long?ownerId = null, long?albumId = null, VideoWidth width = VideoWidth.Medium160, int?count = null, int?offset = null, bool extended = false)
        {
            VkErrors.ThrowIfNumberIsNegative(() => albumId);
            VkErrors.ThrowIfNumberIsNegative(() => count);
            VkErrors.ThrowIfNumberIsNegative(() => offset);

            var parameters = new VkParameters
            {
                { "owner_id", ownerId },
                { "album_id", albumId },
                { "width", width },
                { "count", count },
                { "offset", offset },
                { "extended", extended }
            };

            VkResponseArray response = _vk.Call("video.get", parameters);

            return(response.ToReadOnlyCollectionOf <Video>(x => x));
        }
Exemplo n.º 12
0
        public ReadOnlyCollection <long> GetFriendsList(out int totalCount, AppRequestType type, int count = 20, int offset = 0)
        {
            var parameters = new VkParameters
            {
                { "extended", false },
                { "offset", offset },
                { "type", type }
            };

            if (count <= 5000)
            {
                parameters.Add("count", count);
            }
            var result = _vk.Call("apps.getFriendsList", parameters);

            totalCount = result["count"];
            VkResponseArray items = result["items"];

            return(items.ToReadOnlyCollectionOf <long>(x => x));
        }
Exemplo n.º 13
0
        public ReadOnlyCollection <City> GetCities(int countryId, int?regionId = null, string query = "", bool?needAll = false, int?count = null, int?offset = null)
        {
            VkErrors.ThrowIfNumberIsNegative(() => countryId);
            VkErrors.ThrowIfNumberIsNegative(() => regionId);
            VkErrors.ThrowIfNumberIsNegative(() => count);
            VkErrors.ThrowIfNumberIsNegative(() => offset);

            var parameters = new VkParameters
            {
                { "country_id", countryId },
                { "region_id", regionId },
                { "q", query },
                { "need_all", needAll },
                { "offset", offset },
                { "count", count }
            };

            VkResponseArray response = _vk.Call("database.getCities", parameters, true);

            return(response.ToReadOnlyCollectionOf <City>(x => x));
        }
Exemplo n.º 14
0
        public ReadOnlyCollection <User> Get(IEnumerable <long> userIds
                                             , ProfileFields fields   = null
                                             , NameCase nameCase      = null
                                             , bool skipAuthorization = false)
        {
            if (userIds == null)
            {
                throw new ArgumentNullException(paramName: nameof(userIds));
            }

            var parameters = new VkParameters
            {
                { "fields", fields }
                , { "name_case", nameCase }
                , { "user_ids", userIds }
            };

            VkResponseArray response = _vk.Call(methodName: "users.get", parameters: parameters, skipAuthorization: skipAuthorization);

            return(response.ToReadOnlyCollectionOf <User>(selector: x => x));
        }
Exemplo n.º 15
0
        public ReadOnlyCollection <Document> Get(out int totalCount, int?count = null, int?offset = null, long?ownerId = null, DocFilter?filter = null)
        {
            VkErrors.ThrowIfNumberIsNegative(() => count);
            VkErrors.ThrowIfNumberIsNegative(() => offset);

            var parameters = new VkParameters
            {
                { "count", count },
                { "offset", offset },
                { "owner_id", ownerId },
                { "type", filter }
            };

            var response = _vk.Call("docs.get", parameters);

            totalCount = response["count"];

            VkResponseArray items = response["items"];

            return(items.ToReadOnlyCollectionOf <Document>(r => r));
        }
Exemplo n.º 16
0
        public ReadOnlyCollection <Post> Get(long ownerId, out int totalCount, int?count = null, int?offset = null, WallFilter filter = WallFilter.All)
        {
            VkErrors.ThrowIfNumberIsNegative(() => count);
            VkErrors.ThrowIfNumberIsNegative(() => offset);
            if (filter == WallFilter.Suggests && ownerId >= 0)
            {
                throw new ArgumentException("OwnerID must be negative in case filter equal to Suggests", "ownerId");
            }

            var parameters = new VkParameters {
                { "owner_id", ownerId }, { "count", count }, { "offset", offset }, { "filter", filter.ToString().ToLowerInvariant() }
            };

            VkResponse response = _vk.Call("wall.get", parameters);

            totalCount = response["count"];

            VkResponseArray items = response["items"];

            return(items.ToReadOnlyCollectionOf <Post>(r => r));
        }
Exemplo n.º 17
0
        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));
        }
Exemplo n.º 18
0
        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));
        }
Exemplo n.º 19
0
        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));
        }
Exemplo n.º 20
0
        /// <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 histories = response[key : "history"];

            foreach (var history in histories)
            {
                VkResponseArray item = history;
                fromJson.History.Add(item: new ReadOnlyCollection <long>(list: item.ToReadOnlyCollectionOf <long>(selector: x => x)));
            }

            return(fromJson);
        }
Exemplo n.º 21
0
        public ReadOnlyCollection <long> GetAppUsers()
        {
            VkResponseArray response = _vk.Call("friends.getAppUsers", VkParameters.Empty);

            return(response.ToReadOnlyCollectionOf <long>(x => x));
        }
Exemplo n.º 22
0
        public ReadOnlyCollection <FriendList> GetLists()
        {
            VkResponseArray response = _vk.Call("friends.getLists", VkParameters.Empty);

            return(response.ToReadOnlyCollectionOf <FriendList>(x => x));
        }
Exemplo n.º 23
0
        public ReadOnlyCollection <long> GetMutual(FriendsGetMutualParams @params)
        {
            VkResponseArray response = _vk.Call("friends.getMutual", @params);

            return(response.ToReadOnlyCollectionOf <long>(x => x));
        }
Exemplo n.º 24
0
        /// <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));
        }
Exemplo n.º 25
0
        public ReadOnlyCollection <long> GetList(LikesGetListParams @params)
        {
            VkResponseArray response = _vk.Call("likes.getList", @params);

            return(response.ToReadOnlyCollectionOf <long>(x => x));
        }
Exemplo n.º 26
0
        /// <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));
        }
Exemplo n.º 27
0
        public ReadOnlyCollection <long> GetAppUsers()
        {
            VkResponseArray response = _vk.Call(methodName: "friends.getAppUsers", parameters: VkParameters.Empty);

            return(response.ToReadOnlyCollectionOf <long>(selector: x => x));
        }
Exemplo n.º 28
0
        /// <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));
        }
Exemplo n.º 29
0
        public ReadOnlyCollection <Photo> Save(PhotoSaveParams @params)
        {
            VkResponseArray response = _vk.Call("photos.save", @params);

            return(response.ToReadOnlyCollectionOf <Photo>(x => x));
        }