sonuprasad23 commited on
Commit
e617155
·
1 Parent(s): 2eda147
Files changed (1) hide show
  1. worker.py +12 -2
worker.py CHANGED
@@ -3,6 +3,8 @@ import time
3
  import io
4
  import os
5
  import threading
 
 
6
  from selenium import webdriver
7
  from selenium.webdriver.chrome.service import Service as ChromeService
8
  from selenium.webdriver.chrome.options import Options as ChromeOptions
@@ -18,19 +20,24 @@ class QuantumBot:
18
  self.driver = None
19
  self.DEFAULT_TIMEOUT = 30
20
  self.termination_event = threading.Event()
 
21
 
22
  def initialize_driver(self):
23
  try:
24
- self.micro_status("Initializing headless browser...")
25
  options = ChromeOptions()
26
  options.binary_location = "/usr/bin/chromium"
27
  user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36"
 
 
 
28
  options.add_argument(f"user-agent={user_agent}")
29
  options.add_argument("--headless=new")
30
  options.add_argument("--window-size=1920,1080")
31
  options.add_argument("--no-sandbox")
32
  options.add_argument("--disable-dev-shm-usage")
33
  options.add_argument("--disable-gpu")
 
34
  options.add_argument('--disable-blink-features=AutomationControlled')
35
  options.add_experimental_option("excludeSwitches", ["enable-automation"])
36
  options.add_experimental_option('useAutomationExtension', False)
@@ -153,4 +160,7 @@ class QuantumBot:
153
 
154
  def shutdown(self):
155
  if self.driver:
156
- self.driver.quit()
 
 
 
 
3
  import io
4
  import os
5
  import threading
6
+ import tempfile
7
+ import shutil
8
  from selenium import webdriver
9
  from selenium.webdriver.chrome.service import Service as ChromeService
10
  from selenium.webdriver.chrome.options import Options as ChromeOptions
 
20
  self.driver = None
21
  self.DEFAULT_TIMEOUT = 30
22
  self.termination_event = threading.Event()
23
+ self.temp_dir = None
24
 
25
  def initialize_driver(self):
26
  try:
27
+ self.micro_status("Initializing isolated headless browser...")
28
  options = ChromeOptions()
29
  options.binary_location = "/usr/bin/chromium"
30
  user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36"
31
+
32
+ self.temp_dir = tempfile.mkdtemp()
33
+
34
  options.add_argument(f"user-agent={user_agent}")
35
  options.add_argument("--headless=new")
36
  options.add_argument("--window-size=1920,1080")
37
  options.add_argument("--no-sandbox")
38
  options.add_argument("--disable-dev-shm-usage")
39
  options.add_argument("--disable-gpu")
40
+ options.add_argument(f"--user-data-dir={self.temp_dir}")
41
  options.add_argument('--disable-blink-features=AutomationControlled')
42
  options.add_experimental_option("excludeSwitches", ["enable-automation"])
43
  options.add_experimental_option('useAutomationExtension', False)
 
160
 
161
  def shutdown(self):
162
  if self.driver:
163
+ self.driver.quit()
164
+ if self.temp_dir and os.path.exists(self.temp_dir):
165
+ shutil.rmtree(self.temp_dir)
166
+ print(f"[Bot] Cleaned up temporary directory: {self.temp_dir}")