Add utilities around albums and assets
This commit is contained in:
parent
d37ab08728
commit
a8796b2728
3 changed files with 91 additions and 0 deletions
68
src/utils/assets.rs
Normal file
68
src/utils/assets.rs
Normal file
|
@ -0,0 +1,68 @@
|
|||
use crate::{
|
||||
types::{AssetResponseDto, MetadataSearchDto},
|
||||
Client,
|
||||
};
|
||||
use color_eyre::eyre::Result;
|
||||
|
||||
pub async fn fetch_all_assets(client: &Client) -> Result<Vec<AssetResponseDto>> {
|
||||
let mut all_assets = Vec::new();
|
||||
let mut page_number = None;
|
||||
let mut has_next_page = true;
|
||||
|
||||
while has_next_page {
|
||||
let fetched = client
|
||||
.search_metadata(&MetadataSearchDto {
|
||||
checksum: None,
|
||||
city: None,
|
||||
country: None,
|
||||
created_after: None,
|
||||
created_before: None,
|
||||
device_asset_id: None,
|
||||
device_id: None,
|
||||
encoded_video_path: None,
|
||||
id: None,
|
||||
is_archived: None,
|
||||
is_encoded: None,
|
||||
is_favorite: None,
|
||||
is_motion: None,
|
||||
is_not_in_album: None,
|
||||
is_offline: None,
|
||||
is_visible: None,
|
||||
lens_model: None,
|
||||
library_id: None,
|
||||
make: None,
|
||||
model: None,
|
||||
order: None,
|
||||
original_file_name: None,
|
||||
original_path: None,
|
||||
page: page_number,
|
||||
person_ids: vec![],
|
||||
preview_path: None,
|
||||
size: None,
|
||||
state: None,
|
||||
taken_after: None,
|
||||
taken_before: None,
|
||||
thumbnail_path: None,
|
||||
trashed_after: None,
|
||||
trashed_before: None,
|
||||
type_: None,
|
||||
updated_after: None,
|
||||
updated_before: None,
|
||||
with_archived: true,
|
||||
with_deleted: None,
|
||||
with_exif: None,
|
||||
with_people: None,
|
||||
with_stacked: None,
|
||||
})
|
||||
.await?;
|
||||
all_assets.extend(fetched.assets.items.clone());
|
||||
has_next_page = fetched.assets.next_page.is_some();
|
||||
page_number = fetched
|
||||
.assets
|
||||
.next_page
|
||||
.clone()
|
||||
.map(|page| page.parse::<f64>().unwrap());
|
||||
}
|
||||
|
||||
Ok(all_assets)
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue