# Multi-Site Sign-Up Automation Script This script automates the process of signing up for multiple websites using a single configuration file. It is designed to be flexible and resilient, using advanced techniques to mimic human behavior. --- ## How It Works The script reads its configuration from the `config.toml` file. It launches a browser using your real user profile to avoid bot detection, and then iterates through the list of sites you've defined, filling out and submitting the sign-up forms. --- ## Configuration (`config.toml`) This is the main file you will edit to control the script. It has the following sections: ### 1. `[browser]` Section This section controls the browser's behavior. - `userDataDir` (Required): The absolute path to your Chrome/Chromium user profile. This is critical for avoiding bot detection. - `userAgent` (Optional): A string to make the browser appear as a specific version (e.g., a Windows machine). If left blank, a random user agent is used. **Example:** ```toml [browser] userDataDir = "/home/someone/.config/chromium" userAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36" ``` ### 2. `[global_credentials]` Section Define a default set of credentials here. The script will use these for any site that does not have its own specific credentials defined. - `username` - `email` - `password` - `age` (or any other custom field) **Example:** ```toml [global_credentials] username = "MyGlobalUsername" email = "my.global.email@gmail.com" password = "MyGlobalPassword123!" age = "28" ``` ### 3. `[[sites]]` Blocks Each site you want to process is defined in its own `[[sites]]` block. - `name`: A unique name for the site (e.g., "CameraBoys"). - `category`: An organizational tag (e.g., "Social", "Financial"). - `url`: The direct URL to the sign-up page. - `needsPreSubmitAction`: Set to `true` for sites that have a GDPR/cookie popup. Currently, this is only configured for "CameraBoys". #### `[sites.locators]` Subsection This is where you define the form fields for the site. The script will dynamically try to fill **any field you list here**. - **Easy Mode:** Simply find the element in your browser's developer tools, right-click, "Copy element", and paste the entire HTML tag as the value. - **Advanced Mode:** You can also use a standard CSS selector. **Supported Fields:** `username`, `password`, `email`, `confirmEmail`, `age`, or any other custom field. *Note: For `confirmEmail`, the script will automatically use the `email` value.* **Example:** ```toml [sites.locators] email = '' confirmEmail = '' age = '#user_age' # You can still use CSS selectors submit = '' ``` #### `[sites.credentials]` Subsection (Optional) If a site requires a unique login, you can define it here. This will **override** the `[global_credentials]` for this site only. **Example:** ```toml [sites.credentials] username = "SiteSpecificUser" email = "site.specific.email@gmail.com" password = "SitePassword789" age = "42" ```