예제 #1
0
        /// <summary>
        /// Creates a BotData object given some parameters.
        /// </summary>
        /// <param name="globalSettings">The global RuriLib settings</param>
        /// <param name="configSettings">The settings for the current Config</param>
        /// <param name="data">The wrapped data line to check</param>
        /// <param name="proxy">The proxy to use (set to null if none)</param>
        /// <param name="useProxies">Whether to use the proxy for requests</param>
        /// <param name="botNumber">The number of the bot that is creating this object</param>
        /// <param name="isDebug">Whether this object is created from a Debugger or from a Runner</param>
        public BotData(RLSettingsViewModel globalSettings, ConfigSettings configSettings, CData data, CProxy proxy, bool useProxies, int botNumber = 0, bool isDebug = true)
        {
            Data           = data;
            Proxy          = proxy;
            UseProxies     = useProxies;
            Status         = BotStatus.NONE;
            BotNumber      = BotNumber;
            GlobalSettings = globalSettings;
            ConfigSettings = configSettings;
            Balance        = 0;
            Screenshots    = new List <string>();
            Variables      = new VariableList();

            // Populate the Variables list with hidden variables
            Address         = "";
            ResponseCode    = "0";
            ResponseSource  = "";
            Cookies         = new Dictionary <string, string>();
            ResponseHeaders = new Dictionary <string, string>();
            try { foreach (var v in Data.GetVariables())
                  {
                      Variables.Set(v);
                  }
            } catch { }

            GlobalVariables = new VariableList();
            GlobalCookies   = new CookieDictionary();
            LogBuffer       = new List <LogEntry>();
            Driver          = null;
            BrowserOpen     = false;
            IsDebug         = isDebug;
            BotNumber       = botNumber;
        }
예제 #2
0
        public RLSettings()
        {
            vm = SP.GetService <ViewModelsService>().RLSettings;
            vm.CaptchaServiceChanged += UpdateCaptchaTabControl;
            DataContext = vm;

            InitializeComponent();

            UpdateCaptchaTabControl(vm.CurrentCaptchaService);
            SetRTBContents();
        }
예제 #3
0
        /// <summary>
        /// Sets up the request options.
        /// </summary>
        /// <param name="settings">The RuriLib settings</param>
        /// <param name="autoRedirect">Whether to perform automatic redirection</param>
        /// <param name="acceptEncoding"></param>
        /// <param name="maxRedirects"></param>
        /// <returns></returns>
        public Request Setup(RLSettingsViewModel settings, bool autoRedirect = true, int maxRedirects = 8, bool acceptEncoding = true)
        {
            // Setup options
            timeout = settings.General.RequestTimeout * 1000;
            request.IgnoreProtocolErrors         = true;
            request.AllowAutoRedirect            = autoRedirect;
            request.EnableEncodingContent        = acceptEncoding;
            request.ReadWriteTimeout             = timeout;
            request.ConnectTimeout               = timeout;
            request.KeepAlive                    = true;
            request.MaximumAutomaticRedirections = maxRedirects;

            return(this);
        }
예제 #4
0
        public RLSettings()
        {
            vm = SP.GetService <ViewModelsService>().RLSettings;
            vm.CaptchaServiceChanged += UpdateCaptchaTabControl;
            DataContext = vm;

            InitializeComponent();

            parallelizerTypesCombobox.ItemsSource = Enum.GetValues(typeof(ParallelizerType)).Cast <ParallelizerType>();
            captchaServiceCombobox.ItemsSource    = Enum.GetValues(typeof(CaptchaServiceType)).Cast <CaptchaServiceType>();

            UpdateCaptchaTabControl(vm.CurrentCaptchaService);
            SetRTBContents();
        }
예제 #5
0
        /// <summary>
        /// Sets up the request options.
        /// </summary>
        /// <param name="settings">The RuriLib settings</param>
        /// <param name="securityProtocol">The security protocol to use</param>
        /// <param name="autoRedirect">Whether to perform automatic redirection</param>
        /// <param name="acceptEncoding"></param>
        /// <param name="maxRedirects"></param>
        /// <returns></returns>
        public Request Setup(RLSettingsViewModel settings = null, SecurityProtocol securityProtocol = SecurityProtocol.SystemDefault,
                             bool autoRedirect            = true, int maxRedirects = 8, bool acceptEncoding = true)
        {
            // Setup options
            if (settings != null)
            {
                timeout = settings.General.RequestTimeout * 1000;
            }
            request.IgnoreProtocolErrors         = true;
            request.AllowAutoRedirect            = autoRedirect;
            request.EnableEncodingContent        = acceptEncoding;
            request.ReadWriteTimeout             = timeout;
            request.ConnectTimeout               = timeout;
            request.KeepAlive                    = true;
            request.MaximumAutomaticRedirections = maxRedirects;
            request.SslProtocols                 = securityProtocol.ToSslProtocols();

            return(this);
        }
예제 #6
0
        /// <summary>
        /// Creates a BotData object given some parameters.
        /// </summary>
        /// <param name="globalSettings">The global RuriLib settings</param>
        /// <param name="configSettings">The settings for the current Config</param>
        /// <param name="data">The wrapped data line to check</param>
        /// <param name="proxy">The proxy to use (set to null if none)</param>
        /// <param name="useProxies">Whether to use the proxy for requests</param>
        /// <param name="random">A reference to the global random generator</param>
        /// <param name="botNumber">The number of the bot that is creating this object</param>
        /// <param name="id">Data id Runner</param>
        /// <param name="isDebug">Whether this object is created from a Debugger or from a Runner</param>
        public BotData(RLSettingsViewModel globalSettings, ConfigSettings configSettings, CData data, CProxy proxy, bool useProxies, Random random, int botNumber = 0, bool isDebug = true)
        {
            Data           = data;
            Proxy          = proxy;
            UseProxies     = useProxies;
            this.random    = new Random(random.Next(0, int.MaxValue)); // Create a new local RNG seeded with a random seed from the global RNG
            Status         = BotStatus.NONE;
            BotNumber      = BotNumber;
            GlobalSettings = globalSettings;
            ConfigSettings = configSettings;
            Balance        = 0;
            Screenshots    = new List <string>();
            Variables      = new VariableList();

            // Populate the Variables list with hidden variables
            Address         = "";
            ResponseCode    = "0";
            ResponseSource  = "";
            ResponseStream  = null;
            Cookies         = new Dictionary <string, string>();
            ResponseHeaders = new Dictionary <string, string>();
            try { foreach (var v in Data.GetVariables(ConfigSettings.EncodeData))
                  {
                      Variables.Set(v);
                  }
            } catch { }

            GlobalVariables = new VariableList();
            GlobalCookies   = new CookieDictionary();
            LogBuffer       = new List <LogEntry>();
            Driver          = null;
            BrowserOpen     = false;
            IsDebug         = isDebug;
            BotNumber       = botNumber;

            CustomObjects = new Dictionary <string, object>();
        }
예제 #7
0
 /// <summary>
 /// Saves the RuriLib settings to a file.
 /// </summary>
 /// <param name="settingsFile">The file you want to save to</param>
 /// <param name="settings">The RuriLib settings object</param>
 public static void SaveSettings(string settingsFile, RLSettingsViewModel settings)
 {
     File.WriteAllText(settingsFile, JsonConvert.SerializeObject(settings, Formatting.Indented));
 }