Exemple #1
0
 /// <summary>
 /// Получает значение параметра из ini-файла.
 /// Если такого параметра нет, то он создается с переданным
 /// значением по умолчанию
 /// </summary>
 private object GetAdditionalParamFromINI(iniFile iniSettings, string section, string key, Type typeOfValue, string defVal)
 {
     try
     {
         return(IniReadValue(iniSettings, section, key, typeOfValue, true));
     }
     catch {
         iniSettings.IniWriteValue(section, key, defVal);
         return(IniReadValue(iniSettings, section, key, typeOfValue));
     }
 }
Exemple #2
0
        /// <summary>
        /// Проверяет существование файла ini с настройками.
        /// При необходимости создает его.
        /// <PARAM name="runPath">Путь исполняемого файла</PARAM>
        /// </summary>
        private bool CheckMainINI(string runPath)
        {
            bool iniOK = false;

            string  fileName    = runPath + "settings.ini";
            iniFile iniSettings = new iniFile(fileName);

            if (File.Exists(fileName))
            {
                try
                {
                    this.botToken = (string)IniReadValue(iniSettings, "Main", "BotToken", typeof(string));
                    this.interval = (int)IniReadValue(iniSettings, "Main", "Interval", typeof(int));
                    this.debug    = (bool)IniReadValue(iniSettings, "Debug", "Enabled", typeof(bool));

                    this.safeMode1C          = (bool)GetAdditionalParamFromINI(iniSettings, "SafeMode1C", "Enabled", typeof(bool), "1");
                    this.buttonsShowStart    = (bool)GetAdditionalParamFromINI(iniSettings, "Buttons", "ShowStartButton", typeof(bool), "0");
                    this.buttonsHideKeyboard = (bool)GetAdditionalParamFromINI(iniSettings, "Buttons", "HideButtonsAfterMessage", typeof(bool), "1");
                    this.buttonsNumRows      = (int)GetAdditionalParamFromINI(iniSettings, "Buttons", "NumRowsOfButtons", typeof(int), "2");
                    this.buttonsUsePic       = (bool)GetAdditionalParamFromINI(iniSettings, "Buttons", "UsePictures", typeof(bool), "1");
                    this.allowUsers          = GetWhiteListOfUsers((string)GetAdditionalParamFromINI(iniSettings, "WhiteList", "Users", typeof(string), ""));
                    this.screenOwners        = GetWhiteListOfUsers((string)GetAdditionalParamFromINI(iniSettings, "WhiteList", "ScreenOwners", typeof(string), ""));

                    this.oscriptPath = (string)GetAdditionalParamFromINI(iniSettings, "Environment", "OneScriptPath", typeof(string), "");

                    try
                    {
                        // Старая версия ini-файла с одним прокси
                        string host = (string)IniReadValue(iniSettings, "Proxy", "Server", typeof(string), true);

                        if ((bool)GetAdditionalParamFromINI(iniSettings, "Proxy", "UseProxy", typeof(bool), "1"))
                        {
                            ProxyClient proxy = null;

                            if ((int)GetAdditionalParamFromINI(iniSettings, "Proxy", "Type", typeof(int), "0") == 0)
                            {
                                proxy = new HttpProxyClient();
                            }
                            else
                            {
                                proxy = new Socks5ProxyClient();
                            }

                            proxy.Host     = host;
                            proxy.Port     = (int)GetAdditionalParamFromINI(iniSettings, "Proxy", "Port", typeof(int), "0");
                            proxy.Username = (string)GetAdditionalParamFromINI(iniSettings, "Proxy", "Username", typeof(string), "");
                            proxy.Password = (string)GetAdditionalParamFromINI(iniSettings, "Proxy", "Password", typeof(string), "");

                            this.proxies.Add(proxy);
                        }
                    }
                    catch
                    {
                        // Новая версия, где может быть несколько прокси
                        int countProxies = (int)GetAdditionalParamFromINI(iniSettings, "Proxy", "CountProxy", typeof(int), "0");
                        int idxProxy     = 0;

                        while (idxProxy < countProxies)
                        {
                            ProxyClient proxy = null;

                            if ((int)GetAdditionalParamFromINI(iniSettings, "Proxy", "Type" + (idxProxy + 1), typeof(int), "0") == 0)
                            {
                                proxy = new HttpProxyClient();
                            }
                            else
                            {
                                proxy = new Socks5ProxyClient();
                            }

                            proxy.Host     = (string)GetAdditionalParamFromINI(iniSettings, "Proxy", "Server" + (idxProxy + 1), typeof(string), "");
                            proxy.Port     = (int)GetAdditionalParamFromINI(iniSettings, "Proxy", "Port" + (idxProxy + 1), typeof(int), "0");
                            proxy.Username = (string)GetAdditionalParamFromINI(iniSettings, "Proxy", "Username" + (idxProxy + 1), typeof(string), "");
                            proxy.Password = (string)GetAdditionalParamFromINI(iniSettings, "Proxy", "Password" + (idxProxy + 1), typeof(string), "");

                            this.proxies.Add(proxy);
                            idxProxy++;
                        }
                    }

                    if (!String.IsNullOrEmpty(botToken))
                    {
                        if (this.interval == 0)
                        {
                            this.interval = 1;
                        }
                        iniOK = true;
                    }
                    else
                    {
                        Logger.Write("Settings.ini: не заполнен токен бота", true);
                    }
                }
                catch (Exception e)
                {
                    Logger.Write("Ошибка Settings.ini: " + e.Message, true);
                }
            }
            else
            {
                try
                {
                    iniSettings.IniWriteValue("Main", "BotToken", "");
                    iniSettings.IniWriteValue("Main", "Interval", "1");
                    iniSettings.IniWriteValue("Proxy", "UseProxy", "0");
                    iniSettings.IniWriteValue("Proxy", "Server", "");
                    iniSettings.IniWriteValue("Proxy", "Port", "");
                    iniSettings.IniWriteValue("Proxy", "Username", "");
                    iniSettings.IniWriteValue("Proxy", "Password", "");
                    iniSettings.IniWriteValue("Proxy", "Type", "0");
                    iniSettings.IniWriteValue("Debug", "Enabled", "0");
                    iniSettings.IniWriteValue("SafeMode1C", "Enabled", "1");
                    iniSettings.IniWriteValue("Buttons", "ShowStartButton", "0");
                    iniSettings.IniWriteValue("Buttons", "HideButtonsAfterMessage", "1");
                    iniSettings.IniWriteValue("Buttons", "NumRowsOfButtons", "2");
                    iniSettings.IniWriteValue("WhiteList", "Users", "");
                    iniSettings.IniWriteValue("OneScriptPath", "Environment", "");

                    Logger.Write("Создан файл настроек \"settings.ini\"");
                }
                catch
                {
                    Logger.Write("Не удалось создать файл \"settings.ini\"", true);
                }
            }


            return(iniOK);
        }