Cody Johnson sets sights on ACM Entertainer and Album of the Year wins (2024)

"},"displayProperties":{},"localEdits":{"items":{}},"variants":{}}},{"collection":"features","type":"Common/ArcAd","props":{"collection":"features","type":"Common/ArcAd","id":"0fail1qu6TLR21J","contentConfig":{"contentService":"","contentConfigValues":{},"inherit":true},"customFields":{"adType":"1x1px","spacingBottomTablet":"none","debug":false,"spacingBottomMobile":"none","lazyLoad":false,"spacingBottomDesktop":"none","display":"all"},"displayProperties":{},"localEdits":{"items":{}},"variants":{}}},{"collection":"features","type":"Common/ArcAd","props":{"collection":"features","type":"Common/ArcAd","id":"0f53hAqu6TLR2QG","contentConfig":{"contentService":"","contentConfigValues":{},"inherit":true},"customFields":{"adType":"970x90|970x250|728x90|320x50hp02","spacingBottomTablet":"none","debug":false,"spacingBottomMobile":"none","lazyLoad":false,"spacingBottomDesktop":"none","display":"all"},"displayProperties":{},"localEdits":{"items":{}},"variants":{}}}]},{"collection":"sections","props":{"collection":"sections","id":8},"children":[{"collection":"features","type":"@wpmedia/footer-block/footer","props":{"collection":"features","type":"@wpmedia/footer-block/footer","id":"0fdEybru6TLR2DX","contentConfig":{"contentService":"","contentConfigValues":{},"inherit":true},"customFields":{"navigationConfig":{"contentService":"site-service-hierarchy","contentConfigValues":{"hierarchy":"footer-nav-bar"}}},"displayProperties":{},"localEdits":{"items":{}},"variants":{}}},{"collection":"features","type":"@wpmedia/htmlbox-block/htmlbox","props":{"collection":"features","type":"@wpmedia/htmlbox-block/htmlbox","id":"0fhTRJru6TLR2Ks","contentConfig":{"contentService":"","contentConfigValues":{},"inherit":true},"customFields":{"HTML":"

\n

\n

\n

© Cox Media Group. All Rights Reserved. By using this website, you accept the terms of our Visitor Agreement and Privacy Policy, and understand your options regarding Ad Choices. Learn about careers at Cox Media Group.

\n

\n

\n Cody Johnson sets sights on ACM Entertainer and Album of the Year wins (1)\n Portions of Content Provided by Rovi Corporation. © Rovi Corporation\n

\n

\n
","id":"rovi-footer"},"displayProperties":{},"localEdits":{},"variants":{}}}]}]};Fusion.spa=false;Fusion.spaEnabled=true;

Audio Temporarily Unavailable

You may be offline. Please check your connection and try again using the Retry button.

Cody Johnson sets sights on ACM Entertainer and Album of the Year wins (2)

Listen Live

Cody Johnson sets sights on ACM Entertainer and Album of the Year wins (3)

Learn More

Share currently playing on Facebook (Opens a new window)

