Example #1
0
        void TestParsingIds(FriendshipType friendType)
        {
            var friendReqProc = new FriendshipRequestProcessor <Friendship> {
                Type = friendType
            };

            List <Friendship> friends = friendReqProc.ProcessResults(IdsResponse);

            Assert.IsNotNull(friends);
            Assert.IsNotNull(friends.SingleOrDefault());
            var friend = friends.Single();

            Assert.IsNotNull(friend);
            var cursor = friend.CursorMovement;

            Assert.IsNotNull(cursor);
            Assert.AreEqual(2, cursor.Previous);
            Assert.AreEqual(1, cursor.Next);
            var idList = friend.IDInfo;

            Assert.IsNotNull(idList);
            var idsCursor = idList.CursorMovement;

            Assert.IsNotNull(idsCursor);
            Assert.AreEqual(2, idsCursor.Previous);
            Assert.AreEqual(1, idsCursor.Next);
            var ids = idList.IDs;

            Assert.IsNotNull(ids);
            Assert.IsTrue(ids.Any());
            var id = ids.First();

            Assert.AreEqual(5676142ul, id);
        }
Example #2
0
        void TestParsingIds(FriendshipType friendType)
        {
            var friendReqProc = new FriendshipRequestProcessor <Friendship> {
                Type = friendType
            };

            List <Friendship> friends = friendReqProc.ProcessResults(IdsResponse);

            Assert.NotNull(friends);
            Assert.Single(friends);
            var friend = friends.Single();

            Assert.NotNull(friend);
            var idList = friend.IDInfo;

            Assert.NotNull(idList);
            var cursor = idList.CursorMovement;

            Assert.NotNull(cursor);
            Assert.Equal("2", cursor.Previous);
            Assert.Equal("1", cursor.Next);
            var ids = idList.IDs;

            Assert.NotNull(ids);
            Assert.NotEmpty(ids);
            var id = ids.First();

            Assert.Equal(5676142ul, id);
        }
        void TestParsingIds(FriendshipType friendType)
        {
            var friendReqProc = new FriendshipRequestProcessor<Friendship> { Type = friendType };

            List<Friendship> friends = friendReqProc.ProcessResults(IdsResponse);

            Assert.IsNotNull(friends);
            Assert.IsNotNull(friends.SingleOrDefault());
            var friend = friends.Single();
            Assert.IsNotNull(friend);
            var cursor = friend.CursorMovement;
            Assert.IsNotNull(cursor);
            Assert.AreEqual(2, cursor.Previous);
            Assert.AreEqual(1, cursor.Next);
            var idList = friend.IDInfo;
            Assert.IsNotNull(idList);
            var idsCursor = idList.CursorMovement;
            Assert.IsNotNull(idsCursor);
            Assert.AreEqual(2, idsCursor.Previous);
            Assert.AreEqual(1, idsCursor.Next);
            var ids = idList.IDs;
            Assert.IsNotNull(ids);
            Assert.IsTrue(ids.Any());
            var id = ids.First();
            Assert.AreEqual(5676142ul, id);
        }
        void TestParsingIds(FriendshipType friendType)
        {
            var friendReqProc = new FriendshipRequestProcessor<Friendship> { Type = friendType };

            List<Friendship> friends = friendReqProc.ProcessResults(IdsResponse);

            Assert.NotNull(friends);
            Assert.Single(friends);
            var friend = friends.Single();
            Assert.NotNull(friend);
            var idList = friend.IDInfo;
            Assert.NotNull(idList);
            var cursor = idList.CursorMovement;
            Assert.NotNull(cursor);
            Assert.Equal("2", cursor.Previous);
            Assert.Equal("1", cursor.Next);
            var ids = idList.IDs;
            Assert.NotNull(ids);
            Assert.NotEmpty(ids);
            var id = ids.First();
            Assert.Equal(5676142ul, id);
        }
Example #5
0
        private List <ulong> GetFriendship(FriendshipType type)
        {
            if (!_friendshipCache.ContainsKey(type) || _friendshipCache[type] == null || _friendshipCache[type].Count == 0)
            {
                var  followers = new List <ulong>();
                long cursor    = -1;
                do
                {
                    Limiter(type == FriendshipType.FriendIDs ? FriendsLimitName : FollowersLimitName);
                    var friendship = _twitterCtx.Friendship.SingleOrDefault(f => f.Type == type && f.ScreenName == Username && f.Cursor == cursor);
                    if (friendship?.IDInfo?.IDs != null)
                    {
                        followers.AddRange(friendship.IDInfo.IDs);
                        cursor = friendship.CursorMovement.Next;
                    }
                }while(cursor != 0);

                _friendshipCache[type] = followers;
            }

            return(_friendshipCache[type]);
        }
