soundtouch-api
Version:
SoundTouch API using TypeScript
59 lines • 2.82 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.nowPlayingFromElement = void 0;
var special_types_1 = require("./special-types");
var connection_status_info_1 = require("./connection-status-info");
var time_1 = require("./time");
var art_1 = require("./art");
var content_item_1 = require("./content-item");
function nowPlayingFromElement(element) {
if (!element.hasAttributes(['deviceID', 'source'])
|| !element.hasChild('ContentItem')) {
return undefined;
}
var artElement = element.getChild('art');
var timeElement = element.getChild('time');
var csiElement = element.getChild('ConnectionStatusInfo');
var deviceId = element.getAttribute('deviceID');
var source = element.getAttribute('source');
var contentItemElement = element.getChild('ContentItem');
if (!artElement || !timeElement || !csiElement || !deviceId || !source || !contentItemElement) {
return undefined;
}
var rating = element.getText('rating');
var playStatus = element.getText('playStatus');
var shuffleSetting = element.getText('shuffleSetting');
var repeatSetting = element.getText('repeatSetting');
var streamType = element.getText('streamType');
var contentItem = (0, content_item_1.contentItemFromElement)(contentItemElement);
if (!contentItem) {
return undefined;
}
return {
deviceId: deviceId,
source: source,
sourceAccount: element.getAttribute('sourceAccount') || '',
contentItem: contentItem,
track: element.getText('track'),
artist: element.getText('artist'),
album: element.getText('album'),
genre: element.getText('genre'),
rating: rating ? rating : special_types_1.Rate.none,
stationName: element.getText('stationName'),
art: artElement ? (0, art_1.artFromElement)(artElement) : undefined,
time: timeElement ? (0, time_1.timeFromElement)(timeElement) : undefined,
canGoForward: element.hasChild('skipEnabled'),
canGoBackward: element.hasChild('skipPreviousEnabled'),
isFavoriteEnabled: element.hasChild('favoriteEnabled'),
isFavorite: element.hasChild('isFavorite'),
isRateEnabled: element.hasChild('rateEnabled'),
playStatus: playStatus ? playStatus : undefined,
shuffleSetting: shuffleSetting ? shuffleSetting : undefined,
repeatSetting: repeatSetting ? repeatSetting : undefined,
streamType: streamType ? streamType : undefined,
stationLocation: element.getText('stationLocation'),
connectionStatusInfo: csiElement ? (0, connection_status_info_1.connectionStatusInfoFromElement)(csiElement) : undefined
};
}
exports.nowPlayingFromElement = nowPlayingFromElement;
//# sourceMappingURL=now-playing.js.map