1 个不稳定版本
0.1.0 | 2019年5月30日 |
---|
#8 in #photos
29KB
429 行
一个简单但强大的库,用于与macOS上Apple Photos应用使用的SQLite数据库交互。
安装
将以下内容添加到您的Cargo.toml中
...
[Dependencies]
...
rust-apple-photos = "0.1.0"
...
基本用法
extern crate rust-apple-photos;
extern crate rusqlite;
use rust-apple-photos::ApplePhotos;
use rust-apple-photos::types::{ Album };
fn main() -> Result<()>
{
/* Specify other .db path using "new_with_path" method! */
let photos: ApplePhotos = ApplePhotos::new()?;
let albums: Vec<Album> = photos.get_albums()?;
println!("You have {} albums!", albums.len());
}
自定义查询
...
fn get_large_images() -> Result<()>
{
...
let big_boys: Vec<Master> = photos.query("SELECT * FROM RKMaster WHERE width >= 2000 AND height >= 2000")?;
println!("You have {} images that are big!", big_boys.len());
}
...
路线图
需要实现很多模型才能完成基础层。如果目标是完全替代Apple自己的实现,还需要实现额外的子模型。
模型
- RKAdminData
- RKAlbum
- RKAlbumVersion
- RKAttachment
- RKBookmark
- RKCloudResource
- RKCustomSortOrder
- RKFace
- RKFaceCrop
- RKFaceGroup
- RKFacePrint
- RKFolder
- RKImageMask
- RKImageProxyState
- RKImportGroup
- RKImportMoment
- RKKeyword
- RKMaster
- RKMemory
- RKMemoryCuratedVersion
- RKMemoryExtendedCuratedVersion
- RKMemoryMovieVersion
- RKMemoryRepresentativeVersion
- RKModelResource
- RKMoment
- RKMomentCollection
- RKMomentYear
- RKPerson
- RKPersonInvalidMergeCandidatePerson
- RKPersonMergeCandidatePerson
- RKPersonRejectedFace
- RKPersonRejectedFaceNeedingFaceCrop
- RKPlace
- RKPlaceForVersion
- RKSceneInVersion
- RKVersion
- RKVersionAnalysisState
- RKVolume
贡献
如果您想改进任何内容,请提交一个pull request。
许可证
rust-apple-photos 在MIT许可证下可用。有关更多信息,请参阅LICENSE文件。
依赖项
~21MB
~413K SLoC