55 lines
1.4 KiB
Python
55 lines
1.4 KiB
Python
import os
|
|
import sys
|
|
import argparse
|
|
|
|
parser = argparse.ArgumentParser(
|
|
description="OpenRecall"
|
|
)
|
|
|
|
parser.add_argument(
|
|
"--storage-path",
|
|
default=None,
|
|
help="Path to store the screenshots and database",
|
|
)
|
|
|
|
parser.add_argument(
|
|
"--primary-monitor-only",
|
|
action="store_true",
|
|
help="Only record the primary monitor",
|
|
default=False,
|
|
)
|
|
|
|
args = parser.parse_args()
|
|
|
|
|
|
def get_appdata_folder(app_name="openrecall"):
|
|
if sys.platform == "win32":
|
|
appdata = os.getenv("APPDATA")
|
|
if not appdata:
|
|
raise EnvironmentError("APPDATA environment variable is not set.")
|
|
path = os.path.join(appdata, app_name)
|
|
elif sys.platform == "darwin":
|
|
home = os.path.expanduser("~")
|
|
path = os.path.join(home, "Library", "Application Support", app_name)
|
|
else:
|
|
home = os.path.expanduser("~")
|
|
path = os.path.join(home, ".local", "share", app_name)
|
|
if not os.path.exists(path):
|
|
os.makedirs(path)
|
|
return path
|
|
|
|
if args.storage_path:
|
|
appdata_folder = args.storage_path
|
|
screenshots_path = os.path.join(appdata_folder, "screenshots")
|
|
db_path = os.path.join(appdata_folder, "recall.db")
|
|
else:
|
|
appdata_folder = get_appdata_folder()
|
|
db_path = os.path.join(appdata_folder, "recall.db")
|
|
screenshots_path = os.path.join(appdata_folder, "screenshots")
|
|
|
|
if not os.path.exists(screenshots_path):
|
|
try:
|
|
os.makedirs(screenshots_path)
|
|
except:
|
|
pass
|