Home News Breaking News: Chiefs TE Travis Kelce reportedly buying minority stake in Cleveland...

Breaking News: Chiefs TE Travis Kelce reportedly buying minority stake in Cleveland Guardians | 92.3 The Fan

23
0

Breaking News: Chiefs TE Travis Kelce reportedly buying minority stake in Cleveland Guardians | 92.3 The Fan

{
if (part.type !== “literal”) map[part.type] = part.value;
});

return `${map.year}-${map.month}-${map.day}`;
}

function getTodayInTimezone(tz) {
return getLocalDateInTimezone(new Date().toISOString(), tz);
}

function formatTime(iso, tz) {
return new Date(iso).toLocaleTimeString(“en-US”, {
timeZone: tz,
hour: “2-digit”,
minute: “2-digit”,
});
}

function buildMusicRow(item) {
const row = document.createElement(“a”);
row.href = `https://www.audacy.com/stations/${stationSlug}`;
row.className = “player-item”;

const localTime = item.time
? formatTime(item.time, timezone)
: “”;

row.innerHTML = `
${item.title || ''}

${item.artist || “”}
${item.title || “”}
]]>

${localTime}


 `;

 return row;
 }

 function buildScheduleRow(show, stationTimezone) {
 const row = document.createElement(”a”);
 row.href = `https://www.audacy.com/stations/${stationSlug}`;
 row.className = “player-item”;

 const startIso = show.startDateTime;
 const endIso = show.endDateTime;

 const startDayLocal = getLocalDateInTimezone(startIso, stationTimezone);
 const endDayLocal = getLocalDateInTimezone(endIso, stationTimezone);
 const todayLocal = getTodayInTimezone(stationTimezone);

 let label = formatTime(startIso, stationTimezone);

 if (show.isOnNow) {
 label = “On Air Now”;
 } else if (startDayLocal !== todayLocal && endDayLocal === todayLocal) {
 label = `Until ${formatTime(endIso, stationTimezone)}`;
 }

 row.innerHTML = `
 ${show.showTitle || ''}

${formatTime(startIso, stationTimezone)}

&NewLine; &grave;&semi;&NewLine;&NewLine; return row&semi;&NewLine; &rcub;&NewLine;const isNumericValue &equals; &lpar;value&rpar; &equals;> &lbrace;&NewLine; return typeof value &equals;&equals;&equals; “string”&NewLine; &quest; value&period;trim&lpar;&rpar; &excl;&equals;&equals; “” && &excl;isNaN&lpar;Number&lpar;value&period;trim&lpar;&rpar;&rpar;&rpar;&NewLine; &colon; typeof value &equals;&equals;&equals; “number” && &excl;isNaN&lpar;value&rpar;&semi;&NewLine;&rcub;&semi;&NewLine; async function loadMusicBar&lpar;&rpar; &lbrace;&NewLine; let apiUrl &equals; &grave;https&colon;&sol;&sol;api&period;audacy&period;com&sol;experience&sol;v2&sol;stations&sol;&dollar;&lbrace;a2Id&rcub;&sol;nowplaying&quest;count&equals;&dollar;&lbrace;song&lowbar;count&rcub;&grave;&semi;&NewLine; if&lpar;isNumericValue&lpar;awId&rpar;&rpar;&lbrace;&NewLine; &NewLine; &NewLine; apiUrl&equals;&grave;https&colon;&sol;&sol;api-nowplaying&period;amperwave&period;net&sol;api&sol;v1&sol;prtplus&sol;nowplaying&sol;&dollar;&lbrace;song&lowbar;count&rcub;&sol;&dollar;&lbrace;awId&rcub;&sol;nowplaying&period;json&grave;&NewLine; console&period;log&lpar;apiUrl&rpar;&semi;&NewLine; &NewLine; &rcub;&NewLine; &NewLine;&NewLine; try &lbrace;&NewLine; const res &equals; await fetch&lpar;apiUrl&rpar;&semi;&NewLine; const data &equals; await res&period;json&lpar;&rpar;&semi;&NewLine;&NewLine; window&period;performances &equals; data&quest;&period;performances &vert;&vert; &lbrack;&rsqb;&semi;&NewLine; document&period;dispatchEvent&lpar;new Event&lpar;’performances&colon;ready’&rpar;&rpar;&semi;&NewLine;&NewLine; if &lpar;&excl;window&period;performances&period;length&rpar; return&semi;&NewLine;&NewLine; const first &equals; window&period;performances&lbrack;0&rsqb;&semi;&NewLine; currentTrackEl&period;textContent &equals; &grave;&dollar;&lbrace;first&period;artist&rcub; – &dollar;&lbrace;first&period;title&rcub;&grave;&semi;&NewLine; if &lpar;dropdownTitleEl&rpar; dropdownTitleEl&period;textContent &equals; “Recently Played”&semi;&NewLine;&NewLine; listEl&period;innerHTML &equals; “”&semi;&NewLine; window&period;performances&period;slice&lpar;0&comma; 20&rpar;&period;forEach&lpar;item &equals;> &lbrace;&NewLine; listEl&period;appendChild&lpar;buildMusicRow&lpar;item&rpar;&rpar;&semi;&NewLine; &rcub;&rpar;&semi;&NewLine;&NewLine; playerBar&period;classList&period;remove&lpar;”hidden”&rpar;&semi;&NewLine; &rcub; catch &lpar;err&rpar; &lbrace;&NewLine; console&period;error&lpar;”Now Playing API error&colon;”&comma; err&rpar;&semi;&NewLine; &rcub;&NewLine; &rcub;&NewLine;&NewLine; async function loadScheduleBar&lpar;&rpar; &lbrace;&NewLine; const baseDate &equals; new Date&lpar;&rpar;&semi;&NewLine; const startWindow &equals; new Date&lpar;baseDate&rpar;&semi;&NewLine; const endWindow &equals; new Date&lpar;baseDate&rpar;&semi;&NewLine;&NewLine; startWindow&period;setDate&lpar;baseDate&period;getDate&lpar;&rpar; – 1&rpar;&semi;&NewLine; endWindow&period;setDate&lpar;baseDate&period;getDate&lpar;&rpar; &plus; 2&rpar;&semi;&NewLine;&NewLine; const startDateStr &equals; formatDate&lpar;startWindow&rpar;&semi;&NewLine; const endDateStr &equals; formatDate&lpar;endWindow&rpar;&semi;&NewLine;&NewLine; const apiUrl &equals; &grave;https&colon;&sol;&sol;api&period;audacy&period;com&sol;experience&sol;v2&sol;stations&sol;&dollar;&lbrace;stationId&rcub;&sol;schedules&quest;startDate&equals;&dollar;&lbrace;startDateStr&rcub;&endDate&equals;&dollar;&lbrace;endDateStr&rcub;&timezone&equals;UTC&grave;&semi;&NewLine;&NewLine; try &lbrace;&NewLine; const res &equals; await fetch&lpar;apiUrl&rpar;&semi;&NewLine; const data &equals; await res&period;json&lpar;&rpar;&semi;&NewLine; const occurrences &equals; data&quest;&period;occurrences &vert;&vert; &lbrack;&rsqb;&semi;&NewLine;&NewLine; if &lpar;&excl;occurrences&period;length&rpar; return&semi;&NewLine;&NewLine; const stationTimezone &equals; occurrences&lbrack;0&rsqb;&period;timezone &vert;&vert; timezone &vert;&vert; “UTC”&semi;&NewLine; const todayLocal &equals; getTodayInTimezone&lpar;stationTimezone&rpar;&semi;&NewLine;&NewLine; const todaysShows &equals; occurrences&NewLine; &period;filter&lpar;show &equals;> &lbrace;&NewLine; const startDayLocal &equals; getLocalDateInTimezone&lpar;show&period;startDateTime&comma; stationTimezone&rpar;&semi;&NewLine; const endDayLocal &equals; getLocalDateInTimezone&lpar;show&period;endDateTime&comma; stationTimezone&rpar;&semi;&NewLine;&NewLine; return startDayLocal &equals;&equals;&equals; todayLocal &vert;&vert; endDayLocal &equals;&equals;&equals; todayLocal&semi;&NewLine; &rcub;&rpar;&NewLine; &period;sort&lpar;&lpar;a&comma; b&rpar; &equals;> new Date&lpar;a&period;startDateTime&rpar; – new Date&lpar;b&period;startDateTime&rpar;&rpar;&semi;&NewLine;&NewLine; if &lpar;&excl;todaysShows&period;length&rpar; return&semi;&NewLine;&NewLine; const currentShow &equals;&NewLine; todaysShows&period;find&lpar;show &equals;> show&period;isOnNow&rpar; &vert;&vert;&NewLine; todaysShows&period;find&lpar;show &equals;> &lbrace;&NewLine; const now &equals; Date&period;now&lpar;&rpar;&semi;&NewLine; return new Date&lpar;show&period;startDateTime&rpar;&period;getTime&lpar;&rpar; <&equals; now &&&NewLine; new Date&lpar;show&period;endDateTime&rpar;&period;getTime&lpar;&rpar; > now&semi;&NewLine; &rcub;&rpar; &vert;&vert;&NewLine; todaysShows&lbrack;0&rsqb;&semi;&NewLine;&NewLine; currentTrackEl&period;textContent &equals; currentShow&period;showTitle &vert;&vert; “”&semi;&NewLine; if &lpar;dropdownTitleEl&rpar; dropdownTitleEl&period;textContent &equals; “Today’s Schedule”&semi;&NewLine;&NewLine; listEl&period;innerHTML &equals; “”&semi;&NewLine; todaysShows&period;slice&lpar;0&comma; 20&rpar;&period;forEach&lpar;show &equals;> &lbrace;&NewLine; listEl&period;appendChild&lpar;buildScheduleRow&lpar;show&comma; stationTimezone&rpar;&rpar;&semi;&NewLine; &rcub;&rpar;&semi;&NewLine;&NewLine; playerBar&period;classList&period;remove&lpar;”hidden”&rpar;&semi;&NewLine; &rcub; catch &lpar;err&rpar; &lbrace;&NewLine; console&period;error&lpar;”Schedule API error&colon;”&comma; err&rpar;&semi;&NewLine; &rcub;&NewLine; &rcub;&NewLine; if &lpar;stationType &equals;&equals;&equals; “music”&rpar; &lbrace;&NewLine; loadMusicBar&lpar;&rpar;&semi;&NewLine; &rcub; else if &lpar;stationType &equals;&equals;&equals; “sports” &vert;&vert; stationType &equals;&equals;&equals; “news”&rpar; &lbrace;&NewLine; loadScheduleBar&lpar;&rpar;&semi;&NewLine; &rcub;&NewLine;&NewLine; const playerContent &equals; document&period;querySelector&lpar;”&period;player-content”&rpar;&semi;&NewLine; if &lpar;playerContent&rpar; &lbrace;&NewLine; playerContent&period;addEventListener&lpar;”click”&comma; function &lpar;&rpar; &lbrace;&NewLine; playerContent&period;classList&period;toggle&lpar;”visible”&rpar;&semi;&NewLine; &rcub;&rpar;&semi;&NewLine; &rcub;&NewLine;&rcub;&rpar;&semi;&NewLine;