'; epArtistSong.innerHTML = artistAndSong; var epLearnMore = document.getElementById('ep-learnMore'); if (this.getCMGPPDetails('linkUrl')) { epLearnMore.setAttribute('href', this.getCMGPPDetails('linkUrl')); epLearnMore.classList.remove('hidden'); epLearnMore.onclick = function () { // send analytics data (onClick on react did not send, this does: do not move) self.args.dataLayerFn(self.args.analyticsEvent, { element: 'persistent', elementSubTitle: 'biography' }); }; } else { epLearnMore.setAttribute('href', this.getCMGPPDetails('linkUrl')); epLearnMore.classList.add('hidden'); } epTwitterShare.setAttribute('href', 'https://twitter.com/intent/tweet?text=' + encodeURIComponent(self.getShareText()) + '&url=' + self.args.stationURL + '/stream'); epBuyNow.setAttribute('href', this.getCMGPPDetails('buyLink')); if (this.getCMGPPDetails('buyLink')) epBuyNow.classList.remove('hidden');else epBuyNow.classList.add('hidden'); // Header Player var headerTitle = document.getElementById('headerSongTitle'); if (headerTitle) { if (headerTitle.innerHTML !== this.getCMGPPDetails('title')) headerTitle.innerHTML = this.getCMGPPDetails('title'); if (headerTitle.tagName === 'A') { if (this.getCMGPPDetails('linkUrl')) headerTitle.setAttribute('href', this.getCMGPPDetails('linkUrl'));else headerTitle.removeAttribute('href'); } } var headerArtist = document.getElementById('headerSongArtist'); if (headerArtist) { if (headerArtist.innerHTML !== this.getCMGPPDetails('artist')) headerArtist.innerHTML = this.getCMGPPDetails('artist'); if (headerArtist.tagName === 'A') { if (this.getCMGPPDetails('linkUrl')) headerArtist.setAttribute('href', this.getCMGPPDetails('linkUrl'));else headerArtist.removeAttribute('href'); } } }, headerPPButton: function headerPPButton() { var self = this; var headerButton = document.getElementById('header-play-button'); var toggleEventFn = function toggleEventFn() { var persistentPlayerButton = headerButton.classList.contains('persistent-player-controls'); var playButton = headerButton.classList.contains('ui-icon-play'); var retryButton = headerButton.classList.contains('ui-icon-retry'); if (self.args.playerFallback) { window.open('https://player.streamguys.com/cmg/' + self.args.stationID + '/sgplayer/player.php', 'playerpopup', 'width=974,height=450,location=0,menubar=0,resizable=0,scrollbars=0,status=0,toolbar=0'); } else { window.fireEvent('TogglePlayer'); } // send analytics for play-interaction if (playButton || retryButton) { self.args.dataLayerFn(self.args.analyticsEvent, { element: persistentPlayerButton ? 'persistent' : 'header', elementSubTitle: playButton ? 'play' : 'retry' }); } }; headerButton.addEventListener('click', toggleEventFn); }, setUpEventListeners: function setUpEventListeners() { var self = this; window.addEventListener('ExpandPlayer', function () { /* istanbul ignore next */ self.expandPlayer(); }); var closePlayer = document.getElementById('player-close'); if (closePlayer) { closePlayer.addEventListener('click', function () { /* istanbul ignore next */ self.collapsePlayer(true, true); }); } var toggle = document.getElementById('playerToggle'); if (toggle) { toggle.addEventListener('click', function () { /* istanbul ignore next */ self.toggleExpand(true); }); } // toggle event for mobile only var ppDetails = document.getElementById('ppDetails'); if (ppDetails) { document.getElementById('ppDetails').addEventListener('click', function () { /* istanbul ignore next */ if (document.getElementById('playerToggle').offsetParent === null) { self.toggleExpand(true); } }); } var epLearnMore = document.getElementById('ep-learnMore'); /* istanbul ignore next */ epLearnMore.addEventListener('click', function () { self.collapsePlayer(); }); // toggle voting icons var toggleVotingIcons = document.querySelectorAll('.pp-toggle-voting'); for (var i = 0; i < toggleVotingIcons.length; ++i) { var toggleVotingIcon = toggleVotingIcons[i]; if (toggleVotingIcon) toggleVotingIcon.addEventListener('click', function (e) { self.toggleVote(e); }); } // toggle play/pause listener var togglePlayerButtons = document.querySelectorAll('.pp-toggle-play-pause'); var _loop = function _loop(_i) { var togglePlayerButton = togglePlayerButtons[_i]; if (togglePlayerButton) togglePlayerButton.addEventListener('click', function () { var persistentPlayerButton = togglePlayerButton.classList.contains('persistent-player-controls'); var playButton = togglePlayerButton.querySelectorAll('.ui-icon-play').length > 0 || togglePlayerButton.classList.contains('ui-icon-play'); var retryButton = togglePlayerButton.querySelectorAll('.ui-icon-retry').length > 0 || togglePlayerButton.classList.contains('ui-icon-retry'); if (self.args.playerFallback) { window.open('https://player.streamguys.com/cmg/' + self.args.stationID + '/sgplayer/player.php', 'playerpopup', 'width=974,height=450,location=0,menubar=0,resizable=0,scrollbars=0,status=0,toolbar=0'); } else { window.fireEvent('TogglePlayer'); } // send analytics for play-interaction if (playButton || retryButton) { self.args.dataLayerFn(self.args.analyticsEvent, { element: persistentPlayerButton ? 'persistent' : 'header', elementSubTitle: playButton ? 'play' : 'retry' }); } }); }; for (var _i = 0; _i < togglePlayerButtons.length; ++_i) { _loop(_i); } ; // buy now listener window.addEventListener('BuyNow', function (event) { if (!historyId || historyId !== event.detail.id || !event.detail.linkUrl) return; self.setCMGPPDetails('buyLink', event.detail.linkUrl); self.updatePlayerInfo(); }); // lsp listener (music sites) var historyId; window.addEventListener('LSP', function (event) { var playerVoting = document.getElementById('player-voting'); var playerVotingExpanded = document.getElementById('player-voting_expanded'); var latest = event.detail.data.length && event.detail.data[0]; if (!latest) return; var newId = latest.isSong ? latest.id : null; if (historyId !== newId) self.setCMGPPDetails('buyLink', ''); if (latest.isSong) { var thumbnailUrl = self.args.stationLogoSmall; if (latest.artists.length && latest.artists[0].metadata && latest.artists[0].metadata.thumbnailUrl) { thumbnailUrl = latest.artists[0].metadata.thumbnailUrl; } var epImageUrl = latest.artists.length && latest.artists[0].metadata && latest.artists[0].metadata.mediumImageUrl ? latest.artists[0].metadata.mediumImageUrl : self.args.stationLogo; var fetchTivoImageBinary = function fetchTivoImageBinary(variable, url) { function arrayBufferToBase64(buffer) { var binary = ''; var bytes = new Uint8Array(buffer); var len = bytes.byteLength; for (var _i2 = 0; _i2 < len; _i2 += 1) { binary += String.fromCharCode(bytes[_i2]); } return window.btoa(binary); } var headers = new Headers({ 'x-tmm-keyid': 'TAC1003', 'x-tmm-apikey': event.detail.TIVO_API_KEY }); var options = { method: 'GET', headers: headers, mode: 'cors' }; var promise = fetch(url, options).then(function (response) { var buffer = response.arrayBuffer(); return buffer; }).then(function (buffer) { var b64encoded = arrayBufferToBase64(buffer); var data = "data:image/jpeg;base64, ".concat(b64encoded); self.setCMGPPDetails(variable, data); }); return promise; }; if (thumbnailUrl !== self.args.stationLogoSmall && epImageUrl !== self.args.stationLogo && !thumbnailUrl.includes('cps-static') && !!event.detail.TIVO_API_KEY) { var thumbnailPromise = fetchTivoImageBinary('thumbnailUrl', thumbnailUrl); var epImagePromise = fetchTivoImageBinary('largeImageUrl', epImageUrl); Promise.any([thumbnailPromise, epImagePromise]); } else { self.setCMGPPDetails('thumbnailUrl', thumbnailUrl); self.setCMGPPDetails('largeImageUrl', epImageUrl); } // song info is injected by StreamGuys var sgTitle = document.getElementById('songTitle'); var sgArtist = document.getElementById('songArtist'); var sgAlbum = document.getElementById('songAlbum'); var albumTitle = ''; if (sgAlbum) { var titleMatch = sgTitle && sgTitle.innerHTML.toLowerCase() === latest.title.toLowerCase(); var artistMatch = sgArtist && sgArtist.innerHTML.toLowerCase() === latest.artist.toLowerCase(); if (titleMatch && artistMatch) { // use the streamguys provided album if the title and artist match albumTitle = sgAlbum.innerHTML; } else if (historyId === newId) { // don't change the currently displayed album name if lsp has not updated albumTitle = self.getCMGPPDetails('albumTitle'); } } self.setCMGPPDetails('albumTitle', albumTitle); self.setCMGPPDetails('largeImageAlt', latest.artists.length && latest.artists[0].metadata && latest.artists[0].metadata.mediumImageUrl ? latest.artist : self.args.stationTitle); self.setCMGPPDetails('artist', latest.artist); self.setCMGPPDetails('title', latest.title); if (latest.artists[0]) { self.setCMGPPDetails('linkUrl', '/lsp/artist/bio/' + latest.artists[0].slug + '/'); } else { self.setCMGPPDetails('linkUrl', ''); } playerVoting.classList.remove('hidden'); playerVotingExpanded.classList.remove('hidden'); } else { self.setCMGPPDetails('thumbnailUrl', self.args.stationLogoSmall); self.setCMGPPDetails('largeImageUrl', self.args.stationLogo); self.setCMGPPDetails('largeImageAlt', self.args.stationTitle); self.setCMGPPDetails('artist', self.args.stationStatement); self.setCMGPPDetails('title', self.args.stationTitle); self.setCMGPPDetails('albumTitle', ''); self.setCMGPPDetails('linkUrl', ''); playerVoting.classList.add('hidden'); playerVotingExpanded.classList.add('hidden'); } // fire the event after we've already done all of our processing to avoid data mutation side-effects var detail = { type: 'LSP', data: event.detail }; window.fireEvent(self.args.type, detail); historyId = newId; self.updatePlayerInfo(); }); // scheduler listener (newstalk) window.addEventListener('Scheduler', function (event) { var data = {}; if (event.detail.current) { var current = event.detail.current; data.thumbnailUrl = self.args.stationLogoSmall; if (current.images && current.images.square) { data.thumbnailUrl = current.images.square; } if (current.images && current.images.lowres) { data.largeImageUrl = current.images.lowres; data.largeImageAlt = current.title; } else { data.largeImageUrl = self.args.stationLogo; data.largeImageAlt = self.args.stationTitle; } data.artist = current.showtime; data.title = current.title; data.linkUrl = current.url; } else { data.thumbnailUrl = self.args.stationLogoSmall; data.largeImageUrl = self.args.stationLogo; data.largeImageAlt = self.args.stationTitle; data.artist = self.args.stationStatement; data.title = self.args.stationTitle; data.linkUrl = ''; } // exceptions if (self.args.stationURL === 'https://www.theboneonline.com') { data.linkUrl = '/bonetv'; } // send the normalized data to other components var detail = { type: 'Scheduler', data: { image: data.largeImageUrl, imageAlt: data.largeImageAlt, title: data.title, time: data.artist, url: data.linkUrl, original: event.detail } }; window.fireEvent(self.args.type, detail); // only update the persistent player info if this is not a music site if (!self.args.isMusicSite) { Object.keys(data).forEach(function (key) { self.setCMGPPDetails(key, data[key]); }); self.updatePlayerInfo(); } }); // modal button listeners var modal = document.getElementById('player-retry-modal'); if (modal) { var closeModal = document.getElementById('closeModal'); if (closeModal) closeModal.addEventListener('click', function () { modal.classList.add('hidden'); document.body.classList.remove('locked'); }); var retryButton = document.getElementById('retryPlay'); if (retryButton) retryButton.addEventListener('click', function () { self.args.dataLayerFn(self.args.analyticsEvent, { element: 'retry modal', elementSubTitle: 'retry' }); modal.classList.add('hidden'); document.body.classList.remove('locked'); window.fireEvent('TogglePlayer'); }); } ; // adjust persistent player volume var volumeButton = document.getElementById("volumeButton"); if (volumeButton) { volumeButton.oninput = function () { var playerControls = document.getElementById('playerControls'); var playerControlsStyle = getComputedStyle(playerControls); var backgroundColor = self.args.isMusicSite ? 'white' : playerControlsStyle.backgroundColor; this.style.background = 'linear-gradient(to right, ' + backgroundColor + ' 0%, ' + backgroundColor + ' ' + this.value + '%, #afafaf ' + this.value + '%, #afafaf 100%)'; var newVolume = event.target.value / 100; _sgplayer.setVol(_sgplayer.audioElement, newVolume); }; } }, init: function init(type, isMusicSite, stationTitle, stationStatement, stationLogoSmall, stationLogo, stationURL, facebookAppID, playerFallback, stationID, analyticsEvent, dataLayerFn) { this.player = document.getElementById('persistent-player'); if (!this.player) return null; this.data.thumbnailUrl = stationLogoSmall; this.data.largeImageUrl = stationLogo; this.data.largeImageAlt = stationTitle; this.args = { type: type, isMusicSite: isMusicSite, stationTitle: stationTitle, stationStatement: stationStatement, stationLogoSmall: stationLogoSmall, stationLogo: stationLogo, stationURL: stationURL, facebookAppID: facebookAppID, playerFallback: playerFallback, stationID: stationID, analyticsEvent: analyticsEvent, dataLayerFn: dataLayerFn }; this.setUpFacebookShare(facebookAppID); this.setUpEventListeners(); return; } };});

Cody Johnson sets sights on ACM Entertainer and Album of the Year wins (2024)

References

Top Articles
Latest Posts
Article information

Author: Tish Haag

Last Updated:

Views: 5279

Rating: 4.7 / 5 (67 voted)

Reviews: 90% of readers found this page helpful

Author information

Name: Tish Haag

Birthday: 1999-11-18

Address: 30256 Tara Expressway, Kutchburgh, VT 92892-0078

Phone: +4215847628708

Job: Internal Consulting Engineer

Hobby: Roller skating, Roller skating, Kayaking, Flying, Graffiti, Ghost hunting, scrapbook

Introduction: My name is Tish Haag, I am a excited, delightful, curious, beautiful, agreeable, enchanting, fancy person who loves writing and wants to share my knowledge and understanding with you.