Skip to content

Commit 84d0995

Browse files
committed
Fix clippy warnings.
1 parent a9a979f commit 84d0995

10 files changed

Lines changed: 58 additions & 68 deletions

File tree

src/client/music_details.rs

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -185,16 +185,15 @@ fn inspect_music_tabs<'a>(
185185
Ok((panel, lyrics_id, related_id))
186186
}
187187

188+
type PlaylistPanelData = (
189+
Vec<response::music_item::PlaylistPanelVideo>,
190+
Vec<String>,
191+
Option<String>,
192+
);
193+
188194
fn deserialize_playlist_panel(
189195
panel: &JsonNode<'_>,
190-
) -> Result<
191-
(
192-
Vec<response::music_item::PlaylistPanelVideo>,
193-
Vec<String>,
194-
Option<String>,
195-
),
196-
ExtractionError,
197-
> {
196+
) -> Result<PlaylistPanelData, ExtractionError> {
198197
let contents = panel.require(ytq!(.contents), "playlist panel contents")?;
199198
let (items, warnings) = contents.deserialize_items_lossy::<response::music_item::PlaylistPanelVideo>();
200199
let ctoken = panel

src/client/music_genres.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ impl MapJsonResponse<MusicGenre> for MusicGenreJson {
112112
) -> Result<MapResult<MusicGenre>, ExtractionError> {
113113
json.with_root(|root| {
114114
let sections = yt_single_column_sections(&root)?;
115-
let name = yt_music_header_title(&root).ok_or_else(|| {
115+
let name = yt_music_header_title(&root).ok_or({
116116
ExtractionError::InvalidData(Cow::Borrowed("missing genre header title"))
117117
})?;
118118

src/client/music_playlist.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -455,16 +455,17 @@ fn map_music_album_fields(
455455
match section {
456456
response::music_item::ItemSection::MusicShelfRenderer(sh) => shelf = Some(sh),
457457
response::music_item::ItemSection::MusicCarouselShelfRenderer(sh) => {
458-
if sh
458+
let is_album_versions = sh
459459
.header
460+
.as_ref()
460461
.map(|h| {
461462
h.music_carousel_shelf_basic_header_renderer
462463
.title
463464
.first_str()
464465
== dictionary::entry(ctx.lang).album_versions_title
465466
})
466-
.unwrap_or_default()
467-
{
467+
.unwrap_or_default();
468+
if is_album_versions {
468469
album_variants = Some(sh.contents);
469470
}
470471
}

src/client/playlist.rs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -56,28 +56,28 @@ fn yt_playlist_video_list<'a>(root: &JsonNode<'a>) -> Result<JsonNode<'a>, Extra
5656
ytq!(.contents.twoColumnBrowseResultsRenderer),
5757
"two column browse results",
5858
)?;
59-
let tab = yt_first_tab(&browse).ok_or_else(|| {
59+
let tab = yt_first_tab(&browse).ok_or({
6060
ExtractionError::InvalidData(Cow::Borrowed("twoColumnBrowseResultsRenderer empty"))
6161
})?;
6262
let sections = tab.require(
6363
ytq!(.tabRenderer.content.sectionListRenderer.contents),
6464
"section list renderer",
6565
)?;
66-
let section = sections.items().into_iter().next().ok_or_else(|| {
66+
let section = sections.items().into_iter().next().ok_or({
6767
ExtractionError::InvalidData(Cow::Borrowed("sectionListRenderer empty"))
6868
})?;
6969
let item_section = section.require(
7070
ytq!(.itemSectionRenderer.contents),
7171
"item section renderer",
7272
)?;
73-
let item = item_section.items().into_iter().next().ok_or_else(|| {
73+
let item = item_section.items().into_iter().next().ok_or({
7474
ExtractionError::InvalidData(Cow::Borrowed("itemSectionRenderer empty"))
7575
})?;
7676
item.first_of(&[
7777
ytq!(.playlistVideoListRenderer.contents),
7878
ytq!(.richGridRenderer.contents),
7979
])
80-
.ok_or_else(|| ExtractionError::InvalidData(Cow::Borrowed("playlist video list empty")))
80+
.ok_or(ExtractionError::InvalidData(Cow::Borrowed("playlist video list empty")))
8181
}
8282

8383
impl MapJsonResponse<Playlist> for PlaylistJson {
@@ -104,7 +104,7 @@ impl MapJsonResponse<Playlist> for PlaylistJson {
104104
"playlist sidebar items",
105105
)?
106106
.items();
107-
let primary = sidebar_items.into_iter().next().ok_or_else(|| {
107+
let primary = sidebar_items.into_iter().next().ok_or({
108108
ExtractionError::InvalidData(Cow::Borrowed("no primary sidebar"))
109109
})?;
110110
let info = primary.require(
@@ -138,7 +138,7 @@ impl MapJsonResponse<Playlist> for PlaylistJson {
138138
};
139139

140140
let header: response::playlist::Header = header
141-
.ok_or_else(|| ExtractionError::InvalidData(Cow::Borrowed("no header")))?
141+
.ok_or(ExtractionError::InvalidData(Cow::Borrowed("no header")))?
142142
.deserialize()?;
143143

144144
let (
@@ -270,7 +270,7 @@ impl MapJsonResponse<Playlist> for PlaylistJson {
270270
ctx.authenticated,
271271
),
272272
video_count: n_videos,
273-
thumbnail: thumbnails.into(),
273+
thumbnail: thumbnails,
274274
description,
275275
channel,
276276
last_update,

src/client/response/music_item.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1083,7 +1083,7 @@ impl MusicListMapper {
10831083
let from_ytm = subtitle_p2
10841084
.as_ref()
10851085
.and_then(|p| p.0.first())
1086-
.map_or(true, util::is_ytm);
1086+
.is_none_or(util::is_ytm);
10871087
let channel = subtitle_p2
10881088
.and_then(|p| p.0.into_iter().find_map(|c| ChannelId::try_from(c).ok()));
10891089

@@ -1219,7 +1219,7 @@ impl MusicListMapper {
12191219
let from_ytm = subtitle_p2
12201220
.as_ref()
12211221
.and_then(|p| p.0.first())
1222-
.map_or(true, util::is_ytm);
1222+
.is_none_or(util::is_ytm);
12231223
let channel = subtitle_p2
12241224
.and_then(|p| p.0.into_iter().find_map(|c| ChannelId::try_from(c).ok()));
12251225
let track_count =

src/client/response/video_details.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ pub(crate) enum VideoResultsItem {
7070
},
7171
#[serde(rename_all = "camelCase")]
7272
VideoSecondaryInfoRenderer {
73-
owner: VideoOwner,
73+
owner: Box<VideoOwner>,
7474
#[serde(default)]
7575
#[serde_as(as = "DefaultOnError<Option<AttributedText>>")]
7676
description: Option<TextComponents>,

src/client/response/video_item.rs

Lines changed: 12 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -836,11 +836,10 @@ impl YouTubeListMapper<YouTubeItem> {
836836
self.items.push(mapped);
837837
}
838838
}
839-
YouTubeListItem::ContinuationItemRenderer(r) => {
840-
if self.ctoken.is_none() {
841-
self.ctoken = r.continuation_endpoint.into_token();
842-
}
839+
YouTubeListItem::ContinuationItemRenderer(r) if self.ctoken.is_none() => {
840+
self.ctoken = r.continuation_endpoint.into_token();
843841
}
842+
YouTubeListItem::ContinuationItemRenderer(_) => {}
844843
YouTubeListItem::ShowingResultsForRenderer { corrected_query } => {
845844
self.corrected_query = Some(corrected_query);
846845
}
@@ -861,7 +860,7 @@ impl YouTubeListMapper<YouTubeItem> {
861860
}
862861

863862
pub(crate) fn map_response_node(&mut self, node: &JsonNode<'_>) {
864-
let (items, mut warnings) = node.deserialize_items_lossy::<YouTubeListItem>();
863+
let (items, warnings) = node.deserialize_items_lossy::<YouTubeListItem>();
865864
self.map_response(MapResult {
866865
c: items,
867866
warnings,
@@ -894,11 +893,10 @@ impl YouTubeListMapper<VideoItem> {
894893
self.items.push(mapped);
895894
}
896895
}
897-
YouTubeListItem::ContinuationItemRenderer(r) => {
898-
if self.ctoken.is_none() {
899-
self.ctoken = r.continuation_endpoint.into_token();
900-
}
896+
YouTubeListItem::ContinuationItemRenderer(r) if self.ctoken.is_none() => {
897+
self.ctoken = r.continuation_endpoint.into_token();
901898
}
899+
YouTubeListItem::ContinuationItemRenderer(_) => {}
902900
YouTubeListItem::ShowingResultsForRenderer { corrected_query } => {
903901
self.corrected_query = Some(corrected_query);
904902
}
@@ -919,7 +917,7 @@ impl YouTubeListMapper<VideoItem> {
919917
}
920918

921919
pub(crate) fn map_response_node(&mut self, node: &JsonNode<'_>) {
922-
let (items, mut warnings) = node.deserialize_items_lossy::<YouTubeListItem>();
920+
let (items, warnings) = node.deserialize_items_lossy::<YouTubeListItem>();
923921
self.map_response(MapResult {
924922
c: items,
925923
warnings,
@@ -956,11 +954,10 @@ impl YouTubeListMapper<PlaylistItem> {
956954
self.items.push(mapped);
957955
}
958956
}
959-
YouTubeListItem::ContinuationItemRenderer(r) => {
960-
if self.ctoken.is_none() {
961-
self.ctoken = r.continuation_endpoint.into_token();
962-
}
957+
YouTubeListItem::ContinuationItemRenderer(r) if self.ctoken.is_none() => {
958+
self.ctoken = r.continuation_endpoint.into_token();
963959
}
960+
YouTubeListItem::ContinuationItemRenderer(_) => {}
964961
YouTubeListItem::ShowingResultsForRenderer { corrected_query } => {
965962
self.corrected_query = Some(corrected_query);
966963
}
@@ -981,7 +978,7 @@ impl YouTubeListMapper<PlaylistItem> {
981978
}
982979

983980
pub(crate) fn map_response_node(&mut self, node: &JsonNode<'_>) {
984-
let (items, mut warnings) = node.deserialize_items_lossy::<YouTubeListItem>();
981+
let (items, warnings) = node.deserialize_items_lossy::<YouTubeListItem>();
985982
self.map_response(MapResult {
986983
c: items,
987984
warnings,

src/deobfuscate.rs

Lines changed: 19 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -306,10 +306,8 @@ fn extract_js_fn(js: &str, name: &str) -> Result<String, DeobfError> {
306306
}
307307
level.bracket -= 1;
308308
}
309-
Punct::SemiColon => {
310-
if var_def_this_lvl() {
311-
var_def_stmt = None;
312-
}
309+
Punct::SemiColon if var_def_this_lvl() => {
310+
var_def_stmt = None;
313311
}
314312
Punct::Comma => {
315313
if let Some((lvl, rhs)) = &mut var_def_stmt {
@@ -339,21 +337,20 @@ fn extract_js_fn(js: &str, name: &str) -> Result<String, DeobfError> {
339337
}
340338
_ => {}
341339
},
342-
Token::Ident(id) => {
343-
// Ignore object attributes
344-
if !period_before && !global_objects.contains(&id.as_ref()) {
345-
// If we are on the left hand side of a variable definition statement
346-
// or after "function", mark the variable name as defined
347-
if var_def_stmt
348-
.as_ref()
349-
.map(|(lvl, rhs)| lvl == &level && !rhs)
350-
.unwrap_or_default()
351-
|| function_before
352-
{
353-
idents.insert(id.to_string(), true);
354-
} else {
355-
idents.entry(id.to_string()).or_default();
356-
}
340+
Token::Ident(id)
341+
if !period_before && !global_objects.contains(&id.as_ref()) =>
342+
{
343+
// If we are on the left hand side of a variable definition statement
344+
// or after "function", mark the variable name as defined
345+
if var_def_stmt
346+
.as_ref()
347+
.map(|(lvl, rhs)| lvl == &level && !rhs)
348+
.unwrap_or_default()
349+
|| function_before
350+
{
351+
idents.insert(id.to_string(), true);
352+
} else {
353+
idents.entry(id.to_string()).or_default();
357354
}
358355
}
359356
_ => {}
@@ -440,11 +437,9 @@ fn extract_js_var(js: &str) -> Option<&str> {
440437
Punct::CloseBrace => close_brace(&mut braces, b'{')?,
441438
Punct::CloseBracket => close_brace(&mut braces, b'[')?,
442439
Punct::CloseParen => close_brace(&mut braces, b'(')?,
443-
Punct::Comma | Punct::SemiColon => {
444-
if braces.is_empty() {
445-
end = it.span.start;
446-
break;
447-
}
440+
Punct::Comma | Punct::SemiColon if braces.is_empty() => {
441+
end = it.span.start;
442+
break;
448443
}
449444
_ => {}
450445
}

src/model/frameset.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ pub struct FramesetUrls<'a> {
3535

3636
impl Frameset {
3737
/// Gets an iterator over the page URLs of the frameset
38-
pub fn urls(&self) -> FramesetUrls {
38+
pub fn urls(&self) -> FramesetUrls<'_> {
3939
FramesetUrls {
4040
frameset: self,
4141
i: 0,

src/util/mod.rs

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -230,9 +230,7 @@ pub fn retry_delay(
230230
) -> u32 {
231231
let unjittered_delay = backoff_base.checked_pow(n_past_retries).unwrap_or(u32::MAX);
232232
let jitter_factor = rand::rng().random_range(800..1500);
233-
let jittered_delay = unjittered_delay
234-
.checked_mul(jitter_factor)
235-
.unwrap_or(u32::MAX);
233+
let jittered_delay = unjittered_delay.saturating_mul(jitter_factor);
236234

237235
min_retry_interval.max(jittered_delay.min(max_retry_interval))
238236
}
@@ -711,9 +709,9 @@ pub(crate) mod tests {
711709
#[test]
712710
fn t_vec_try_remove() {
713711
let mut v = vec![1, 2, 3];
714-
assert_eq!(v.try_remove(0).unwrap(), 1);
715-
assert_eq!(v.try_remove(1).unwrap(), 3);
716-
assert_eq!(v.try_remove(1), None);
712+
assert_eq!(TryRemove::try_remove(&mut v, 0).unwrap(), 1);
713+
assert_eq!(TryRemove::try_remove(&mut v, 1).unwrap(), 3);
714+
assert_eq!(TryRemove::try_remove(&mut v, 1), None);
717715
}
718716

719717
#[test]

0 commit comments

Comments
 (0)