instagram_link/
media_metadata.rs1use instagram_media_shortcode::{ig_id_to_shortcode, is_private_shortcode, shortcode_to_ig_id};
2
3#[derive(Debug, Clone, PartialEq, Eq)]
5pub struct MediaMetadata {
6 pub ig_id: u64,
7 pub shortcode: String,
8 pub is_public_shortcode: Option<bool>,
9}
10
11impl MediaMetadata {
12 pub fn with_ig_id(ig_id: u64) -> Self {
13 Self {
14 ig_id,
15 shortcode: ig_id_to_shortcode(ig_id),
16 is_public_shortcode: None,
17 }
18 }
19
20 pub fn with_shortcode(shortcode: String) -> Result<Self, String> {
21 let ig_id = shortcode_to_ig_id(&shortcode)?;
22 let is_public_shortcode = Some(!is_private_shortcode(&shortcode));
23
24 Ok(Self {
25 ig_id,
26 shortcode,
27 is_public_shortcode,
28 })
29 }
30}