Files
projects/FunkceWhereIsDropbox.py
2025-10-04 12:54:54 +02:00

55 lines
2.1 KiB
Python

from pathlib import Path
import json, os, socket,fdb
def get_dropbox_path() -> Path:
r"""
Return the absolute Dropbox folder path.
Works across your computers (U:, Z:, etc.).
Always reads from LOCALAPPDATA\Dropbox\info.json.
Falls back to searching for a folder literally named 'Dropbox'.
"""
info_path = Path(os.environ["LOCALAPPDATA"]) / "Dropbox" / "info.json"
if info_path.exists():
try:
with open(info_path, encoding="utf-8") as f:
info = json.load(f)
return Path(info["personal"]["path"])
except Exception as e:
print(f"⚠️ Could not read Dropbox info.json: {e}")
# fallback if JSON missing
for drive in "CDEFGHIJKLMNOPQRSTUVWXYZ":
candidate = Path(f"{drive}:\\Dropbox")
if candidate.exists():
return candidate
raise FileNotFoundError("Dropbox folder not found on any drive.")
print(get_dropbox_path())
def get_medicus_connection():
"""
Connect to Firebird 'medicus.fdb' depending on computer name.
Returns fdb.Connection or raises RuntimeError if unknown or connection fails.
"""
computer_name = socket.gethostname().upper()
try:
if computer_name == "Z230":
print("Computer name is Z230")
return fdb.connect(dsn=r"localhost:c:\medicus 3\data\medicus.fdb", user="SYSDBA", password="masterkey", charset="win1250")
elif computer_name == "LEKAR":
print("Computer name is SESTRALEKAR")
return fdb.connect(dsn=r"localhost:m:\medicus\data\medicus.fdb", user="SYSDBA", password="masterkey", charset="win1250")
elif computer_name in ("SESTRA", "POHODA"):
print("Computer name is SESTRA or POHODA")
return fdb.connect(dsn=r"192.168.1.40:m:\medicus\data\medicus.fdb", user="SYSDBA", password="masterkey", charset="win1250")
else:
raise RuntimeError(f"❌ Unknown computer name: {computer_name}")
except Exception as e:
print(f"⚠️ Error connecting to Medicus on {computer_name}: {e}")
raise
print(get_medicus_connection())