Example #6
0
        public async Task <OptionKey> SetOption(Options options, bool value, FriendshipType friendshipType = FriendshipType.Open)
        {
            var postData = new Dictionary <string, string>();

            if (options != Options.Friendship)
            {
                postData.Add("value", value ? 1 : 0);
            }
            else
            {
                postData.Add("value", friendshipType.GetDescription().ToLower());
            }

            postData.Add("name", options.GetDescription().ToLower());

            var parameter = "?" + postData.ToQueryString();

            var response = await Post <RootOptionKey>(OptionUrl + parameter, null);

            ValidateResponse(response);

            return(response.OptionKey);
        }
Example #7
0
        public async Task<OptionKey> SetOption(Options options, bool value, FriendshipType friendshipType = FriendshipType.Open)
        {
            var postData = new Dictionary<string, string>();

            if (options != Options.Friendship)
                postData.Add("value", value ? 1 : 0);
            else
            {
                postData.Add("value", friendshipType.GetDescription().ToLower());
            }

            postData.Add("name", options.GetDescription().ToLower());

            var parameter = "?" + postData.ToQueryString();

            var response = await Post<RootOptionKey>(OptionUrl + parameter, null);

            ValidateResponse(response);

            return response.OptionKey;
        }
Example #8
0
     ///<summary>
     ///        Возвращает список пользователей в соответствии с заданным критерием поиска
     ///      
     ///</summary>
     ///<param name="q">строка поискового запроса</param>
     ///<param name="sort">порядок сортировки</param>
     ///<param name="fields">список дополнительных полей профилей, которые необходимо вернуть</param>
     ///<param name="city">идентификатор города</param>
     ///<param name="country">идентификатор страны</param>
     ///<param name="hometown">название города строкой</param>
     ///<param name="universityCountry">идентификатор страны, в которой пользователи закончили ВУЗ</param>
     ///<param name="university">идентификатор ВУЗа</param>
     ///<param name="universityYear">год окончания ВУЗа</param>
     ///<param name="universityFaculty">идентификатор факультета</param>
     ///<param name="universityChair">идентификатор кафедры</param>
     ///<param name="sex">пол</param>
     ///<param name="status">семейное положение</param>
     ///<param name="ageFrom">начиная с какого возраста</param>
     ///<param name="ageTo">до какого возраста</param>
     ///<param name="birthDay">день рождения</param>
     ///<param name="birthMonth">месяц рождения</param>
     ///<param name="birthYear">год рождения</param>
     ///<param name="online">только в сети</param>
     ///<param name="hasPhoto">только с фотографией</param>
     ///<param name="schoolCountry">идентификатор страны, в которой пользователи закончили школу</param>
     ///<param name="schoolCity">идентификатор города, в котором пользователи закончили школу</param>
     ///<param name="schoolClass"></param>
     ///<param name="school">идентификатор школы, которую закончили пользователи</param>
     ///<param name="schoolYear">год окончания школы</param>
     ///<param name="religion">религиозные взгляды</param>
     ///<param name="interests">интересы</param>
     ///<param name="company">название компании, в которой работают пользователи</param>
     ///<param name="position">название должности</param>
     ///<param name="groupId">идентификатор группы, среди пользователей которой необходимо проводить поиск</param>
     ///<param name="fromList">Разделы среди которых нужно осуществить поиск</param>
 ///<param name="offset">Оффсет для возврата результатов</param>
 ///<param name="count">Количество записей, которые необходимо вернуть</param>
     public EntityList<User> SearchSync(
         string q = "", SearchSortOrder sort = SearchSortOrder.ByRating, UserFields fields = UserFields.None, int? city = null, int? country = null, string hometown = "", int? universityCountry = null, int? university = null, int? universityYear = null, int? universityFaculty = null, int? universityChair = null, Sex? sex = null, Relation? status = null, byte? ageFrom = null, byte? ageTo = null, byte? birthDay = null, byte? birthMonth = null, ushort? birthYear = null, bool? online = null, bool? hasPhoto = null, int? schoolCountry = null, int? schoolCity = null, int? schoolClass = null, int? school = null, int? schoolYear = null, string religion = "", string interests = "", string company = "", string position = "", int? groupId = null,  FriendshipType? fromList = null, int? offset = null, int? count = 100
     ) {
         var task = _parent.Executor.ExecAsync(
                 _parent._reqapi.Users.Search(
                     q,sort,fields,city,country,hometown,universityCountry,university,universityYear,universityFaculty,universityChair,sex,status,ageFrom,ageTo,birthDay,birthMonth,birthYear,online,hasPhoto,schoolCountry,schoolCity,schoolClass,school,schoolYear,religion,interests,company,position,groupId,fromList,offset, count
                 )
             );
         task.Wait();
         return task.Result.Response;
     }
