fix!: remove possible panic from client builder
fix: simplify integer divisions
This commit is contained in:
parent
182f9ebfb8
commit
32b4800b46
9 changed files with 40 additions and 21 deletions
|
|
@ -393,7 +393,10 @@ async fn main() {
|
|||
storage_dir.push("rustypipe");
|
||||
_ = std::fs::create_dir(&storage_dir);
|
||||
|
||||
let rp = RustyPipe::builder().storage_dir(storage_dir).build();
|
||||
let rp = RustyPipe::builder()
|
||||
.storage_dir(storage_dir)
|
||||
.build()
|
||||
.unwrap();
|
||||
|
||||
match cli.command {
|
||||
Commands::Download {
|
||||
|
|
|
|||
|
|
@ -16,7 +16,8 @@ pub async fn collect_video_dates(concurrency: usize) {
|
|||
let json_path = path!(*DICT_DIR / "timeago_samples_short.json");
|
||||
let rp = RustyPipe::builder()
|
||||
.visitor_data("Cgtwel9tMkh2eHh0USiyzc6jBg%3D%3D")
|
||||
.build();
|
||||
.build()
|
||||
.unwrap();
|
||||
|
||||
let channels = [
|
||||
"UCeY0bbntWzzVIaj2z3QigXg",
|
||||
|
|
|
|||
|
|
@ -134,6 +134,7 @@ fn rp_testfile(json_path: &Path) -> RustyPipe {
|
|||
.report()
|
||||
.strict()
|
||||
.build()
|
||||
.unwrap()
|
||||
}
|
||||
|
||||
async fn player() {
|
||||
|
|
@ -155,7 +156,7 @@ async fn player() {
|
|||
}
|
||||
|
||||
async fn player_model() {
|
||||
let rp = RustyPipe::builder().strict().build();
|
||||
let rp = RustyPipe::builder().strict().build().unwrap();
|
||||
|
||||
for (name, id) in [("multilanguage", "tVWWp1PqDus"), ("hdr", "LXb3EKWsInQ")] {
|
||||
let json_path =
|
||||
|
|
|
|||
|
|
@ -446,8 +446,7 @@ impl RustyPipeBuilder {
|
|||
}
|
||||
|
||||
/// Return a new, configured RustyPipe instance.
|
||||
#[must_use]
|
||||
pub fn build(self) -> RustyPipe {
|
||||
pub fn build(self) -> Result<RustyPipe, Error> {
|
||||
let mut client_builder = ClientBuilder::new()
|
||||
.user_agent(self.user_agent.unwrap_or_else(|| DEFAULT_UA.to_owned()))
|
||||
.gzip(true)
|
||||
|
|
@ -458,7 +457,7 @@ impl RustyPipeBuilder {
|
|||
client_builder = client_builder.timeout(timeout);
|
||||
}
|
||||
|
||||
let http = client_builder.build().unwrap();
|
||||
let http = client_builder.build()?;
|
||||
|
||||
let storage_dir = self.storage_dir.unwrap_or_default();
|
||||
|
||||
|
|
@ -480,7 +479,7 @@ impl RustyPipeBuilder {
|
|||
})
|
||||
.unwrap_or_default();
|
||||
|
||||
RustyPipe {
|
||||
Ok(RustyPipe {
|
||||
inner: Arc::new(RustyPipeRef {
|
||||
http,
|
||||
storage,
|
||||
|
|
@ -503,7 +502,7 @@ impl RustyPipeBuilder {
|
|||
},
|
||||
default_opts: self.default_opts,
|
||||
}),
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
/// Set the default directory to store the cachefile and reports.
|
||||
|
|
@ -687,8 +686,9 @@ impl RustyPipe {
|
|||
///
|
||||
/// To create an instance with custom options, use [`RustyPipeBuilder`] instead.
|
||||
#[must_use]
|
||||
#[allow(clippy::missing_panics_doc)]
|
||||
pub fn new() -> Self {
|
||||
RustyPipeBuilder::new().build()
|
||||
RustyPipeBuilder::new().build().unwrap()
|
||||
}
|
||||
|
||||
/// Create a new [`RustyPipeBuilder`]
|
||||
|
|
|
|||
|
|
@ -342,9 +342,8 @@ impl MapResponse<VideoPlayer> for response::Player {
|
|||
+ "&sigh="
|
||||
+ sigh;
|
||||
|
||||
let sprite_count = (f64::from(total_count)
|
||||
/ f64::from(frames_per_page_x * frames_per_page_y))
|
||||
.ceil() as u32;
|
||||
let sprite_count =
|
||||
util::div_ceil(total_count, frames_per_page_x * frames_per_page_y);
|
||||
|
||||
Some(Frameset {
|
||||
url_template: url,
|
||||
|
|
|
|||
|
|
@ -11,8 +11,7 @@
|
|||
clippy::cast_sign_loss,
|
||||
clippy::cast_precision_loss,
|
||||
clippy::single_match_else,
|
||||
clippy::missing_errors_doc,
|
||||
clippy::missing_panics_doc
|
||||
clippy::missing_errors_doc
|
||||
)]
|
||||
|
||||
//! ## Go to
|
||||
|
|
|
|||
|
|
@ -272,6 +272,17 @@ pub fn sanitize_yt_url(url: &str) -> String {
|
|||
sanitize_yt_url_inner(url).unwrap_or_else(|| url.to_string())
|
||||
}
|
||||
|
||||
pub fn div_ceil(a: u32, b: u32) -> u32 {
|
||||
let d = a / b;
|
||||
let r = a % b;
|
||||
|
||||
if r > 0 && b > 0 {
|
||||
d + 1
|
||||
} else {
|
||||
d
|
||||
}
|
||||
}
|
||||
|
||||
pub trait TryRemove<T> {
|
||||
/// Removes and returns the element at position `index` within the vector,
|
||||
/// shifting all elements after it to the left.
|
||||
|
|
|
|||
|
|
@ -77,7 +77,7 @@ pub enum DateCmp {
|
|||
}
|
||||
|
||||
impl TimeUnit {
|
||||
pub fn secs(self) -> i64 {
|
||||
pub fn secs(self) -> u32 {
|
||||
match self {
|
||||
TimeUnit::Second => 1,
|
||||
TimeUnit::Minute => 60,
|
||||
|
|
@ -91,8 +91,8 @@ impl TimeUnit {
|
|||
}
|
||||
|
||||
impl TimeAgo {
|
||||
fn secs(self) -> i64 {
|
||||
i64::from(self.n) * self.unit.secs()
|
||||
fn secs(self) -> u32 {
|
||||
u32::from(self.n) * self.unit.secs()
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -109,7 +109,7 @@ impl Mul<u8> for TimeAgo {
|
|||
|
||||
impl From<TimeAgo> for Duration {
|
||||
fn from(ta: TimeAgo) -> Self {
|
||||
Duration::seconds(ta.secs())
|
||||
Duration::seconds(ta.secs().into())
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -331,7 +331,7 @@ pub fn parse_video_duration(lang: Language, video_duration: &str) -> Option<u32>
|
|||
tokens.peek()?;
|
||||
|
||||
tokens.for_each(|ta| {
|
||||
secs += n * ta.secs() as u32;
|
||||
secs += n * ta.secs();
|
||||
n = 1;
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1695,7 +1695,7 @@ fn music_search_videos(rp: RustyPipe, unlocalized: bool) {
|
|||
|
||||
#[tokio::test]
|
||||
async fn music_search_episode() {
|
||||
let rp = RustyPipe::builder().strict().build();
|
||||
let rp = RustyPipe::builder().strict().build().unwrap();
|
||||
let res = rp
|
||||
.query()
|
||||
.music_search_videos("Blond - Da muss man dabei gewesen sein: Das Hörspiel - Fall #1")
|
||||
|
|
@ -2342,6 +2342,7 @@ fn rp(lang: Language) -> RustyPipe {
|
|||
.lang(lang)
|
||||
.visitor_data_opt(vdata)
|
||||
.build()
|
||||
.unwrap()
|
||||
}
|
||||
|
||||
/// Get a flag signaling if the language is set to English
|
||||
|
|
@ -2352,7 +2353,11 @@ fn unlocalized(lang: Language) -> bool {
|
|||
|
||||
/// Get a new RustyPipe instance with pre-set visitor data
|
||||
fn rp_visitor_data(vdata: &str) -> RustyPipe {
|
||||
RustyPipe::builder().strict().visitor_data(vdata).build()
|
||||
RustyPipe::builder()
|
||||
.strict()
|
||||
.visitor_data(vdata)
|
||||
.build()
|
||||
.unwrap()
|
||||
}
|
||||
|
||||
/// Assert equality within 10% margin
|
||||
|
|
|
|||
Reference in a new issue