Пример #1
0
        public void SaveProfile(InstagramProfile profile)
        {
            profile.Id = CreateProfile(profile.Url, 1, StaticState.WorkerId);

            if (profile.Id == 0)
            {
                return;
            }

            CreateProfileData(
                profile.Id,
                profile.Name,
                profile.Username,
                profile.Picture,
                profile.Bio,
                profile.AgeGuessed,
                profile.IsPrivate,
                profile.FollowerCount,
                profile.FollowingCount,
                profile.SnapchatUsername,
                profile.SnapchatFound);

            var postId = CreateProfilePost(profile.Id, "");

            if (profile.Posts.Any(x => x.Media.Count > 0))
            {
                CreateProfilePostMediaBulk(postId, profile.Posts.SelectMany(c => c.Media).ToList());
            }

            if (profile.Connections.Count > 0)
            {
                CreateProfileConnectionEntries(profile.Id, profile.Connections);
            }
        }
Пример #2
0
        public override ISocialProfile CreateProfile()
        {
            var bio  = GetBio();
            var name = GetName();

            var profile = new InstagramProfile(_profileDao, _scraperSettings, _scraperValidator)
            {
                Url            = GetUrl(),
                Username       = GetUsername(),
                Name           = name,
                Picture        = GetProfilePicture(),
                Bio            = bio,
                IsPrivate      = GetIsPrivate(),
                FollowerCount  = GetFollowerCount(),
                FollowingCount = GetFollowingCount(),
                SnapchatFound  =
                    _scraperValidator.StringContainsSnapchatUsername(bio.ToLower()) ||
                    _scraperValidator.StringContainsSnapchatUsername(name.ToLower())
            };

            if (_scraperValidator.TryExtractAgeFromString(bio, out var ageGuessed))
            {
                profile.AgeGuessed = ageGuessed;
            }

            if (_scraperValidator.StringContainsFemaleName(name.CleanQueueItem()) || _scraperValidator.StringContainsFemaleName(profile.Username.CleanQueueItem()))
            {
                profile.GenderGuessed = 'F';
            }
            else
            {
                profile.GenderGuessed = 'M';
            }

            if (!profile.SnapchatFound)
            {
                return(profile);
            }

            if (_scraperValidator.TryExtractSnapchatUsernameFromString(bio.ToLower(), out var snapchatUsername) ||
                _scraperValidator.TryExtractSnapchatUsernameFromString(name.ToLower(), out snapchatUsername))
            {
                profile.SnapchatUsername = snapchatUsername;
            }

            return(profile);
        }