Example #9
0
            ///<summary>
            ///        Возвращает список пользователей в соответствии с заданным критерием поиска
            ///      
            ///</summary>
            ///<param name="q">строка поискового запроса</param>
            ///<param name="sort">порядок сортировки</param>
            ///<param name="fields">список дополнительных полей профилей, которые необходимо вернуть</param>
            ///<param name="city">идентификатор города</param>
            ///<param name="country">идентификатор страны</param>
            ///<param name="hometown">название города строкой</param>
            ///<param name="universityCountry">идентификатор страны, в которой пользователи закончили ВУЗ</param>
            ///<param name="university">идентификатор ВУЗа</param>
            ///<param name="universityYear">год окончания ВУЗа</param>
            ///<param name="universityFaculty">идентификатор факультета</param>
            ///<param name="universityChair">идентификатор кафедры</param>
            ///<param name="sex">пол</param>
            ///<param name="status">семейное положение</param>
            ///<param name="ageFrom">начиная с какого возраста</param>
            ///<param name="ageTo">до какого возраста</param>
            ///<param name="birthDay">день рождения</param>
            ///<param name="birthMonth">месяц рождения</param>
            ///<param name="birthYear">год рождения</param>
            ///<param name="online">только в сети</param>
            ///<param name="hasPhoto">только с фотографией</param>
            ///<param name="schoolCountry">идентификатор страны, в которой пользователи закончили школу</param>
            ///<param name="schoolCity">идентификатор города, в котором пользователи закончили школу</param>
            ///<param name="schoolClass"></param>
            ///<param name="school">идентификатор школы, которую закончили пользователи</param>
            ///<param name="schoolYear">год окончания школы</param>
            ///<param name="religion">религиозные взгляды</param>
            ///<param name="interests">интересы</param>
            ///<param name="company">название компании, в которой работают пользователи</param>
            ///<param name="position">название должности</param>
            ///<param name="groupId">идентификатор группы, среди пользователей которой необходимо проводить поиск</param>
            ///<param name="fromList">Разделы среди которых нужно осуществить поиск</param>
            ///<param name="offset">Оффсет для возврата результатов</param>
            ///<param name="count">Количество записей, которые необходимо вернуть</param>
            public Request<EntityList<User>> Search(
                string q = "", SearchSortOrder sort = SearchSortOrder.ByRating, UserFields fields = UserFields.None, int? city = null, int? country = null, string hometown = "", int? universityCountry = null, int? university = null, int? universityYear = null, int? universityFaculty = null, int? universityChair = null, Sex? sex = null, Relation? status = null, byte? ageFrom = null, byte? ageTo = null, byte? birthDay = null, byte? birthMonth = null, ushort? birthYear = null, bool? online = null, bool? hasPhoto = null, int? schoolCountry = null, int? schoolCity = null, int? schoolClass = null, int? school = null, int? schoolYear = null, string religion = "", string interests = "", string company = "", string position = "", int? groupId = null,  FriendshipType? fromList = null, int? offset = null, int? count = 100
            ) {
                var req = new Request<EntityList<User>>{
                    MethodName = "users.search",
                    Parameters = new Dictionary<string, string> {

                        { "q", q},
                        { "sort", ((int)sort).ToNCString()},
                        { "fields", String.Join( ",", MiscTools.GetUserFields( fields ) )},
                        { "city", MiscTools.NullableString(city)},
                        { "country", MiscTools.NullableString(country)},
                        { "hometown", hometown},
                        { "university_country", MiscTools.NullableString(universityCountry)},
                        { "university", MiscTools.NullableString(university)},
                        { "university_year", MiscTools.NullableString(universityYear)},
                        { "university_faculty", MiscTools.NullableString(universityFaculty)},
                        { "university_chair", MiscTools.NullableString(universityChair)},
                        { "sex", MiscTools.NullableString( (int?)sex )},
                        { "status", MiscTools.NullableString( (int?)status )},
                        { "age_from", MiscTools.NullableString(ageFrom)},
                        { "age_to", MiscTools.NullableString(ageTo)},
                        { "birth_day", MiscTools.NullableString(birthDay)},
                        { "birth_month", MiscTools.NullableString(birthMonth)},
                        { "birth_year", MiscTools.NullableString(birthYear)},
                        { "online", (online != null ? ( online.Value ? 1 : 0 ).ToNCString() : "")},
                        { "has_photo", (hasPhoto != null ? ( hasPhoto.Value ? 1 : 0 ).ToNCString() : "")},
                        { "school_country", MiscTools.NullableString(schoolCountry)},
                        { "school_city", MiscTools.NullableString(schoolCity)},
                        { "school_class", MiscTools.NullableString(schoolClass)},
                        { "school", MiscTools.NullableString(school)},
                        { "school_year", MiscTools.NullableString(schoolYear)},
                        { "religion", religion},
                        { "interests", interests},
                        { "company", company},
                        { "position", position},
                        { "group_id", MiscTools.NullableString(groupId)},
                        { "from_list", fromList?.ToNCString()?.ToSnake()??""},
                        { "offset", offset.NullableString() },
                        { "count", count.NullableString() },

                    }
                };
                    req.Token = _parent.CurrentToken;
                return req;
            }