Exemplo n.º 1
0
 public static void SaveAllGroup()
 {
     for (int i = 0; i < ParametersClass.groups.Count; i++)
     {
         IOClass.SaveGroupJson(ParametersClass.groups[i]);
     }
 }
Exemplo n.º 2
0
        public static void PostsBack(long groupId, int localGroupId)
        {
            LoadAndFixLogs(groupId);

            Random rnd = new Random();

            for (int i = 0; i < ParametersClass.logs.Count; i++)
            {
                if (File.Exists(ParametersClass.logs[i].file))
                {
                    string[] splitter = Path.GetFileName(ParametersClass.logs[i].file).Split('_');
                    var      delete   = ParametersClass.vkapi.Wall.Delete(-groupId, ParametersClass.logs[i].postId);

                    string file = ParametersClass.groups[localGroupId].groupItem.ForPublic + "\\" + "backed_" + rnd.Next(0, 11) + "_" + splitter[splitter.Length - 1];
                    if (delete)
                    {
                        File.Move(ParametersClass.logs[i].file, file);
                    }
                }
            }

            LoadAndFixLogs(groupId);
            IOClass.SaveLogsJson(ParametersClass.logs);
            MessageBox.Show("Посты успешно откачены!");
        }
Exemplo n.º 3
0
        public static void LoadAndFixLogs(long groupId)
        {
            if (File.Exists(ParametersClass.logsPath))
            {
                ParametersClass.logs = IOClass.ReadLogsJson();
                List <Logs> UpdateLogs = new List <Logs>();

                PostInfo[] posts = VkApiClass.GetAllPostponed(groupId).ToArray();

                for (int i = 0; i < ParametersClass.logs.Count; i++)
                {
                    for (int p = 0; p < posts.Length; p++)
                    {
                        if (ParametersClass.logs[i].groupId == posts[p].groupId)
                        {
                            if (ParametersClass.logs[i].postId == posts[p].postId)
                            {
                                UpdateLogs.Add(ParametersClass.logs[i]);
                            }
                        }
                    }
                }
                ParametersClass.logs = UpdateLogs;
            }
        }
Exemplo n.º 4
0
        public static bool Auth(string login, string password, System.Windows.Forms.Button loginButton) //Авторизация в вк
        {
            try
            {
                if (ParametersClass.AutostartValue)
                {
                    ParametersClass.vkapi.Authorize(new ApiAuthParams
                    {
                        ApplicationId = ParametersClass.appID,
                        Login         = login,
                        Password      = password,
                        Settings      = ParametersClass.settings
                    });
                    ParametersClass.autch = true;
                    ParametersClass.token = ParametersClass.vkapi.Token;
                    IOClass.SaveGlobalJson(login, password);
                    loginButton.BackColor = Color.Lime;
                    ParametersClass.timertoautopost.Enabled = true;

                    ParametersClass.vkapi.Stats.TrackVisitor();
                }
                else
                {
                    ParametersClass.vkapi.Authorize(new ApiAuthParams
                    {
                        ApplicationId          = ParametersClass.appID,
                        Login                  = login,
                        Password               = password,
                        Settings               = ParametersClass.settings,
                        TwoFactorAuthorization = () =>
                        {
                            using (Autch Autch = new Autch())
                            {
                                if (Autch.ShowDialog() == DialogResult.OK)
                                {
                                    TwoFactorAuthorizationResult = Autch.TheValue;
                                }
                            }
                            return(TwoFactorAuthorizationResult);
                        }
                    });
                    MessageBox.Show("Успешная авторизация.");
                    ParametersClass.autch = true;
                    ParametersClass.token = ParametersClass.vkapi.Token;
                    IOClass.SaveGlobalJson(login, password);
                    loginButton.BackColor = Color.Lime;

                    ParametersClass.vkapi.Stats.TrackVisitor();
                }
                return(true);
            }
            catch (Exception ex)
            {
                ParametersClass.autch = false;
                MessageBox.Show("Авторизация не удалась. \n" + ex);
                loginButton.BackColor = Color.Red;
                return(false);
            }
        }
