diff --git a/osxphotos/__init__.py b/osxphotos/__init__.py index c80a22aa..a428cfe4 100644 --- a/osxphotos/__init__.py +++ b/osxphotos/__init__.py @@ -378,6 +378,7 @@ class PhotosDB: """ process the Photos database to extract info """ """ works on Photos version <= 4.0 """ + #TODO: Update strings to remove + (not needed) # Epoch is Jan 1, 2001 td = (datetime(2001, 1, 1, 0, 0) - datetime(1970, 1, 1, 0, 0)).total_seconds() @@ -489,7 +490,8 @@ class PhotosDB: + "RKVersion.lastmodifieddate, RKVersion.imageDate, RKVersion.mainRating, " + "RKVersion.hasAdjustments, RKVersion.hasKeywords, RKVersion.imageTimeZoneOffsetSeconds, " + "RKMaster.volumeId, RKMaster.imagePath, RKVersion.extendedDescription, RKVersion.name, " - + "RKMaster.isMissing, RKMaster.originalFileName, RKVersion.isFavorite, RKVersion.isHidden " + + "RKMaster.isMissing, RKMaster.originalFileName, RKVersion.isFavorite, RKVersion.isHidden, " + + "RKVersion.longitude, RKVersion.latitude " + "from RKVersion, RKMaster where RKVersion.isInTrash = 0 and RKVersion.type = 2 and " + "RKVersion.masterUuid = RKMaster.uuid and RKVersion.filename not like '%.pdf'" ) @@ -527,6 +529,9 @@ class PhotosDB: self._dbphotos[uuid]["originalFilename"] = row[15] self._dbphotos[uuid]["favorite"] = row[16] self._dbphotos[uuid]["hidden"] = row[17] + self._dbphotos[uuid]["longitude"] = row[18] + self._dbphotos[uuid]["latitude"] = row[19] + conn.close() @@ -1082,6 +1087,14 @@ class PhotoInfo: """ True if picture is hidden """ return True if self.__info["hidden"] == 1 else False + def longitude(self): + """ Returns longitude, in degrees """ + return self.__info["longitude"] + + def latitude(self): + """ Returns latitude, in degrees """ + return self.__info["latitude"] + def __repr__(self): return f"osxphotos.PhotoInfo(db={self.__db}, uuid='{self.__uuid}', info={self.__info})" diff --git a/tests/Test-10.14.6.photoslibrary/Masters/2019/07/27/20190727-131650/Pumkins1.jpg b/tests/Test-10.14.6.photoslibrary/Masters/2019/07/27/20190727-131650/Pumkins1.jpg index b1615930..3748a6b4 100644 Binary files a/tests/Test-10.14.6.photoslibrary/Masters/2019/07/27/20190727-131650/Pumkins1.jpg and b/tests/Test-10.14.6.photoslibrary/Masters/2019/07/27/20190727-131650/Pumkins1.jpg differ diff --git a/tests/Test-10.14.6.photoslibrary/Masters/2019/07/27/20190727-131650/Pumkins1.jpg_original b/tests/Test-10.14.6.photoslibrary/Masters/2019/07/27/20190727-131650/Pumkins1.jpg_original new file mode 100644 index 00000000..3748a6b4 Binary files /dev/null and b/tests/Test-10.14.6.photoslibrary/Masters/2019/07/27/20190727-131650/Pumkins1.jpg_original differ diff --git a/tests/Test-10.14.6.photoslibrary/Masters/2019/07/27/20190727-131650/Pumkins2.jpg b/tests/Test-10.14.6.photoslibrary/Masters/2019/07/27/20190727-131650/Pumkins2.jpg index f23a024a..4d88368a 100644 Binary files a/tests/Test-10.14.6.photoslibrary/Masters/2019/07/27/20190727-131650/Pumkins2.jpg and b/tests/Test-10.14.6.photoslibrary/Masters/2019/07/27/20190727-131650/Pumkins2.jpg differ diff --git a/tests/Test-10.14.6.photoslibrary/Masters/2019/07/27/20190727-131650/Pumkins2.jpg_original b/tests/Test-10.14.6.photoslibrary/Masters/2019/07/27/20190727-131650/Pumkins2.jpg_original new file mode 100644 index 00000000..4d88368a Binary files /dev/null and b/tests/Test-10.14.6.photoslibrary/Masters/2019/07/27/20190727-131650/Pumkins2.jpg_original differ diff --git a/tests/Test-10.14.6.photoslibrary/Masters/2019/07/27/20190727-131650/Pumpkins3.jpg b/tests/Test-10.14.6.photoslibrary/Masters/2019/07/27/20190727-131650/Pumpkins3.jpg index 136dfe8d..775207c8 100644 Binary files a/tests/Test-10.14.6.photoslibrary/Masters/2019/07/27/20190727-131650/Pumpkins3.jpg and b/tests/Test-10.14.6.photoslibrary/Masters/2019/07/27/20190727-131650/Pumpkins3.jpg differ diff --git a/tests/Test-10.14.6.photoslibrary/Masters/2019/07/27/20190727-131650/Pumpkins3.jpg_original b/tests/Test-10.14.6.photoslibrary/Masters/2019/07/27/20190727-131650/Pumpkins3.jpg_original new file mode 100644 index 00000000..775207c8 Binary files /dev/null and b/tests/Test-10.14.6.photoslibrary/Masters/2019/07/27/20190727-131650/Pumpkins3.jpg_original differ diff --git a/tests/Test-10.14.6.photoslibrary/Masters/2019/07/27/20190727-131650/St James Park.jpg b/tests/Test-10.14.6.photoslibrary/Masters/2019/07/27/20190727-131650/St James Park.jpg index e5a6b0bd..494d60de 100644 Binary files a/tests/Test-10.14.6.photoslibrary/Masters/2019/07/27/20190727-131650/St James Park.jpg and b/tests/Test-10.14.6.photoslibrary/Masters/2019/07/27/20190727-131650/St James Park.jpg differ diff --git a/tests/Test-10.14.6.photoslibrary/Masters/2019/07/27/20190727-131650/St James Park.jpg_original b/tests/Test-10.14.6.photoslibrary/Masters/2019/07/27/20190727-131650/St James Park.jpg_original new file mode 100644 index 00000000..64e5c319 Binary files /dev/null and b/tests/Test-10.14.6.photoslibrary/Masters/2019/07/27/20190727-131650/St James Park.jpg_original differ diff --git a/tests/Test-10.14.6.photoslibrary/Masters/2019/07/27/20190727-131650/Tulips.jpg b/tests/Test-10.14.6.photoslibrary/Masters/2019/07/27/20190727-131650/Tulips.jpg index 31eb2ab3..3f09e25b 100644 Binary files a/tests/Test-10.14.6.photoslibrary/Masters/2019/07/27/20190727-131650/Tulips.jpg and b/tests/Test-10.14.6.photoslibrary/Masters/2019/07/27/20190727-131650/Tulips.jpg differ diff --git a/tests/Test-10.14.6.photoslibrary/Masters/2019/07/27/20190727-131650/Tulips.jpg_original b/tests/Test-10.14.6.photoslibrary/Masters/2019/07/27/20190727-131650/Tulips.jpg_original new file mode 100644 index 00000000..8e78a7a7 Binary files /dev/null and b/tests/Test-10.14.6.photoslibrary/Masters/2019/07/27/20190727-131650/Tulips.jpg_original differ diff --git a/tests/Test-10.14.6.photoslibrary/Masters/2019/07/27/20190727-131650/wedding.jpg b/tests/Test-10.14.6.photoslibrary/Masters/2019/07/27/20190727-131650/wedding.jpg index ad8137e3..5f29bd3f 100644 Binary files a/tests/Test-10.14.6.photoslibrary/Masters/2019/07/27/20190727-131650/wedding.jpg and b/tests/Test-10.14.6.photoslibrary/Masters/2019/07/27/20190727-131650/wedding.jpg differ diff --git a/tests/Test-10.14.6.photoslibrary/Masters/2019/07/27/20190727-131650/wedding.jpg_original b/tests/Test-10.14.6.photoslibrary/Masters/2019/07/27/20190727-131650/wedding.jpg_original new file mode 100644 index 00000000..5f29bd3f Binary files /dev/null and b/tests/Test-10.14.6.photoslibrary/Masters/2019/07/27/20190727-131650/wedding.jpg_original differ diff --git a/tests/Test-10.14.6.photoslibrary/database/photos.db b/tests/Test-10.14.6.photoslibrary/database/photos.db index c0a28dd4..2af14b0c 100644 Binary files a/tests/Test-10.14.6.photoslibrary/database/photos.db and b/tests/Test-10.14.6.photoslibrary/database/photos.db differ diff --git a/tests/Test-10.14.6.photoslibrary/private/com.apple.Photos/appPrivateData.plist b/tests/Test-10.14.6.photoslibrary/private/com.apple.Photos/appPrivateData.plist index 68b1f8ba..962d8ad2 100644 --- a/tests/Test-10.14.6.photoslibrary/private/com.apple.Photos/appPrivateData.plist +++ b/tests/Test-10.14.6.photoslibrary/private/com.apple.Photos/appPrivateData.plist @@ -14,7 +14,7 @@ IPXWorkspaceControllerZoomLevelsKey kZoomLevelIdentifierAlbums - 7 + 10 kZoomLevelIdentifierVersions 7 @@ -34,7 +34,7 @@ other 0 photos - 7 + 6 videos 0 diff --git a/tests/Test-10.14.6.photoslibrary/private/com.apple.photoanalysisd/GraphService/PhotoAnalysisServicePreferences.plist b/tests/Test-10.14.6.photoslibrary/private/com.apple.photoanalysisd/GraphService/PhotoAnalysisServicePreferences.plist index be5ca4c7..c7ba4e64 100644 --- a/tests/Test-10.14.6.photoslibrary/private/com.apple.photoanalysisd/GraphService/PhotoAnalysisServicePreferences.plist +++ b/tests/Test-10.14.6.photoslibrary/private/com.apple.photoanalysisd/GraphService/PhotoAnalysisServicePreferences.plist @@ -3,8 +3,8 @@ PhotoAnalysisGraphLastBackgroundGraphRebuildJobDate - 2019-08-07T02:26:15Z + 2019-11-18T01:38:02Z PhotoAnalysisGraphLastBackgroundMemoryGenerationJobDate - 2019-08-17T14:26:34Z + 2019-11-27T05:30:14Z diff --git a/tests/Test-10.14.6.photoslibrary/private/com.apple.photoanalysisd/GraphService/PhotosGraph/liveupdate-photosgraph.graphdb b/tests/Test-10.14.6.photoslibrary/private/com.apple.photoanalysisd/GraphService/PhotosGraph/liveupdate-photosgraph.graphdb index 4d8a5dfb..68b388ea 100644 Binary files a/tests/Test-10.14.6.photoslibrary/private/com.apple.photoanalysisd/GraphService/PhotosGraph/liveupdate-photosgraph.graphdb and b/tests/Test-10.14.6.photoslibrary/private/com.apple.photoanalysisd/GraphService/PhotosGraph/liveupdate-photosgraph.graphdb differ diff --git a/tests/Test-10.14.6.photoslibrary/private/com.apple.photoanalysisd/GraphService/PhotosGraph/photosgraph.graphdb b/tests/Test-10.14.6.photoslibrary/private/com.apple.photoanalysisd/GraphService/PhotosGraph/photosgraph.graphdb index 147ce400..3ac56c42 100644 Binary files a/tests/Test-10.14.6.photoslibrary/private/com.apple.photoanalysisd/GraphService/PhotosGraph/photosgraph.graphdb and b/tests/Test-10.14.6.photoslibrary/private/com.apple.photoanalysisd/GraphService/PhotosGraph/photosgraph.graphdb differ diff --git a/tests/Test-10.14.6.photoslibrary/private/com.apple.photomodel/appPrivateData.plist b/tests/Test-10.14.6.photoslibrary/private/com.apple.photomodel/appPrivateData.plist index 106cedb0..5627c43e 100644 --- a/tests/Test-10.14.6.photoslibrary/private/com.apple.photomodel/appPrivateData.plist +++ b/tests/Test-10.14.6.photoslibrary/private/com.apple.photomodel/appPrivateData.plist @@ -5,7 +5,7 @@ LithiumMessageTracer LastReportedDate - 2019-08-04T13:32:55Z + 2019-11-18T04:50:50Z diff --git a/tests/Test-10.14.6.photoslibrary/resources/moments/analysismetadata.plist b/tests/Test-10.14.6.photoslibrary/resources/moments/analysismetadata.plist index e9d2cb89..a5c859a1 100644 --- a/tests/Test-10.14.6.photoslibrary/resources/moments/analysismetadata.plist +++ b/tests/Test-10.14.6.photoslibrary/resources/moments/analysismetadata.plist @@ -11,6 +11,6 @@ PLLastRevGeoForcedProviderOutOfDateCheckVersionKey 1 PLLastRevGeoVerFileFetchDateKey - 2019-08-16T02:08:50Z + 2019-11-27T05:30:19Z diff --git a/tests/Test-10.14.6.photoslibrary/resources/moments/historicalmarker.plist b/tests/Test-10.14.6.photoslibrary/resources/moments/historicalmarker.plist index 53b4f1d4..56b23dc4 100644 --- a/tests/Test-10.14.6.photoslibrary/resources/moments/historicalmarker.plist +++ b/tests/Test-10.14.6.photoslibrary/resources/moments/historicalmarker.plist @@ -3,7 +3,7 @@ LastHistoryRowId - 508 + 522 LibraryBuildTag D8C4AAA1-3AB6-4A65-BEBD-99CC3E5D433E LibrarySchemaVersion diff --git a/tests/Test-10.14.6.photoslibrary/resources/moments/needsanalysis b/tests/Test-10.14.6.photoslibrary/resources/moments/needsanalysis new file mode 100644 index 00000000..e69de29b diff --git a/tests/Test-10.14.6.photoslibrary/resources/recovery/Info.plist b/tests/Test-10.14.6.photoslibrary/resources/recovery/Info.plist index 23463f17..d427fd35 100644 --- a/tests/Test-10.14.6.photoslibrary/resources/recovery/Info.plist +++ b/tests/Test-10.14.6.photoslibrary/resources/recovery/Info.plist @@ -9,7 +9,7 @@ HistoricalMarker LastHistoryRowId - 508 + 522 LibraryBuildTag D8C4AAA1-3AB6-4A65-BEBD-99CC3E5D433E LibrarySchemaVersion @@ -24,7 +24,7 @@ SnapshotCompletedDate 2019-07-27T13:16:43Z SnapshotLastValidated - 2019-08-16T02:08:49Z + 2019-11-27T05:30:11Z SnapshotTables diff --git a/tests/Test-10.14.6.photoslibrary/resources/recovery/RKAlbum/0000000000.lij b/tests/Test-10.14.6.photoslibrary/resources/recovery/RKAlbum/0000000000.lij index 34bb117a..e14d1279 100644 Binary files a/tests/Test-10.14.6.photoslibrary/resources/recovery/RKAlbum/0000000000.lij and b/tests/Test-10.14.6.photoslibrary/resources/recovery/RKAlbum/0000000000.lij differ diff --git a/tests/Test-10.14.6.photoslibrary/resources/recovery/RKVersion/0000000000.lij b/tests/Test-10.14.6.photoslibrary/resources/recovery/RKVersion/0000000000.lij index 2bcb2827..21c78f9d 100644 Binary files a/tests/Test-10.14.6.photoslibrary/resources/recovery/RKVersion/0000000000.lij and b/tests/Test-10.14.6.photoslibrary/resources/recovery/RKVersion/0000000000.lij differ diff --git a/tests/Test-10.14.6.photoslibrary/resources/recovery/RKVersionAnalysisState/0000000000.lij b/tests/Test-10.14.6.photoslibrary/resources/recovery/RKVersionAnalysisState/0000000000.lij index 248f8ccb..54e18d09 100644 Binary files a/tests/Test-10.14.6.photoslibrary/resources/recovery/RKVersionAnalysisState/0000000000.lij and b/tests/Test-10.14.6.photoslibrary/resources/recovery/RKVersionAnalysisState/0000000000.lij differ diff --git a/tests/test_catalina_10_15_1.py b/tests/test_catalina_10_15_1.py index d8ef2115..ca808f0d 100644 --- a/tests/test_catalina_10_15_1.py +++ b/tests/test_catalina_10_15_1.py @@ -152,6 +152,16 @@ def test_favorite(): assert p.favorite() == True +def test_not_favorite(): + import osxphotos + + photosdb = osxphotos.PhotosDB(dbfile=PHOTOS_DB) + photos = photosdb.photos(uuid=["A1DD1F98-2ECD-431F-9AC9-5AFEFE2D3A5C"]) + assert len(photos) == 1 + p = photos[0] + assert p.favorite() == False + + def test_hidden(): import osxphotos @@ -162,6 +172,16 @@ def test_hidden(): assert p.hidden() == True +def test_not_hidden(): + import osxphotos + + photosdb = osxphotos.PhotosDB(dbfile=PHOTOS_DB) + photos = photosdb.photos(uuid=["E9BC5C36-7CD1-40A1-A72B-8B8FAC227D51"]) + assert len(photos) == 1 + p = photos[0] + assert p.hidden() == False + + def test_count(): import osxphotos diff --git a/tests/test_mojave_10_14_6.py b/tests/test_mojave_10_14_6.py index b7697600..dd3ddf81 100644 --- a/tests/test_mojave_10_14_6.py +++ b/tests/test_mojave_10_14_6.py @@ -141,6 +141,46 @@ def test_missing(): assert p.ismissing() == True +def test_favorite(): + import osxphotos + + photosdb = osxphotos.PhotosDB(dbfile=PHOTOS_DB) + photos = photosdb.photos(uuid=["6bxcNnzRQKGnK4uPrCJ9UQ"]) + assert len(photos) == 1 + p = photos[0] + assert p.favorite() == True + + +def test_not_favorite(): + import osxphotos + + photosdb = osxphotos.PhotosDB(dbfile=PHOTOS_DB) + photos = photosdb.photos(uuid=["od0fmC7NQx+ayVr+%i06XA"]) + assert len(photos) == 1 + p = photos[0] + assert p.favorite() == False + + +def test_hidden(): + import osxphotos + + photosdb = osxphotos.PhotosDB(dbfile=PHOTOS_DB) + photos = photosdb.photos(uuid=["od0fmC7NQx+ayVr+%i06XA"]) + assert len(photos) == 1 + p = photos[0] + assert p.hidden() == True + + +def test_not_hidden(): + import osxphotos + + photosdb = osxphotos.PhotosDB(dbfile=PHOTOS_DB) + photos = photosdb.photos(uuid=["6bxcNnzRQKGnK4uPrCJ9UQ"]) + assert len(photos) == 1 + p = photos[0] + assert p.hidden() == False + + def test_count(): import osxphotos