1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00

Added instant mixes

This commit is contained in:
Luke Pulverenti 2013-08-09 11:55:22 -04:00
parent 000607b1e5
commit 1dd5d68710
4 changed files with 129 additions and 10 deletions

View file

@ -319,6 +319,50 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout) {
});
};
self.getInstantMixFromSong = function (itemId, options) {
var url = self.getUrl("Songs/" + itemId + "/InstantMix", options);
return self.ajax({
type: "GET",
url: url,
dataType: "json"
});
};
self.getInstantMixFromAlbum = function (itemId, options) {
var url = self.getUrl("Albums/" + itemId + "/InstantMix", options);
return self.ajax({
type: "GET",
url: url,
dataType: "json"
});
};
self.getInstantMixFromArtist = function (name, options) {
var url = self.getUrl("Artists/" + self.encodeName(name) + "/InstantMix", options);
return self.ajax({
type: "GET",
url: url,
dataType: "json"
});
};
self.getInstantMixFromMusicGenre = function (name, options) {
var url = self.getUrl("MusicGenres/" + self.encodeName(name) + "/InstantMix", options);
return self.ajax({
type: "GET",
url: url,
dataType: "json"
});
};
self.getSimilarMovies = function (itemId, options) {
var url = self.getUrl("Movies/" + itemId + "/Similar", options);

View file

@ -331,10 +331,23 @@
if (itemType == "Artist") {
html += '<li><a href="#" onclick="MediaPlayer.playArtist(\'' + itemId + '\');LibraryBrowser.closePlayMenu();">Play</a></li>';
} else {
} else if (itemType != "MusicGenre") {
html += '<li><a href="#" onclick="MediaPlayer.playById(\'' + itemId + '\');LibraryBrowser.closePlayMenu();">Play</a></li>';
}
if (itemType == "Audio") {
html += '<li><a href="#" onclick="MediaPlayer.playInstantMixFromSong(\'' + itemId + '\');LibraryBrowser.closePlayMenu();">Instant Mix</a></li>';
}
else if (itemType == "MusicAlbum") {
html += '<li><a href="#" onclick="MediaPlayer.playInstantMixFromAlbum(\'' + itemId + '\');LibraryBrowser.closePlayMenu();">Instant Mix</a></li>';
}
else if (itemType == "Artist") {
html += '<li><a href="#" onclick="MediaPlayer.playInstantMixFromArtist(\'' + itemId + '\');LibraryBrowser.closePlayMenu();">Instant Mix</a></li>';
}
else if (itemType == "MusicGenre") {
html += '<li><a href="#" onclick="MediaPlayer.playInstantMixFromMusicGenre(\'' + itemId + '\');LibraryBrowser.closePlayMenu();">Instant Mix</a></li>';
}
if (resumePositionTicks) {
html += '<li><a href="#" onclick="MediaPlayer.playById(\'' + itemId + '\', ' + resumePositionTicks + ');LibraryBrowser.closePlayMenu();">Resume</a></li>';
}
@ -342,7 +355,7 @@
if (isPlaying) {
if (itemType == "Artist") {
html += '<li><a href="#" onclick="MediaPlayer.queueArtist(\'' + itemId + '\');LibraryBrowser.closePlayMenu();">Queue</a></li>';
} else {
} else if (itemType != "MusicGenre") {
html += '<li><a href="#" onclick="MediaPlayer.queue(\'' + itemId + '\');LibraryBrowser.closePlayMenu();">Queue</a></li>';
}
}

View file

@ -727,7 +727,7 @@
self.canPlay = function (item) {
if (item.Type == "MusicAlbum" || item.Type == "MusicArtist" || item.Type == "Artist") {
if (item.Type == "MusicAlbum" || item.Type == "MusicArtist" || item.Type == "Artist" || item.Type == "MusicGenre") {
return true;
}
return self.canPlayMediaType(item.MediaType);
@ -936,12 +936,14 @@
$('.nowPlayingMediaInfo', nowPlayingBar).html(html);
};
var getItemFields = "MediaStreams,UserData,DisplayMediaType,Chapters,Path";
self.getItemsForPlayback = function (query) {
var userId = Dashboard.getCurrentUserId();
query.Limit = query.Limit || 100;
query.Fields = "MediaStreams,UserData,DisplayMediaType,SeriesInfo,AudioInfo,Chapters,Path";
query.Fields = getItemFields;
return ApiClient.getItems(userId, query);
};
@ -972,6 +974,66 @@
};
self.playInstantMixFromSong = function (id) {
ApiClient.getInstantMixFromSong(id, {
UserId: Dashboard.getCurrentUserId(),
Fields: getItemFields,
Limit: 50
}).done(function (result) {
self.play(result.Items);
});
};
self.playInstantMixFromAlbum = function (id) {
ApiClient.getInstantMixFromAlbum(id, {
UserId: Dashboard.getCurrentUserId(),
Fields: getItemFields,
Limit: 50
}).done(function (result) {
self.play(result.Items);
});
};
self.playInstantMixFromArtist = function (name) {
ApiClient.getInstantMixFromArtist(name, {
UserId: Dashboard.getCurrentUserId(),
Fields: getItemFields,
Limit: 50
}).done(function (result) {
self.play(result.Items);
});
};
self.playInstantMixFromMusicGenre = function (name) {
ApiClient.getInstantMixFromMusicGenre(name, {
UserId: Dashboard.getCurrentUserId(),
Fields: getItemFields,
Limit: 50
}).done(function (result) {
self.play(result.Items);
});
};
self.playArtist = function (artist) {
self.getItemsForPlayback({

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="MediaBrowser.ApiClient.Javascript" version="3.0.159" targetFramework="net45" />
<package id="MediaBrowser.ApiClient.Javascript" version="3.0.160" targetFramework="net45" />
<package id="ServiceStack.Common" version="3.9.56" targetFramework="net45" />
<package id="ServiceStack.Text" version="3.9.55" targetFramework="net45" />
</packages>