mirror of
https://github.com/jellyfin/jellyfin-web.git
synced 2024-11-18 03:18:19 -07:00
81 lines
1.8 KiB
JavaScript
81 lines
1.8 KiB
JavaScript
|
(function (document, $) {
|
|||
|
|
|||
|
var currentOwnerId;
|
|||
|
var currentThemeIds = [];
|
|||
|
|
|||
|
function playThemeSongs(items, ownerId) {
|
|||
|
|
|||
|
var player = getPlayer();
|
|||
|
|
|||
|
if (items.length && player.isDefaultPlayer && player.canAutoPlayAudio()) {
|
|||
|
|
|||
|
// Stop if a theme song from another ownerId
|
|||
|
// Leave it alone if anything else (e.g user playing a movie)
|
|||
|
if (!currentOwnerId && player.isPlaying()) {
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
currentThemeIds = items.map(function (i) {
|
|||
|
return i.Id;
|
|||
|
});
|
|||
|
|
|||
|
currentOwnerId = ownerId;
|
|||
|
|
|||
|
player.play({
|
|||
|
items: items
|
|||
|
});
|
|||
|
|
|||
|
} else {
|
|||
|
currentOwnerId = null;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
function onPlayItem(item) {
|
|||
|
|
|||
|
// User played something manually
|
|||
|
if (currentThemeIds.indexOf(item.Id) == -1) {
|
|||
|
|
|||
|
currentOwnerId = null;
|
|||
|
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
function enabled(isEnabled) {
|
|||
|
|
|||
|
var userId = Dashboard.getCurrentUserId();
|
|||
|
|
|||
|
var key = userId + '-themesongs';
|
|||
|
|
|||
|
if (isEnabled != null) {
|
|||
|
|
|||
|
var val = isEnabled ? '1' : '0';
|
|||
|
|
|||
|
localStorage.setItem(key, val);
|
|||
|
|
|||
|
return;
|
|||
|
}
|
|||
|
return localStorage.getItem(key);
|
|||
|
}
|
|||
|
|
|||
|
function getPlayer() {
|
|||
|
return MediaController.getCurrentPlayer();
|
|||
|
}
|
|||
|
|
|||
|
$(document).on('thememediadownload', ".libraryPage", function (e, themeMediaResult) {
|
|||
|
|
|||
|
if (!enabled()) {
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
var ownerId = themeMediaResult.ThemeSongsResult.OwnerId;
|
|||
|
|
|||
|
if (ownerId != currentOwnerId) {
|
|||
|
playThemeSongs(themeMediaResult.ThemeSongsResult.Items, ownerId);
|
|||
|
}
|
|||
|
});
|
|||
|
|
|||
|
window.ThemeSongManager = {
|
|||
|
enabled: enabled
|
|||
|
};
|
|||
|
|
|||
|
})(document, jQuery);
|