UNPKG

soundtouch-api

Version:
59 lines 2.82 kB
"use strict"; 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