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