Esempio n. 1
0
        public ReadOnlyCollection <long> GetList(LikesGetListParams @params, bool skipAuthorization = true)
        {
            @params.Extended = false;
            VkResponseArray response = _vk.Call("likes.getList", @params, skipAuthorization);

            return(response.ToReadOnlyCollectionOf <long>(x => x));
        }
Esempio n. 2
0
        public List <long> GetUsersWhoLiked(long ownerId, long itemId, LikeObjectType type, VkApi api)
        {
            uint? step   = 1000;
            uint? offset = 0;
            ulong totalCount;
            var   result = new List <long>();

            do
            {
                var param = new LikesGetListParams
                {
                    OwnerId  = ownerId,
                    Count    = step,
                    Type     = type,
                    ItemId   = itemId,
                    Extended = true,
                    Offset   = offset
                };
                var likerChunk = api.Likes.GetList(param);//5000 тыщ запросов в день

                offset    += step;
                totalCount = likerChunk.TotalCount;
                result.AddRange(likerChunk.ToList());
            } while (offset < totalCount);

            System.Threading.Thread.Sleep(TimeSpan.FromSeconds(.10));
            return(result);
        }
Esempio n. 3
0
        /// <summary>
        /// Получает список идентификаторов пользователей или сообществ, которые добавили
        /// заданный объект в свой список Мне
        /// нравится.
        /// </summary>
        /// <param name="params"> Параметры запроса. </param>
        /// <param name="skipAuthorization"> Если <c> true </c>, то пропустить авторизацию </param>
        /// <returns>
        /// Возвращает список идентификаторов пользователей или сообществ, которые добавили
        /// заданный объект в свой список Мне
        /// нравится.
        /// </returns>
        /// <remarks>
        /// Страница документации ВКонтакте http://vk.com/dev/likes.getList
        /// </remarks>
        public VkCollection <long> GetList(LikesGetListParams @params, bool skipAuthorization = false)
        {
            @params.Extended = false;

            return(_vk.Call(methodName: "likes.getList", parameters: @params, skipAuthorization: skipAuthorization)
                   .ToVkCollectionOf <long>(selector: x => x));
        }
Esempio n. 4
0
        void SaveLikesFromPostToFile(long GroupID, long PostID, FileStream fstream)
        {
            int AllLikesCount = 0;

            WallGetParams wallParam = new WallGetParams();

            wallParam.OwnerId = GroupID;
            wallParam.Count   = maxPostFromVkDatabase;


            WallGetObject wallObjects = vkApi.Wall.Get(wallParam);



            foreach (var post_it in wallObjects.WallPosts)
            {
                AllLikesCount = post_it.Likes.Count;
                if (post_it.Id != PostID)
                {
                    continue;
                }

                LikesGetListParams likeParams = new LikesGetListParams();
                likeParams.Type     = LikeObjectType.Post;
                likeParams.ItemId   = PostID;
                likeParams.Extended = true;
                likeParams.OwnerId  = GroupID;
                likeParams.Count    = 1000;

                uint i = 0;
                while (AllLikesCount > 0) // выбираем по 1000 id(максимум)
                {
                    VkCollection <long> likes = vkApi.Likes.GetList(likeParams);
                    foreach (var itLike in likes)
                    {
                        PrintFoFile(fstream, itLike.ToString()); //запись каждого id  в файл
                    }
                    AllLikesCount -= (int)maxSingleOffser;
                    i++;
                    likeParams.Offset = i * maxSingleOffser; // увеличиваем каждый раз смещение
                    Thread.Sleep(300);                       // чтобы избежать "Too many requests per second
                }


                Console.WriteLine(post_it.Likes.Count);
                Console.WriteLine(AllLikesCount);
                ;
            }
        }
