Get the browser engine based on Chromium to use for Playwright based on system availability. If available, prefers Ungoogled Chromium for stealthier browsing. Returns: browsers.Browser: The selected browser engine. Raises: EnvironmentError: I
()
| 190 | |
| 191 | @staticmethod |
| 192 | def get_browser_engine() -> browsers.Browser: |
| 193 | """ |
| 194 | Get the browser engine based on Chromium to use for Playwright based on system availability. |
| 195 | If available, prefers Ungoogled Chromium for stealthier browsing. |
| 196 | |
| 197 | Returns: |
| 198 | browsers.Browser: The selected browser engine. |
| 199 | Raises: |
| 200 | EnvironmentError: If no Chromium based browser is found on the system. |
| 201 | """ |
| 202 | # Ungoogled Chromium preferred (most stealthy) |
| 203 | if chromium := browsers.get("chromium"): |
| 204 | return chromium |
| 205 | print("\033[1;33;48m[WARNING] Ungoogled Chromium not found. Recommended for Canvas Manipulation. Download at https://ungoogled-software.github.io/ungoogled-chromium-binaries/ \033[0m") |
| 206 | |
| 207 | # Chrome preferred (much stealthier) |
| 208 | if chrome := browsers.get("chrome"): |
| 209 | return chrome |
| 210 | |
| 211 | not_supported = ["firefox", "msie", "opera", "msedge"] |
| 212 | for browser_engine in browsers.browsers(): |
| 213 | if browser_engine["browser_type"] not in not_supported: |
| 214 | return browser_engine |
| 215 | |
| 216 | raise EnvironmentError("No Chromium based browser found") |
| 217 | |
| 218 | @staticmethod |
| 219 | def delete_botright_temp_dirs() -> None: |