Exemplo n.º 5
0
        public void Post(bool force = false) //Создание поста
        {
            int   postMultiply = 0;
            int   wallid       = 0;
            ulong CoutPosts    = 0;
            int   FileCount    = 0;

            postMultiply = groupItem.ImageInPost;
            wallid       = -groupItem.WallId;
            FileCount    = Directory.GetFiles(groupItem.ForPublic).Length;

            var vkpost = ParametersClass.vkapi.Wall.Get(new WallGetParams
            {
                OwnerId = wallid,
                Filter  = WallFilter.Postponed,
            });

            if (!ParametersClass.AutostartValue || force)
            {
                CoutPosts = (ulong)CoutPost;
            }
            else
            {
                CoutPosts = (ulong)groupItem.MaxPostInAuto;
            }

            if (vkpost.TotalCount + (ulong)(CoutPost * groupItem.ImageInPost) > 150)
            {
                CoutPosts = 150 - vkpost.TotalCount;
            }

            if (CoutPosts > 0)
            {
                if ((int)CoutPosts * postMultiply > FileCount)
                {
                    MessageBox.Show("В папке всего: " + FileCount + ", а не " + (int)CoutPosts * postMultiply + " файла.");
                }
                else
                {
                    if ((CoutPosts + vkpost.TotalCount) <= 150)
                    {
                        for (int i = 0; i < (int)CoutPosts; i++) //Сколько будет постов
                        {
                            time.Time();

                            DateTime datenow = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, DateTime.Now.Hour, DateTime.Now.Minute, 00);
                            DateTime date    = new DateTime(time.year, time.month, time.day, time.hour, time.minute, 00);

                            if (date < datenow)
                            {
                                MessageBox.Show("Мы не можем отправлять посты в прошлое.");
                            }

                            file = IOClass.GetFile(groupItem.ForPublic);
                            long ownerid = ParametersClass.vkapi.Users.Get(new long[] { })[0].Id;
                            try
                            {
                                var get = ParametersClass.vkapi.Wall.Post(new WallPostParams //Создание поста
                                {
                                    OwnerId     = -groupItem.WallId,
                                    FromGroup   = true,
                                    Message     = groupItem.Hesh != null ? groupItem.Hesh : "",
                                    Attachments = VkApiClass.Posts(postMultiply, ownerid, groupItem.WallId, file.ToArray()).getIEMA(),
                                    PublishDate = new DateTime(time.year, time.month, time.day, time.hour, time.minute, 0)
                                });

                                for (int f = 0; f < postMultiply; f++)
                                {
                                    string new_path = groupItem.Public + @"\" + DateTime.Now.Hour + "." + DateTime.Now.Minute + "." + DateTime.Now.Second + "_" + DateTime.Now.Day + "." + DateTime.Now.Month + "." + DateTime.Now.Year + "_" + "f" + f + "_" + (Path.GetFileName(file[f]).Split('_').Length > 1 ? Path.GetFileName(file[f]).Split('_')[Path.GetFileName(file[f]).Split('_').Length - 1] : Path.GetFileName(file[f]));
                                    File.Move(file[f], new_path); //Перемещение файла в папку после загрузки
                                    IOClass.SaveGroupJson(this);  //Сохраняем переменные json

                                    ParametersClass.logs.Add(new Logs {
                                        file = new_path, groupId = groupItem.WallId, postId = get
                                    });
                                    IOClass.SaveLogsJson(ParametersClass.logs);

                                    DesuBot.progressBarPlus(Program.desuBot);
                                }
                            }
                            catch (Exception ex)
                            {
                                if (ex is VkNet.Exception.PostLimitException)
                                {
                                    MessageBox.Show(date + " : Возможно в данное время уже запланирован пост или вы достигли лимита 150 постов в отложенных записях. error: P1. \n" + ex.Message);
                                }
                                else if (ex is VkNet.Exception.CaptchaNeededException cap)
                                {
                                    csid       = cap.Sid;
                                    captchaUrl = cap.Img.AbsoluteUri;
                                    using (Captcha captcha = new Captcha())
                                    {
                                        captcha.Show();

                                        if (captcha.ShowDialog() == DialogResult.OK)
                                        {
                                            captchaKey = captcha.TheValue;
                                        }
                                    }
                                    System.Windows.Forms.Application.Exit();
                                }
                                else
                                {
                                    MessageBox.Show(ex.Message);
                                }
                            }
                        }
                    }
                    else
                    {
                        MessageBox.Show("В отложенные записи нельзя добавить больше 150 постов.");
                    }
                }
            }
        }