Esempio n. 5
0
        SortedSet <long> SaveUsersIDFromPostToList(long GroupID, long PostID)
        {
            SortedSet <long> UsersID = new SortedSet <long>();
            int AllLikesCount        = 0;

            WallGetParams wallParam = new WallGetParams();

            wallParam.OwnerId = GroupID;
            wallParam.Count   = maxPostFromVkDatabase;


            WallGetObject wallObjects = vkApi.Wall.Get(wallParam);



            foreach (var post_it in wallObjects.WallPosts)
            {
                AllLikesCount = post_it.Likes.Count;
                if (post_it.Id != PostID)
                {
                    continue;
                }

                LikesGetListParams likeParams = new LikesGetListParams();
                likeParams.Type     = LikeObjectType.Post;
                likeParams.ItemId   = PostID;
                likeParams.Extended = true;
                likeParams.OwnerId  = GroupID;
                likeParams.Count    = 1000;

                uint i = 0;
                while (AllLikesCount > 0) // выбираем по 1000 id(максимум)
                {
                    VkCollection <long> likes = vkApi.Likes.GetList(likeParams);

                    foreach (var itLike in likes)
                    {
                        UsersID.Add(itLike);
                    }
                    AllLikesCount -= (int)maxSingleOffser;
                    i++;
                    likeParams.Offset = i * maxSingleOffser; // увеличиваем каждый раз смещение
                    Thread.Sleep(300);                       // чтобы избежать "Too many requests per second
                }
            }
            return(UsersID);
        }
Esempio n. 6
0
 public UserOrGroup GetListEx(LikesGetListParams @params)
 {
     @params.Extended = true;
     return(_vk.Call("likes.getList", @params, true));
 }
Esempio n. 7
0
 public VkCollection <long> GetList(LikesGetListParams @params, bool skipAuthorization = true)
 {
     @params.Extended = false;
     return(_vk.Call("likes.getList", @params, skipAuthorization).ToVkCollectionOf <long>(x => x));
 }
 /// <inheritdoc />
 public Task <UserOrGroup> GetListExAsync(LikesGetListParams @params)
 {
     return(TypeHelper.TryInvokeMethodAsync(func: () => GetListEx(@params: @params)));
 }
 /// <inheritdoc />
 public Task <VkCollection <long> > GetListAsync(LikesGetListParams @params, bool skipAuthorization = false)
 {
     return(TypeHelper.TryInvokeMethodAsync(func: () =>
                                            GetList(@params: @params, skipAuthorization: skipAuthorization)));
 }
Esempio n. 10
0
        /// <summary>
        /// Получает список идентификаторов пользователей или сообществ, которые добавили
        /// заданный объект в свой список Мне
        /// нравится.
        /// </summary>
        /// <param name="params"> Параметры запроса. </param>
        /// <returns>
        /// Возвращает список пользователей и сообществ, которые добавили заданный объект в
        /// свой список Мне нравится.
        /// </returns>
        /// <remarks>
        /// Страница документации ВКонтакте http://vk.com/dev/likes.getList
        /// </remarks>
        public UserOrGroup GetListEx(LikesGetListParams @params)
        {
            @params.Extended = true;

            return(_vk.Call(methodName: "likes.getList", parameters: @params, skipAuthorization: true));
        }
Esempio n. 11
0
        public ReadOnlyCollection <long> GetList(LikesGetListParams @params)
        {
            VkResponseArray response = _vk.Call("likes.getList", @params);

            return(response.ToReadOnlyCollectionOf <long>(x => x));
        }
Esempio n. 12
0
 /// <inheritdoc />
 public async Task <UserOrGroup> GetListExAsync(LikesGetListParams @params)
 {
     return(await TypeHelper.TryInvokeMethodAsync(() => _vk.Likes.GetListEx(@params)));
 }
Esempio n. 13
0
 /// <inheritdoc />
 public async Task <VkCollection <long> > GetListAsync(LikesGetListParams @params, bool skipAuthorization = false)
 {
     return(await TypeHelper.TryInvokeMethodAsync(() => _vk.Likes.GetList(@params, skipAuthorization)));
 }