mirror of
https://github.com/crunchy-labs/crunchy-cli.git
synced 2026-01-21 04:02:00 -06:00
Show fractal in relative_sequence_number if present
This commit is contained in:
parent
685c79d673
commit
d0fe7f54f6
3 changed files with 20 additions and 6 deletions
|
|
@ -2,7 +2,7 @@ use crate::archive::command::Archive;
|
||||||
use crate::utils::filter::{real_dedup_vec, Filter};
|
use crate::utils::filter::{real_dedup_vec, Filter};
|
||||||
use crate::utils::format::{Format, SingleFormat, SingleFormatCollection};
|
use crate::utils::format::{Format, SingleFormat, SingleFormatCollection};
|
||||||
use crate::utils::interactive_select::{check_for_duplicated_seasons, get_duplicated_seasons};
|
use crate::utils::interactive_select::{check_for_duplicated_seasons, get_duplicated_seasons};
|
||||||
use crate::utils::parse::UrlFilter;
|
use crate::utils::parse::{fract, UrlFilter};
|
||||||
use anyhow::Result;
|
use anyhow::Result;
|
||||||
use crunchyroll_rs::{Concert, Episode, Locale, Movie, MovieListing, MusicVideo, Season, Series};
|
use crunchyroll_rs::{Concert, Episode, Locale, Movie, MovieListing, MusicVideo, Season, Series};
|
||||||
use log::{info, warn};
|
use log::{info, warn};
|
||||||
|
|
@ -321,8 +321,10 @@ impl Filter for ArchiveFilter {
|
||||||
}
|
}
|
||||||
if ep.id == episode.id {
|
if ep.id == episode.id {
|
||||||
relative_episode_number = Some(i + 1);
|
relative_episode_number = Some(i + 1);
|
||||||
relative_sequence_number =
|
relative_sequence_number = Some(
|
||||||
Some((i + 1 - non_integer_sequence_number_count) as f32);
|
(i + 1 - non_integer_sequence_number_count) as f32
|
||||||
|
+ fract(ep.sequence_number),
|
||||||
|
);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@ use crate::download::Download;
|
||||||
use crate::utils::filter::Filter;
|
use crate::utils::filter::Filter;
|
||||||
use crate::utils::format::{Format, SingleFormat, SingleFormatCollection};
|
use crate::utils::format::{Format, SingleFormat, SingleFormatCollection};
|
||||||
use crate::utils::interactive_select::{check_for_duplicated_seasons, get_duplicated_seasons};
|
use crate::utils::interactive_select::{check_for_duplicated_seasons, get_duplicated_seasons};
|
||||||
use crate::utils::parse::UrlFilter;
|
use crate::utils::parse::{fract, UrlFilter};
|
||||||
use anyhow::{bail, Result};
|
use anyhow::{bail, Result};
|
||||||
use crunchyroll_rs::{Concert, Episode, Movie, MovieListing, MusicVideo, Season, Series};
|
use crunchyroll_rs::{Concert, Episode, Movie, MovieListing, MusicVideo, Season, Series};
|
||||||
use log::{error, info, warn};
|
use log::{error, info, warn};
|
||||||
|
|
@ -211,8 +211,10 @@ impl Filter for DownloadFilter {
|
||||||
}
|
}
|
||||||
if ep.id == episode.id {
|
if ep.id == episode.id {
|
||||||
relative_episode_number = Some(i + 1);
|
relative_episode_number = Some(i + 1);
|
||||||
relative_sequence_number =
|
relative_sequence_number = Some(
|
||||||
Some((i + 1 - non_integer_sequence_number_count) as f32);
|
(i + 1 - non_integer_sequence_number_count) as f32
|
||||||
|
+ fract(ep.sequence_number),
|
||||||
|
);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -192,3 +192,13 @@ pub fn parse_resolution(mut resolution: String) -> Result<Resolution> {
|
||||||
bail!("Could not find resolution")
|
bail!("Could not find resolution")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Dirty implementation of [`f32::fract`] with more accuracy.
|
||||||
|
pub fn fract(input: f32) -> f32 {
|
||||||
|
if input.fract() == 0.0 {
|
||||||
|
return 0.0;
|
||||||
|
}
|
||||||
|
format!("0.{}", input.to_string().split('.').last().unwrap())
|
||||||
|
.parse::<f32>()
|
||||||
|
.unwrap()
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue