Best-effort: move ~/ButSystem -> Homework/ButSystem on upgrade.
()
| 331 | BASE_DIR = os.path.join(HOMEWORK_ROOT, "ButSystem") |
| 332 | |
| 333 | DATA_DIR = os.path.join(BASE_DIR, "data") |
| 334 | STORAGE_DIR = os.path.join(BASE_DIR, "storage") # user vault files (plaintext) |
| 335 | KEYS_DIR = os.path.join(BASE_DIR, "keys") |
| 336 | LOG_DIR = os.path.join(BASE_DIR, "logs") |
| 337 | TOR_DIR = os.path.join(HOME, ".ButSystem_tor") # internal (Tor requires strict perms) |
| 338 | |
| 339 | ATT_DIR = os.path.join(DATA_DIR, "attachments_enc") # chat voice + profiler attachments (plaintext) |
| 340 | TMP_UPLOAD_DIR = os.path.join(DATA_DIR, "tmp_uploads") # temporary plain uploads before background encryption |
| 341 | PFP_DIR = os.path.join(DATA_DIR, "profile_pics_enc") # user profile pictures (plaintext) |
| 342 | DM_FILES_DIR = os.path.join(DATA_DIR, "dm_files_enc") # DM file exchange (plaintext) |
| 343 | DISC_FILES_DIR = os.path.join(DATA_DIR, "discussion_files_enc") # Discussion attachments (plaintext) |
| 344 | FACE_DETECTOR_DIR = _choose_face_detector_output_dir() |
| 345 | |
| 346 | DB_PATH = os.path.join(DATA_DIR, "butsystem.db") |
| 347 | MASTER_KEY_PATH = os.path.join(KEYS_DIR, "master.key") |
| 348 | SESSION_KEY_PATH = os.path.join(KEYS_DIR, "session.key") |
| 349 | LOG_PATH = os.path.join(LOG_DIR, "butsystem.log") |
| 350 | |
| 351 | def _migrate_legacy_data(): |
| 352 | """Best-effort: move ~/ButSystem -> Homework/ButSystem on upgrade.""" |
| 353 | try: |
| 354 | if not os.path.isdir(LEGACY_BASE_DIR): |
| 355 | return |
| 356 | legacy_db = os.path.join(LEGACY_BASE_DIR, "data", "butsystem.db") |
| 357 | new_db = os.path.join(BASE_DIR, "data", "butsystem.db") |
| 358 | if os.path.exists(new_db): |
| 359 | return |
| 360 | if not os.path.exists(legacy_db): |
| 361 | return |
| 362 | os.makedirs(BASE_DIR, exist_ok=True) |