internal static async Task RandomLikeUser(VkAcc vkAcc, int profileVkId) { var rand = new Random(); var api = _getApi(vkAcc); var Photos = await api.Photo.GetAsync(new PhotoGetParams() { OwnerId = profileVkId, AlbumId = VkNet.Enums.SafetyEnums.PhotoAlbumType.Profile, Reversed = true, Count = 10 }); var countLikes = rand.Next(1, 3); if (countLikes > Photos.Count) { countLikes = Photos.Count; } var PhotosNeedLikes = Photos.OrderBy(s => rand.Next()).Take(countLikes).ToList(); foreach (var photo in PhotosNeedLikes) { await Task.Delay(rand.Next(10000, 20000)); await api.Likes.AddAsync(new LikesAddParams { Type = VkNet.Enums.SafetyEnums.LikeObjectType.Photo, ItemId = photo.Id.Value, OwnerId = photo.OwnerId, }); } }
static VkApi _getApi(VkAcc vkAcc) { if (!cachedApis.ContainsKey(vkAcc.AccessToken)) { VkApi vkApi; if (VkApisManager.modelScoutAPIOptions != null) { vkApi = new VkApi(logger, new CaptchaSolvers.CptchCaptchaSolver( modelScoutAPIOptions.CptchApiKey, modelScoutAPIOptions.CptchSoftId)); } else { vkApi = new VkApi(logger); } // new CaptchaSolvers.CptchCaptchaSolver() vkApi.Authorize(new ApiAuthParams { AccessToken = vkAcc.AccessToken }); cachedApis.Add(vkAcc.AccessToken, vkApi); } return(cachedApis[vkAcc.AccessToken]); }
public async Task SaveVkAcc(VkAcc vkAcc) { using (var db = new ModelScoutDbContext(this._dbOptionsBuilder.Options)) { db.VkAccs.Update(vkAcc); await db.SaveChangesAsync(); } }
private async Task IncrementAddedFriends(VkAcc vkAcc) { using (var db = new ModelScoutDbContext(this._dbOptionsBuilder.Options)) { vkAcc.CountAddedFriends++; db.VkAccs.Update(vkAcc); await db.SaveChangesAsync(); } }
public async Task ClearUncheckedClients(VkAcc vkAcc) { using (var db = new ModelScoutDbContext(this._dbOptionsBuilder.Options)) { var clients = db.VkClients.Where(e => e.VkAccId == vkAcc.VkAccId && e.ClientStatus == VkClient.Status.Unchecked); db.VkClients.RemoveRange(clients); await db.SaveChangesAsync(); } }
internal static async Task AddUserToFriends(VkAcc vkAcc, int profileVkId) { var api = _getApi(vkAcc); await api.Friends.AddAsync( userId : (long)profileVkId, text : "", follow : null ); }
public async Task<VkClient> GetUncheckedClient(VkAcc vkAcc) { VkClient vkClient = vkAcc.VkClients.Find(e => e.ClientStatus == VkClient.Status.Unchecked); if (vkClient == null) { await this.UpdateClients(vkAcc); vkClient = vkAcc.VkClients.Find(e => e.ClientStatus == VkClient.Status.Unchecked); } return vkClient; }
public async Task<VkClient> GetAcceptedClient(VkAcc vkAcc) { using (var db = new ModelScoutDbContext(this._dbOptionsBuilder.Options)) { return await db.VkClients .Include(e => e.VkAcc) .FirstOrDefaultAsync( e => e.ClientStatus == VkClient.Status.Accepted && e.VkAcc.VkAccId == vkAcc.VkAccId); } }
private async Task UpdateClients(VkAcc vkAcc) { using (var db = new ModelScoutDbContext(this._dbOptionsBuilder.Options)) { int Count = 50; var acc = db.VkAccs.FirstOrDefault(e => e.VkAccId == vkAcc.VkAccId); vkAcc.VkClients.AddRange(await VkApisManager.GetNewClients( acc, Count, this, db)); await db.SaveChangesAsync(); } }
public async Task RemoveVkAcc(VkAcc vkAcc) { using (var db = new ModelScoutDbContext(this._dbOptionsBuilder.Options)) { var user = await db.Users .Include(e => e.VkAccs) .FirstOrDefaultAsync(e => e.UserId == User.UserId); user.VkAccs.RemoveAll(e => e.VkAccId == vkAcc.VkAccId); await db.SaveChangesAsync(); } }
static public async Task <AccountSaveProfileInfoParams> GetProfileInfo(VkAcc vkAcc) { var api = _getApi(vkAcc); if (_isVkApiActive(api)) { return(await api.Account.GetProfileInfoAsync()); } else { return(null); } }
static public VkNet.Model.User GetVkUser(VkClient vkClient, VkAcc vkAcc = null) { if (vkAcc == null) { vkAcc = vkClient.VkAcc; } var api = _getApi(vkAcc); var user = api.Users.Get( new long[] { vkClient.ProfileVkId }, VkNet.Enums.Filters.ProfileFields.BirthDate | VkNet.Enums.Filters.ProfileFields.City) .FirstOrDefault(); return(user); }
private async Task<VkAcc> UpdateVkAccStatus(VkAcc vkAcc) { //TODO: Check status of acc var profileInfo = await VkApisManager.GetProfileInfo(vkAcc); if (profileInfo != null) { vkAcc.FirstName = profileInfo.FirstName; vkAcc.LastName = profileInfo.LastName; //TODO: Set status of acc } else { //TODO: Set status of acc } return vkAcc; }
public async Task<VkAcc> CreateVkAcc(string Token) { VkAcc vkAcc; var result = await VkApisManager.TryAuthorize(Token); if (result == true) { using (var db = new ModelScoutDbContext(this._dbOptionsBuilder.Options)) { var user = await db.Users.FirstOrDefaultAsync(e => e.UserId == User.UserId); vkAcc = new VkAcc() { AccessToken = Token, FriendsLimit = 40, CountAddedFriends = 0, }; await this.UpdateVkAccStatus(vkAcc); user.VkAccs.Add(vkAcc); await db.SaveChangesAsync(); } return vkAcc; } return null; }
private async Task ClearFriends(VkAcc vkAcc) { throw new NotImplementedException(); }
internal static async Task <List <VkClient> > GetNewClients( VkAcc vkAcc, int Count, ModelScoutAPI api, ModelScoutDbContext context) { uint UpdatedCount = 0; uint Offset = 0; List <VkClient> vkClients = new List <VkClient>(); var vkApi = _getApi(vkAcc); if (!_isVkApiActive(vkApi)) { return(null); } while (UpdatedCount < Count) { var clientsSearch = await vkApi.Users.SearchAsync(new UserSearchParams() { City = vkAcc.City, Country = vkAcc.Country, AgeFrom = (ushort)vkAcc.AgeFrom, AgeTo = (ushort)vkAcc.AgeTo, Sex = (VkNet.Enums.Sex)vkAcc.Sex, BirthMonth = (ushort)vkAcc.BirthMonth, BirthDay = (ushort)vkAcc.BirthDay, Online = true, HasPhoto = true, Count = (uint)Count, Offset = Offset, }); foreach (var clientSearch in clientsSearch) { //BAD CODE if (!context.VkClients.Any(e => e.ProfileVkId == clientSearch.Id) && clientSearch.IsClosed != true) //BAD CODE { var vkClient = new VkClient() { ClientStatus = VkClient.Status.Unchecked, VkAccId = vkAcc.VkAccId, ProfileVkId = (int)clientSearch.Id }; //BAD CODE vkAcc.VkClients.Add(vkClient); //BAD CODE vkClients.Add(vkClient); UpdatedCount++; } } Offset += (uint)Count; if (clientsSearch.TotalCount < Offset) { break; } } return(vkClients); }
static public async Task <VkCollection <Photo> > GetProfilePhotosClient(VkClient vkClient, VkAcc vkAcc = null) { if (vkAcc == null) { vkAcc = vkClient.VkAcc; } var api = _getApi(vkAcc); var Photos = await api.Photo.GetAsync(new PhotoGetParams() { OwnerId = vkClient.ProfileVkId, AlbumId = VkNet.Enums.SafetyEnums.PhotoAlbumType.Profile, Reversed = true, Count = 10, PhotoSizes = true, }); return(Photos); }