#sqlite #apple #photos #macos #interact #model

rust-apple-photos

一个简单但强大的库,用于与macOS上Apple Photos应用使用的SQLite数据库交互。

1 个不稳定版本

0.1.0 2019年5月30日

#8 in #photos

MIT 许可证

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