Skip to content

Commit 123f289

Browse files
committed
В дискографию добавлен пункт все лайки
1 parent f36ea12 commit 123f289

File tree

3 files changed

+33
-17
lines changed

3 files changed

+33
-17
lines changed

page/changelog.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ <h2>Список изменений YaMuTools</h2>
2727
<h3>Версия 0.8.4</h3>
2828
<hr />
2929
<ul>
30+
<li>В дискографию добавлен пункт "все лайки".</li>
3031
<li>Исправлена некорректная работа чекбокса "больше не напоминать" в уведомлении оставить отзыв. Также увеличен период, при котором оно приходит.</li>
3132
</ul>
3233
</section>

script/tool/collector.js

Lines changed: 30 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -259,10 +259,6 @@ const COLLECTOR_ARTIST_DROPDOWN = {
259259
{
260260
id: 'artistCollectorMain',
261261
items: [
262-
{
263-
title: PERIOD.DEFAULT.title,
264-
handler: () => collectDiscographyOfPeriod(PERIOD.DEFAULT),
265-
},
266262
{
267263
title: PERIOD.ONE_YEAR.title,
268264
handler: () => collectDiscographyOfPeriod(PERIOD.ONE_YEAR),
@@ -275,6 +271,14 @@ const COLLECTOR_ARTIST_DROPDOWN = {
275271
title: PERIOD.FIVE_YEAR.title,
276272
handler: () => collectDiscographyOfPeriod(PERIOD.FIVE_YEAR),
277273
},
274+
{
275+
title: PERIOD.DEFAULT.title,
276+
handler: () => collectDiscographyOfPeriod(PERIOD.DEFAULT),
277+
},
278+
{
279+
title: 'Все лайки',
280+
handler: () => collectDiscographyLikes(),
281+
},
278282
],
279283
},
280284
],
@@ -601,20 +605,29 @@ async function collectDiscoveryAlbums(playlist) {
601605
}
602606
}
603607

608+
function collectDiscographyLikes() {
609+
collectDiscography(PERIOD.DEFAULT, 'likes');
610+
}
611+
604612
function collectDiscographyOfPeriod(period) {
605-
selectedPlaylist = PLAYLIST.discography;
606-
selectedPlaylist.period = period;
607-
collectDiscography();
613+
collectDiscography(period, 'all');
608614
}
609615

610-
function collectDiscography() {
616+
function collectDiscography(period, type) {
617+
selectedPlaylist = PLAYLIST.discography;
618+
selectedPlaylist.period = period;
611619
fireCollectorSwal(selectedPlaylist.title);
612620
toggleDropdown('artistCollectorMain');
613-
receiveAlbumsOfArtist((response) => {
621+
622+
receiveAlbumsOfArtist(async (response) => {
614623
selectedPlaylist.albums = response.albums;
615624
filterAlbumsByPeriod(selectedPlaylist.period);
625+
let trackIds = formatAlbumTracksToIds(selectedPlaylist.albums);
626+
if (type == 'likes') {
627+
trackIds = await removeAllExceptLikes(trackIds);
628+
}
616629
selectedPlaylist.title += ' ' + response.artist.name;
617-
selectedPlaylist.trackIds = formatAlbumTracksToIds(selectedPlaylist.albums);
630+
selectedPlaylist.trackIds = trackIds
618631
patchPlaylistWithRedirect(selectedPlaylist);
619632
});
620633
}
@@ -795,11 +808,13 @@ function removeFav(ids, callback) {
795808
removeDislikeIds(ids, (trackIds) => removeLikeIds(trackIds, callback));
796809
}
797810

798-
function removeAllExceptLikes(trackIds, callback) {
799-
receiveFavoriteTrackIds(FAV_TYPE.LIKE, (likeIds) => {
800-
let filteredTrackIds = trackIds.filter((item) => likeIds.some((likeTrack) => likeTrack.id == item.id));
801-
callback(filteredTrackIds);
802-
});
811+
function removeAllExceptLikes(trackIds) {
812+
return new Promise(resolve => {
813+
receiveFavoriteTrackIds(FAV_TYPE.LIKE, (likeIds) => {
814+
let filteredTrackIds = trackIds.filter((item) => likeIds.some((likeTrack) => likeTrack.id == item.id));
815+
resolve(filteredTrackIds);
816+
});
817+
})
803818
}
804819

805820
function removeFavoriteTrackIds(trackIds, type, callback) {

script/tool/playlist/filter.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ function onClickControlDislikesTracks(playlist) {
6060
removeFAV: 'Удалить оба типа',
6161
removeAllExceptLikes: 'Оставить только лайки',
6262
},
63-
}).then((action) => {
63+
}).then(async (action) => {
6464
if (!action.isConfirmed) {
6565
return;
6666
}
@@ -73,7 +73,7 @@ function onClickControlDislikesTracks(playlist) {
7373
} else if (action.value == 'removeFAV') {
7474
removeFav(ids, callback);
7575
} else if (action.value == 'removeAllExceptLikes') {
76-
removeAllExceptLikes(ids, callback);
76+
callback(await removeAllExceptLikes(ids));
7777
}
7878
});
7979

0 commit comments

Comments
 (0)