public static async Task <List <Seguidores> > QUEMMESEGUE(string username) { List <Seguidores> Seguidores = new List <Seguidores>(); var segui = await api.GetCurrentUserFollowersAsync(PaginationParameters.MaxPagesToLoad(8)); foreach (var item in segui.Value.ToList()) { Seguidores s = new Seguidores(); s.meseguem = item.UserName; Seguidores.Add(s); } foreach (var item in Seguidores) { // Console.WriteLine(item.meseguem); } return(Seguidores); }
async void UnSubscribeDontFollow(IInstaApi api, SettingTaskUnSubscribe setting) { userInfoLog = await api.GetCurrentUserAsync(); var follow = await api.GetCurrentUserFollowersAsync(PaginationParameters.MaxPagesToLoad(2)); var x = await api.GetUserFollowingAsync(userInfoLog.Value.UserName, PaginationParameters.MaxPagesToLoad(2)); var z = await api.GetUserInfoByIdAsync(userInfoLog.Value.Pk); EventUpdateGrid(this, new UpdateGridEvent( $"{userInfoLog.Value.UserName}:Отписка(кто не подписан):{CountUnSubscribe}/{z.Value.FollowingCount}:{UpdateInfoUser(await api.GetUserInfoByIdAsync(userInfoLog.Value.Pk))}:" + $"Выполняется")); EventFromMyClass(this, new MyEventMessage($"[{userInfoLog.Value.UserName}][{DateTime.Now.ToString("HH:mm:ss")}] Массотписка запущена")); foreach (InstaUserShort user in x.Value) { try { if (_source == null || _source.IsCancellationRequested) { break; } if (setting.FileNameBaseId != null && setting.FileNameDontUnSubscribeId.Length != 0) //Учет не отписки от определнных пользователей { var stringId = setting.FileNameDontUnSubscribeId.Split(' '); foreach (string id in stringId) { if (user.Pk == Convert.ToInt64(id)) { EventFromMyClass(this, new MyEventMessage($"[{userInfoLog.Value.UserName}][{DateTime.Now.ToString("HH:mm:ss")}] Пропущен пользователь {user.UserName}. Является исключением")); Delay(); continue; } } } var userShort = new InstaUserShort(); userShort.Pk = user.Pk; if (follow.Value.IndexOf(userShort) == -1) { if (setting.ChekedUnSubscribeBlock) //Учёт отписки через блокировку { await api.BlockUserAsync(user.Pk); } else { await api.UnFollowUserAsync(user.Pk); } CountUnSubscribe++; CountPause++; EventFromMyClass(this, new MyEventMessage($"[{userInfoLog.Value.UserName}][{DateTime.Now.ToString("HH:mm:ss")}] Отписался от пользователя с ником: {user.UserName}. Kоличество отписок: {CountUnSubscribe}")); EventUpdateGrid(this, new UpdateGridEvent( $"{userInfoLog.Value.UserName}:Отписка(кто не подписан):{CountUnSubscribe}/{z.Value.FollowingCount}:{UpdateInfoUser(await api.GetUserInfoByIdAsync(userInfoLog.Value.Pk))}:" + $"Выполняется")); if (_source == null || _source.IsCancellationRequested) { break; } Delay(); // Учет задержки if (CountUnSubscribe >= setting.LimitUnSubscribe) //Учет лимита отписок { EventFromMyClass(this, new MyEventMessage($"[{userInfoLog.Value.UserName}][{ DateTime.Now.ToString("HH:mm:ss") }] Превышен лимит подписок")); EventUpdateGrid(this, new UpdateGridEvent( $"{userInfoLog.Value.UserName}:Отписка(кто не подписан):{CountUnSubscribe}/{z.Value.FollowingCount}:{UpdateInfoUser(await api.GetUserInfoByIdAsync(userInfoLog.Value.Pk))}:" + $"Завершено")); return; } if (setting.CheckedPause) //Учет паузы { if (setting.PauseLimit <= CountUnSubscribe) { CountPause = 0; EventUpdateGrid(this, new UpdateGridEvent( $"{userInfoLog.Value.UserName}:Отписка(кто не подписан):{CountUnSubscribe}/{z.Value.FollowingCount}:{UpdateInfoUser(await api.GetUserInfoByIdAsync(userInfoLog.Value.Pk))}:" + $"Пауза")); EventFromMyClass(this, new MyEventMessage($"[{userInfoLog.Value.UserName}][{DateTime.Now.ToString("HH:mm:ss")}] Пауза на " + setting.PauseTime + " минут")); if (timer != null) { timer.Dispose(); } timer = new Timer(CancelDelay, null, 60000 * setting.PauseTime, Timeout.Infinite); ew.Reset(); ew.WaitOne(); } } } } catch (Exception e) { EventFromMyClass(this, new MyEventMessage($"[{userInfoLog.Value.UserName}][{DateTime.Now.ToString("HH:mm:ss")}] ОШИБКА: {e.Message}")); } } EventFromMyClass(this, new MyEventMessage($"[{userInfoLog.Value.UserName}][{DateTime.Now.ToString("HH:mm:ss")}] Выполнено")); EventUpdateGrid(this, new UpdateGridEvent( $"{userInfoLog.Value.UserName}:Отписка(кто не подписан):{CountUnSubscribe}/{z.Value.FollowingCount}:{UpdateInfoUser(await api.GetUserInfoByIdAsync(userInfoLog.Value.Pk))}:" + $"Завершено")); Stat = false; }
async void MassLike() { Stat = true; userInfoLog = await api.GetCurrentUserAsync(); EventFromMyClass(this, new MyEventMessage($"[{userInfoLog.Value.UserName}][{DateTime.Now.ToString("HH:mm:ss")}][{Info()}] Масслайкинг запущен")); EventFromMyClass(this, new MyEventMessage( $"[{userInfoLog.Value.UserName}][{DateTime.Now:HH:mm:ss}][{Info()}] Загружаю базу.")); try { foreach (string str in File.ReadAllLines(setting.FileNameBase)) { try { usersID.Add(Convert.ToInt64(str)); usersIDcopy.Add(Convert.ToInt64(str)); } catch { continue; } } } catch (Exception e) { EventFromMyClass(this, new MyEventMessage( $"[{userInfoLog.Value.UserName}][{DateTime.Now.ToString("HH:mm:ss")}][{Info()}] ОШИБКА: {e.Message}")); } EventUpdateGrid(this, new UpdateGridEvent( $"{userInfoLog.Value.UserName}:Лайкинг:{CountLikes}/{usersID.Count}:{UpdateInfoUser(await api.GetUserInfoByIdAsync(userInfoLog.Value.Pk))}:" + $"Выполняется")); foreach (long id in usersID) { try { if (_source == null || _source.IsCancellationRequested) { break; } if (setting.ChekedSkipSubscriber) { var x = await api.GetCurrentUserFollowersAsync(PaginationParameters.MaxPagesToLoad(10)); var o = new InstaUserShort(); o.Pk = id; if (x.Value.IndexOf(o) != -1) { EventFromMyClass(this, new MyEventMessage($"[{userInfoLog.Value.UserName}][{DateTime.Now.ToString("HH:mm:ss")}][{Info()}] Подписчик с id: {id} пропущен")); usersIDcopy.Remove(id); Thread.Sleep(500); continue; } } int pages = (int)setting.LikeAtUserMax; var userInfo = await api.GetUserInfoByIdAsync(id); Thread.Sleep(100); var media = await api.GetUserMediaAsync( userInfo.Value.Username, PaginationParameters.MaxPagesToLoad(pages % 18 == 0 ? pages : pages + 1)); //Учет загруки страаниц var mediaList = media.Value.ToList(); int random = rnd.Next((int)setting.LikeAtUserMin - 1, (int)setting.LikeAtUserMax); for (int i = 0; i < random; i++) //Учет кол-во лайков на пользователя { if (mediaList.Count > i && setting.LikeUnderPublicMin <= mediaList[i].LikesCount && mediaList[i].LikesCount <= setting.LikeUnderPublicMax) //Учет настройки лайков под публикацией { if (_source == null || _source.IsCancellationRequested) { break; } await api.LikeMediaAsync(mediaList[i].Pk); CountLikes++; CountPause++; EventFromMyClass(this, new MyEventMessage($"[{userInfoLog.Value.UserName}][{DateTime.Now.ToString("HH:mm:ss")}][{Info()}] Поставил лайк пользователю {userInfo.Value.Username}. Кол-во лайков: {CountLikes}")); EventUpdateGrid(this, new UpdateGridEvent( $"{userInfoLog.Value.UserName}:Лайкинг:{CountLikes}/{usersID.Count}:{UpdateInfoUser(await api.GetUserInfoByIdAsync(userInfoLog.Value.Pk))}:" + $"Выполняется")); if (setting.ChekedDeleteInBaseAfterLike) { usersIDcopy.Remove(id); } Delay(); if (setting.ChekedPause) { if (CountPause >= setting.PauseLimit) { CountPause = 0; EventUpdateGrid(this, new UpdateGridEvent($"{userInfoLog.Value.UserName}:Лайкинг:{CountLikes}/{usersID.Count}:{UpdateInfoUser(await api.GetUserInfoByIdAsync(userInfoLog.Value.Pk))}:" + $"Пауза")); EventFromMyClass(this, new MyEventMessage( $"[{userInfoLog.Value.UserName}][{DateTime.Now.ToString("HH:mm:ss")}][{Info()}] Пауза на " + setting.PauseTime + " минут ")); if (timer != null) { timer.Dispose(); } timer = new Timer(CancelDelay, null, 60000 * (int)setting.PauseTime, Timeout.Infinite); ew.Reset(); ew.WaitOne(); } } } else { EventFromMyClass(this, new MyEventMessage($"[{userInfoLog.Value.UserName}][{DateTime.Now.ToString("HH:mm:ss")}][{Info()}] Недостаточно лайков под постом пользователя {userInfo.Value.Username}. Пропуск")); if (setting.ChekedDeleteInBaseAfterLike) { usersIDcopy.Remove(id); } Thread.Sleep(1000); } } } catch (Exception e) { EventFromMyClass(this, new MyEventMessage($"[{userInfoLog.Value.UserName}][{DateTime.Now.ToString("HH:mm:ss")}][{Info()}] ОШИБКА : {e.Message}")); continue; } } EventFromMyClass(this, new MyEventMessage($"[{userInfoLog.Value.UserName}][{DateTime.Now.ToString("HH:mm:ss")}][{Info()}] Выполнено")); EventUpdateGrid(this, new UpdateGridEvent( $"{userInfoLog.Value.UserName}:Лайкинг:{CountLikes}/{usersID.Count}:{UpdateInfoUser(await api.GetUserInfoByIdAsync(userInfoLog.Value.Pk))}:" + $"Завершено")); Stat = false; Save(); }
async System.Threading.Tasks.Task StartSubscribe() { Stat = true; userInfoLog = await api.GetCurrentUserAsync(); EventFromMyClass(this, new MyEventMessage($"[{userInfoLog.Value.UserName}][{DateTime.Now:HH:mm:ss}][{Info()}] Массфоловинг запущен.")); EventFromMyClass(this, new MyEventMessage( $"[{userInfoLog.Value.UserName}][{DateTime.Now:HH:mm:ss}][{Info()}] Загружаю базу.")); try { string[] stringID = System.IO.File.ReadAllLines(setting.FileNameBaseId); foreach (string str in stringID) { try { usersID.Add(Convert.ToInt64(str)); usersIDcopy.Add(Convert.ToInt64(str)); } catch { continue; } } EventFromMyClass(this, new MyEventMessage( $"[{userInfoLog.Value.UserName}][{DateTime.Now:HH:mm:ss}][{Info()}] База загружена.")); } catch (Exception e) { EventFromMyClass(this, new MyEventMessage($"[{userInfoLog.Value.UserName}][{DateTime.Now.ToString("HH:mm:ss")}][{Info()}] ОШИБКА: {e.Message}")); } EventFromMyClass(this, new MyEventMessage( $"[{userInfoLog.Value.UserName}][{DateTime.Now:HH:mm:ss}][{Info()}] Начинаю подписку.")); foreach (long id in usersID) { try { userInfoLog = await api.GetCurrentUserAsync(); var userInfo = await api.GetUserInfoByIdAsync(id); if (_source == null || _source.IsCancellationRequested) { break; } if (setting.ChekedSkipSubscriber) //Пропуск подписчиков { var x = await api.GetCurrentUserFollowersAsync(PaginationParameters.MaxPagesToLoad(100)); var o = new InstaUserShort(); o.Pk = id; if (x.Value.IndexOf(o) != -1) { EventFromMyClass(this, new MyEventMessage($"[{userInfoLog.Value.UserName}][{DateTime.Now.ToString("HH:mm:ss")}][{Info()}] Подписчик с ником: {userInfo.Value.Username} пропущен")); if (setting.ChekedDeleteAdfter) { usersIDcopy.Remove(id); } Delay(); continue; } } if (!setting.ChekedSendPrivateUser) //Учет приватных пользователей { if (userInfo.Value.IsPrivate) { EventFromMyClass(this, new MyEventMessage($"[{userInfoLog.Value.UserName}][{DateTime.Now.ToString("HH:mm:ss")}][{Info()}] Приватный аккаунт {userInfo.Value.Username} пропущен")); Delay(); continue; } } await api.FollowUserAsync(id); //Подписка CountSubscribe++; CountPause++; EventFromMyClass(this, new MyEventMessage($"[{userInfoLog.Value.UserName}][{DateTime.Now.ToString("HH:mm:ss")}][{Info()}] " + $"Подписался на пользователя с ником {userInfo.Value.Username}. " + $"Количество подписок: {CountSubscribe}")); EventUpdateGrid(this, new UpdateGridEvent($"{userInfoLog.Value.UserName}:Подписка:{CountSubscribe}/{usersID.Count}:{UpdateInfoUser(await api.GetUserInfoByIdAsync(userInfoLog.Value.Pk))}:" + $"Выполняется")); Delay(); ew.WaitOne(); if (setting.ChekedLikingBySubscribe) //Учет лайков при подписке { int pages = setting.LikingMax; var media = await api.GetUserMediaAsync( userInfo.Value.Username, PaginationParameters.MaxPagesToLoad(pages % 18 == 0 ? pages : pages + 1)); //Учет загруки страниц var mediaList = media.Value.ToList(); int random = rnd.Next(setting.LikingMin, setting.LikingMax + 1); for (int i = 0; i < random; i++) { if (_source == null || _source.IsCancellationRequested) { break; } await api.LikeMediaAsync(mediaList[i].Pk); EventFromMyClass(this, new MyEventMessage($"[{userInfoLog.Value.UserName}][{DateTime.Now.ToString("HH:mm:ss")}][{Info()}] Поставил лайк пользователю с ником {userInfo.Value.Username}")); int randomLikeDelay = rnd.Next(setting.DelayLikeMin, setting.DelayLikeMax + 1); EventFromMyClass(this, new MyEventMessage($"[{userInfoLog.Value.UserName}][{DateTime.Now.ToString("HH:mm:ss")}][{Info()}] Задержка на {randomLikeDelay} сек")); if (timer != null) { timer.Dispose(); } timer = new Timer(CancelDelay, null, 1000 * randomLikeDelay, Timeout.Infinite); ew.Reset(); ew.WaitOne(); } } if (setting.ChekedDeleteAdfter) { usersIDcopy.Remove(id); } if (setting.ChekedPause) //Учет паузы { if (CountPause >= setting.PauseLimit) { CountPause = 0; EventUpdateGrid(this, new UpdateGridEvent($"{userInfoLog.Value.UserName}:Подписка:{CountSubscribe}/{usersID.Count}:{UpdateInfoUser(await api.GetUserInfoByIdAsync(userInfoLog.Value.Pk))}:" + $"Пауза")); EventFromMyClass(this, new MyEventMessage( $"[{userInfoLog.Value.UserName}][{DateTime.Now.ToString("HH:mm:ss")}][{Info()}] Пауза на " + setting.PauseTime + " минут ")); if (timer != null) { timer.Dispose(); } timer = new Timer(CancelDelay, null, 60000 * setting.PauseTime, Timeout.Infinite); ew.Reset(); ew.WaitOne(); } } if (CountSubscribe >= setting.LimitSubscribe) //Учет лимита подписок { EventFromMyClass(this, new MyEventMessage($"[{userInfoLog.Value.UserName}][{DateTime.Now:HH:mm:ss}][{Info()}] Превышен лимит подписок")); EventFromMyClass(this, new MyEventMessage( $"[{userInfoLog.Value.UserName}][{DateTime.Now:HH:mm:ss}] Выполнено")); EventUpdateGrid(this, new UpdateGridEvent( $"{userInfoLog.Value.UserName}:Подписка:{CountSubscribe}/{usersID.Count}:{UpdateInfoUser(await api.GetUserInfoByIdAsync(userInfoLog.Value.Pk))}:" + $"Завершено")); return; } } catch (Exception e) { EventFromMyClass(this, new MyEventMessage($"[{userInfoLog.Value.UserName}][{DateTime.Now:HH:mm:ss}][{Info()}] ОШИБКА: {e.Message}")); } } EventFromMyClass(this, new MyEventMessage( $"[{userInfoLog.Value.UserName}][{DateTime.Now:HH:mm:ss}][{Info()}] Задача завершена")); EventUpdateGrid(this, new UpdateGridEvent( $"{userInfoLog.Value.UserName}:Подписка:{CountSubscribe}/{usersID.Count}:{UpdateInfoUser(await api.GetUserInfoByIdAsync(userInfoLog.Value.Pk))}:" + $"Завершено")); Stat = false; Save(); }