Merge branch 'albums-utils' into 'main'
Add utilities around albums and assets See merge request kernald/immich-tools!13
This commit is contained in:
commit
866fe29b05
3 changed files with 91 additions and 0 deletions
21
src/utils/albums.rs
Normal file
21
src/utils/albums.rs
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
use crate::{
|
||||||
|
types::{AlbumResponseDto, AssetResponseDto},
|
||||||
|
Client,
|
||||||
|
};
|
||||||
|
use color_eyre::eyre::Result;
|
||||||
|
use uuid::Uuid;
|
||||||
|
|
||||||
|
pub async fn fetch_all_albums(client: &Client) -> Result<Vec<AlbumResponseDto>> {
|
||||||
|
Ok(client.get_all_albums(None, None).await?.to_vec())
|
||||||
|
}
|
||||||
|
|
||||||
|
pub async fn fetch_album_assets(
|
||||||
|
album_uuid: &Uuid,
|
||||||
|
client: &Client,
|
||||||
|
) -> Result<Vec<AssetResponseDto>> {
|
||||||
|
Ok(client
|
||||||
|
.get_album_info(album_uuid, None, Some(false))
|
||||||
|
.await?
|
||||||
|
.assets
|
||||||
|
.clone())
|
||||||
|
}
|
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)
|
||||||
|
}
|
|
@ -1 +1,3 @@
|
||||||
|
pub mod albums;
|
||||||
|
pub mod assets;
|
||||||
pub mod people;
|
pub mod people;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue