Skip to content

Commit

Permalink
Hopefully support Windows
Browse files Browse the repository at this point in the history
  • Loading branch information
michaelhball committed Apr 5, 2024
1 parent 3e93498 commit 115df5f
Showing 1 changed file with 14 additions and 3 deletions.
17 changes: 14 additions & 3 deletions discogs_alert/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -129,8 +129,7 @@ def __init__(self, user_agent: str, *args, **kwargs):
"--incognito",
f"--user-agent={self.user_agent.random}", # initialize with random user-agent
]
if os.geteuid() == 0:
# running as root
if os.getenv("DOCKER_ENV") == "true":
options_arguments.append("--no-sandbox")
for argument in options_arguments:
options.add_argument(argument)
Expand All @@ -142,11 +141,23 @@ def __init__(self, user_agent: str, *args, **kwargs):
kill_chromedriver_processes()
raise we("We have killed the running chromedriver processes; DA should work next time it is called.")

@staticmethod
def find_chromedriver_path() -> str:
if os.name == "posix": # macOS and Linux
return subprocess.check_output(["which", "chromedriver"]).decode().strip()
elif os.name == "nt": # Windows
for path in os.environ["PATH"].split(os.pathsep):
chromedriver_path = os.path.join(path, "chromedriver.exe")
if os.path.exists(chromedriver_path):
return chromedriver_path
else:
raise NotImplementedError("Unsupported operating system")

def get_driver_path(self):
try:
# to install both chromium binary and the matching chromedriver binary:
# apt-get install chromium-driver
return subprocess.check_output(["which", "chromedriver"]).decode().strip()
return self.find_chromedriver_path()
except subprocess.CalledProcessError:
# will install latest chromedriver binary regardless of currently installed chromium version
return ChromeDriverManager().install()
Expand Down

0 comments on commit 115df5f

Please sign in to comment.