fix: revert new album mv replacement

This commit is contained in:
ThetaDev 2023-02-09 13:48:32 +01:00
parent d0a8b6fabe
commit 055d266809
5 changed files with 17 additions and 815 deletions

View file

@ -80,7 +80,7 @@ impl RustyPipeQuery {
.enumerate()
.filter_map(|(i, track)| {
if track.is_video {
track.track_nr.map(|n| (i, n))
Some((i, track.name.to_owned()))
} else {
None
}
@ -88,12 +88,21 @@ impl RustyPipeQuery {
.collect::<Vec<_>>();
if !to_replace.is_empty() {
let playlist = self.playlist_w_unavail(playlist_id).await?;
let playlist = self.music_playlist(playlist_id).await?;
for (i, track_n) in to_replace {
if let Some(t) = playlist.videos.items.get(track_n as usize - 1) {
album.tracks[i].id = t.id.to_owned();
album.tracks[i].duration = Some(t.length);
for (i, title) in to_replace {
let found_track = playlist.tracks.items.iter().find_map(|track| {
if track.name == title && !track.is_video {
Some((track.id.to_owned(), track.duration))
} else {
None
}
});
if let Some((track_id, duration)) = found_track {
album.tracks[i].id = track_id;
if let Some(duration) = duration {
album.tracks[i].duration = Some(duration);
}
album.tracks[i].is_video = false;
}
}

View file

@ -9,10 +9,7 @@ use crate::{
util::{self, TryRemove},
};
use super::{
response, ClientType, MapResponse, MapResult, QBrowse, QBrowseParams, QContinuation,
RustyPipeQuery,
};
use super::{response, ClientType, MapResponse, MapResult, QBrowse, QContinuation, RustyPipeQuery};
impl RustyPipeQuery {
/// Get a YouTube playlist
@ -34,29 +31,6 @@ impl RustyPipeQuery {
.await
}
/// Get a YouTube playlist including unavailable tracks
pub(crate) async fn playlist_w_unavail<S: AsRef<str>>(
&self,
playlist_id: S,
) -> Result<Playlist, Error> {
let playlist_id = playlist_id.as_ref();
let context = self.get_context(ClientType::Desktop, true, None).await;
let request_body = QBrowseParams {
context,
browse_id: &format!("VL{playlist_id}"),
params: "wgYCCAA%3D",
};
self.execute_request::<response::Playlist, _, _>(
ClientType::Desktop,
"playlist",
playlist_id,
"browse",
&request_body,
)
.await
}
/// Get more playlist items using the given continuation token
pub async fn playlist_continuation<S: AsRef<str>>(
&self,