Пример #1
0
        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);
        }
Пример #2
0
        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;
        }
Пример #3
0
        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();
        }
Пример #4
0
        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();
        }