Added get_photos_library_version
This commit is contained in:
parent
521848f955
commit
b71c752e9d
@ -30,6 +30,8 @@ _TESTED_DB_VERSIONS = ["6000", "4025", "4016", "3301", "2622"]
|
|||||||
# Photos 6 (10.16.0 Beta) == 14104
|
# Photos 6 (10.16.0 Beta) == 14104
|
||||||
_TEST_MODEL_VERSIONS = ["13537", "13703", "14104"]
|
_TEST_MODEL_VERSIONS = ["13537", "13703", "14104"]
|
||||||
|
|
||||||
|
_PHOTOS_2_VERSION = "2622"
|
||||||
|
|
||||||
# only version 3 - 4 have RKVersion.selfPortrait
|
# only version 3 - 4 have RKVersion.selfPortrait
|
||||||
_PHOTOS_3_VERSION = "3301"
|
_PHOTOS_3_VERSION = "3301"
|
||||||
|
|
||||||
|
|||||||
@ -4,7 +4,11 @@ import logging
|
|||||||
import plistlib
|
import plistlib
|
||||||
|
|
||||||
from .._constants import (
|
from .._constants import (
|
||||||
|
_PHOTOS_2_VERSION,
|
||||||
|
_PHOTOS_3_VERSION,
|
||||||
|
_PHOTOS_4_VERSION,
|
||||||
_PHOTOS_5_MODEL_VERSION,
|
_PHOTOS_5_MODEL_VERSION,
|
||||||
|
_PHOTOS_5_VERSION,
|
||||||
_PHOTOS_6_MODEL_VERSION,
|
_PHOTOS_6_MODEL_VERSION,
|
||||||
_PHOTOS_7_MODEL_VERSION,
|
_PHOTOS_7_MODEL_VERSION,
|
||||||
_TESTED_DB_VERSIONS,
|
_TESTED_DB_VERSIONS,
|
||||||
@ -83,3 +87,32 @@ def get_db_model_version(db_file):
|
|||||||
logging.warning(f"Unknown model version: {model_ver}")
|
logging.warning(f"Unknown model version: {model_ver}")
|
||||||
# cross our fingers and try latest version
|
# cross our fingers and try latest version
|
||||||
return 7
|
return 7
|
||||||
|
|
||||||
|
|
||||||
|
class UnknownLibraryVersion(Exception):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
def get_photos_library_version(library_path):
|
||||||
|
"""Return int indicating which Photos version a library was created with """
|
||||||
|
library_path = pathlib.Path(library_path)
|
||||||
|
db_ver = get_db_version(str(library_path / "database" / "photos.db"))
|
||||||
|
db_ver = int(db_ver)
|
||||||
|
if db_ver == int(_PHOTOS_2_VERSION):
|
||||||
|
return 2
|
||||||
|
if db_ver == int(_PHOTOS_3_VERSION):
|
||||||
|
return 3
|
||||||
|
if db_ver == int(_PHOTOS_4_VERSION):
|
||||||
|
return 4
|
||||||
|
if db_ver != int(_PHOTOS_5_VERSION):
|
||||||
|
raise UnknownLibraryVersion(f"db_ver = {db_ver}")
|
||||||
|
|
||||||
|
model_ver = get_model_version(str(library_path / "database" / "Photos.sqlite"))
|
||||||
|
model_ver = int(model_ver)
|
||||||
|
if _PHOTOS_5_MODEL_VERSION[0] <= model_ver <= _PHOTOS_5_MODEL_VERSION[1]:
|
||||||
|
return 5
|
||||||
|
if _PHOTOS_6_MODEL_VERSION[0] <= model_ver <= _PHOTOS_6_MODEL_VERSION[1]:
|
||||||
|
return 6
|
||||||
|
if _PHOTOS_7_MODEL_VERSION[0] <= model_ver <= _PHOTOS_7_MODEL_VERSION[1]:
|
||||||
|
return 7
|
||||||
|
raise UnknownLibraryVersion(f"db_ver = {db_ver}, model_ver = {model_ver}")
|
||||||
|
|||||||
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user