Skip to content

Commit e202499

Browse files
authored
Update README.md
1 parent bcf2583 commit e202499

File tree

1 file changed

+59
-10
lines changed

1 file changed

+59
-10
lines changed

README.md

Lines changed: 59 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,6 @@ A Domain Specific Language (DSL) that compiles into valid python code!
1010
- **Chrome**
1111
- **Firefox**
1212

13-
---
14-
1513
### Supported Python Versions
1614

1715
- **3.9.x**
@@ -21,34 +19,26 @@ A Domain Specific Language (DSL) that compiles into valid python code!
2119
- **3.13.x**
2220
- **3.14.x**
2321

24-
---
25-
2622
### Supported Operating Systems
2723

2824
- Linux **(x64)**
2925
- MacOS 11.0+ **(x64)**
3026
- Windows 10 **(ARM64, x64, x86)**
3127
- Windows 11 **(ARM64, x64, x86)**
3228

33-
---
34-
3529
### Supported Platforms
3630

3731
- **x86**
3832
- **x64**
3933
- **ARM64**
4034

41-
---
42-
4335
### System Requirements (Minimum)
4436

4537
- 2+ Core CPU
4638
- 4GB DDR3 RAM (The application itself uses under 200MB of RAM)
4739
- Any Supported Browser
4840
- Any Supported Python Version
4941

50-
---
51-
5242
### Tested On
5343

5444
- AMD Athlon Gold 3150U
@@ -322,3 +312,62 @@ This will create self-contained applications for different Windows architectures
322312
- **.NET SDK Not Found:** Ensure the .NET SDK is installed correctly and that the `dotnet` command is available in your system's PATH.
323313
- **Permission Issues:** On Linux/macOS, you might need to use `sudo` for global tool installation or for installing `.deb` packages. For compilation itself, `sudo` is generally not required or recommended.
324314
- **Incorrect Runtime Identifier:** Ensure you're using a valid runtime identifier (RID) for your target platform. You can find a list of RIDs [here](https://docs.microsoft.com/en-us/dotnet/core/rid-catalog).
315+
316+
# Roadmap
317+
318+
---
319+
320+
This section outlines the planned commands and features for BAMM.
321+
322+
---
323+
324+
## Features
325+
326+
- **`feature "no-ssl"`**: This feature will disable SSL certificate validation when using Selenium, allowing for more flexible connections.
327+
- **`feature "headless"`**: We'll implement a headless mode, letting you run the browser without a visible user interface, which is great for background tasks and server environments.
328+
329+
## Management
330+
331+
- **`bamm clear compiled`**: This command will clear all project files from the current user's "compiled" directory, helping you manage disk space.
332+
- **`bamm clear userScripts`**: Similarly, this command will clear all scripts from the current user's "userScripts" directory.
333+
- **`bamm uninstall`**:
334+
- **On Windows**: This will execute `unins000.exe`.
335+
- **On MacOS**: (Specific uninstallation steps to be determined and implemented.)
336+
- **On Linux**: This will execute `apt uninstall bamm` for a clean removal.
337+
338+
## Browser Commands
339+
340+
- **`set-custom-useragent "User Agent String"`**: You'll be able to set a custom `requestUserAgent` for all your browser requests, useful for mimicking different devices or browsers.
341+
- **`add-cookie "name" "value"`**: This command will let you add a single cookie to the browser session.
342+
- **`add-cookies {"name": "value", "name2": "value2"}`**: For more complex scenarios, you'll be able to add multiple cookies using a JSON object.
343+
- **`add-header "name" "value"`**: Add a single HTTP header to your requests.
344+
- **`add-headers {"name": "value", "name2": "value2"}`**: Add multiple HTTP headers using a JSON object.
345+
- **`set-element-property "selector" "property" "value"`**: This powerful command will allow you to dynamically change properties of HTML elements.
346+
347+
**EXAMPLE:**
348+
Given the HTML: `<div _ngcontent-home-c123="" idpsetfocus="" class="idp-dropdown__selected" id="idp-month__selected" data-selected-value="01">`
349+
You could use the command: `set-element-property "#idp-month__selected" "data-selected-value" "02"` to change the selected month.
350+
351+
- **`fill-text-exp "selector" "value"`**: This command will fill text into an element using JavaScript.
352+
353+
**FUNCTION IMPLEMENTATION (solely for reference, will be added to a later update.)**
354+
355+
```python
356+
from selenium.webdriver.common.by import By
357+
358+
def fill_text(byType: By, selector: str, value: str) -> bool:
359+
try:
360+
element = driver.find_element(byType, selector)
361+
driver.execute_script(f'arguments[0].innerText = "{value}"', element)
362+
return True
363+
except Exception as e:
364+
print(f'An error occurred while trying to fill text on element with the selector: {selector}\n\nError:\n{e}')
365+
return False
366+
```
367+
368+
## User Experience Enhancements
369+
370+
- Adding an option for users to **copy the path of the compiled script directory** to their clipboard.
371+
- Alternatively, users will be able to **open a new explorer/finder window** to that directory, provided there's at least 100MB of RAM available.
372+
373+
---

0 commit comments

Comments
 (0)