Ejemplo n.º 1
0
        private static void FillConfigurations()
        {
            _excludeDeletedUsers = true;
            _reverseTotalList    = _configurationProvider.GetConfig("reverseTotalList", false);
            _wait = _configurationProvider.GetConfig("Wait", 23);

            _cityIds = _configurationProvider.GetConfig("CityIds", _cityIds);

            _idsToExclude = _configurationProvider.GetConfig("idsToExclude", _idsToExclude);

            _deletedUserText = "DELETED";
            _secondsToSleepAfterOwnerIdIsIncorrect = 1;
            _secondsToSleepAfterOtherExceptions    = 1;
            _hoursToSleepAfterFloodControl         = 4;
            _blacklistMembersOfChatId =
                _configurationProvider.GetConfig("BlacklistMembersOfChatId", _blacklistMembersOfChatId);

            _blacklistFriendsOfUserId =
                _configurationProvider.GetConfig("BlacklistFriendsOfUserId", _blacklistFriendsOfUserId);

            _blackListGroupIds =
                _configurationProvider.GetConfig("BlackListGroupIds", _blackListGroupIds);


            _strategy   = _configurationProvider.GetConfig("Strategy", _strategy);
            _groupNames = _configurationProvider.GetConfig("GroupNames", _groupNames) ?? new List <string>();

            var minDateConfig = _configurationProvider.GetConfig("MinDateForPostsInBackgroundWork");

            if (!string.IsNullOrWhiteSpace(minDateConfig))
            {
                MinDateForPostsBackGroundWork = DateTime.ParseExact(minDateConfig, "d", CultureInfo.InvariantCulture);
            }
        }
Ejemplo n.º 2
0
        public async Task <List <UserExtended> > GetUserIdsByStrategyAsync(LikeClickerStrategy strategy,
                                                                           List <string> groupNames, AgeRange ageRange, int[] cityIds, DateTime minDateForPosts, List <long> blackListedUserIds)
        {
            var users  = new List <UserExtended>();
            var fields = GetFields();

            switch (strategy)
            {
            case LikeClickerStrategy.PostsLikers:

                var likerIds = new List <long>();
                foreach (var name in groupNames)
                {
                    var group         = _groupService.GetByName(name);
                    var likers        = _groupService.GetGroupPostsLickers(group.Id, blackListedUserIds, minDateForPosts);
                    var likerIdsChunk = likers.Select(x => x.Id);
                    likerIds.AddRange(likerIdsChunk);
                }

                likerIds = likerIds.Distinct().ToList();
                users    = _userService.GetUsersByIds(likerIds, fields).ToList();
                Console.WriteLine("Get user by ids");

                break;

            case LikeClickerStrategy.GroupMembers:
                var allMemebers = new List <UserExtended>();

                foreach (var groupName in groupNames)
                {
                    try
                    {
                        var group   = _groupService.GetByName(groupName);
                        var members = _groupService.GetGroupMembers(group.Id.ToString(), UsersFields.Domain);
                        allMemebers.AddRange(members);
                    }
                    catch (Exception)
                    {
                        continue;
                    }
                }

                users = _userService.GetUsersByIds(allMemebers.Select(x => x.Id).ToList(), fields).Distinct().ToList();
                break;

            case LikeClickerStrategy.SearchResults:
                users = await SearchUsers(ageRange, cityIds.FirstOrDefault());

                break;
            }

            var cities = _citiesService.GetCities(cityIds, false);

            Console.WriteLine($"Users count is {users.Count}.");
            var filteredUsers = FilterUsers(users, ageRange, cities);

            Console.WriteLine($"Filtered users count is {filteredUsers.Count}.");

            return(filteredUsers);
        }
Ejemplo n.º 3
0
        private static void FillConfigurations()
        {
            _groupNames          = _configurationProvider.GetConfig("GroupNames", _groupNames);
            _profilePhotosToLike = _configurationProvider.GetConfig("ProfilePhotosToLike", 2);
            _minAge = _configurationProvider.GetConfig("MinAge", 17);
            _maxAge = _configurationProvider.GetConfig("MaxAge", 29);
            _skipRecentlyLikedProfilesPhotosCount =
                _configurationProvider.GetConfig("SkipRecentlyLikedProfilesPhotosCount ", 1);
            _cityIds  = _configurationProvider.GetConfig("CityIds", _cityIds);
            _strategy = _configurationProvider.GetConfig("Strategy", _strategy);

            var minDateConfig = _configurationProvider.GetConfig("MinDateForPosts");

            if (!string.IsNullOrWhiteSpace(minDateConfig))
            {
                MinDateForPosts = DateTime.ParseExact(minDateConfig, "d", CultureInfo.InvariantCulture);
            }
        }