fix: revert new album mv replacement
This commit is contained in:
parent
d0a8b6fabe
commit
055d266809
5 changed files with 17 additions and 815 deletions
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
Reference in a new issue