{"id":5,"date":"2016-11-16T09:33:55","date_gmt":"2016-11-16T14:33:55","guid":{"rendered":"https:\/\/sites.bu.edu\/wtbu\/wtbu-radio\/"},"modified":"2026-02-17T18:03:27","modified_gmt":"2026-02-17T23:03:27","slug":"wtbu-radio","status":"publish","type":"page","link":"https:\/\/sites.bu.edu\/wtbu\/","title":{"rendered":"Home"},"content":{"rendered":"<style>\n    .home-wrapper {\n        grid-template-areas:\n            \"buttons\"\n            \"sidebar\"\n            \"content\";\n    }<\/p>\n<p>    @media (min-width: 1000px) {\n        .home-wrapper {\n            grid-template-columns: 2fr 5fr;\n            grid-template-areas:\n                \"buttons buttons\"\n                \"sidebar content\";\n        }\n    }\n<\/style>\n<div class=\"home-wrapper\">\n<div class=\"home-buttons\">\n        <a class=\"home-button border-transit\" target=\"_blank\" href=\"http:\/\/headphones.bu.edu\/live\" rel=\"noopener noreferrer\">LISTEN NOW<\/a><br \/>\n        <a class=\"home-button border-transit\" target=\"_blank\" href=\"https:\/\/spinitron.com\/WTBU\/\" rel=\"noopener noreferrer\">Song History \/ Upcoming<\/a><br \/>\n        <a class=\"home-button border-transit\" target=\"_blank\" href=\"http:\/\/headphones.bu.edu\" rel=\"noopener noreferrer\">Past Shows<\/a>\n    <\/div>\n<div class=\"home-sidebar\">\n<div class=\"spinitron-playlist\">\n<h3>On-Air Now:<\/h3>\n<p>            <!-- Spinitron widget documentation at https:\/\/spinitron.github.io\/v2-web-integration\/widget.html--><\/p>\n<div class=\"spinitron-js-widget\" data-action=\"current-playlist\" data-station=\"wtbu\"><\/div>\n<div class=\"spinitron-js-widget\" data-action=\"now-playing-v2\" data-station=\"wtbu\" data-num=\"5\" data-sharing=\"1\" data-player=\"1\" data-merch=\"0\" data-cover=\"1\"><\/div>\n<p>            <script async src=\"https:\/\/spinitron.com\/static\/js\/widget.js\"><\/script><br \/>\n            <!--\n    \n\n<ul class=\"juicer-feed\" data-feed-id=\"wtburadio\" data-per=\"2\" data-pages=\"1\">\n\n<h4>WTBU on Instagram:<\/h4>\n\n<\/ul>\n\n\n    \n    <script type=\"text\/javascript\" src=\"https:\/\/www.juicer.io\/embed\/wtburadio\/embed-code.js\" async defer><\/script>\n    -->\n        <\/div>\n<\/p><\/div>\n<div class=\"home-main-content\">\n<h2 class=\"postsTitle\"> Music <\/h2>\n<div id=\"music-posts-container\"><\/div>\n<p class=\"more-posts\"><a class=\"more-posts__link\" href=\"https:\/\/sites.bu.edu\/wtbu\/music\/\">More Music<\/a><\/p>\n<h2 class=\"postsTitle\"> Sports <\/h2>\n<div id=\"sports-posts-container\"><\/div>\n<p class=\"more-posts\"><a class=\"more-posts__link\" href=\"https:\/\/sites.bu.edu\/wtbu\/sports\/\">More Sports<\/a><\/p>\n<h2 class=\"postsTitle\"> WTBU Sessions <\/h2>\n<div class=\"responsiveVideo responsive-youtube\"><iframe loading=\"lazy\" title=\"WTBU SESSION: Axel &amp; Lolo\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/ubTPXoPF-cs?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/div>\n<p style=\"text-align: center\"><i>Boston&#8217;s own Axel &#038; Lolo came into WTBU to play some indie folk pop.<\/i> <\/p>\n<p class=\"more-posts\"><a class=\"more-posts__link\" href=\"https:\/\/sites.bu.edu\/wtbu\/music\/sessions\/\">More WTBU Sessions<\/a><\/p>\n<\/p><\/div>\n<\/div>\n<p><script>\r\n    \/\/ Change app download link for iphone visitors based on their useragent\r\n    let iPhoneUser = navigator.userAgent.indexOf('iPhone') > -1\r\n    if (iPhoneUser) {\r\n        document.getElementById('appdownload').setAttribute('href', 'itms-apps:\/\/itunes.apple.com\/app\/apple-store\/id1487871820')\r\n    }\r\n\r\n    \/\/ Code that autopopulates the Music and Sports sections based on BU Posts widgets that are hidden by CSS.\r\n    \/**\r\n     * Creates html of the form WTBU is used to: \r\n     *   <section class=\"news-articles\">\r\n     *   <div class=\"news-articles-img\">\r\n     *   <a href=\"https:\/\/sites.bu.edu\/wtbu\/2019\/11\/19\/review-skegss-brighton-music-hall-11-17\/\"><img src=\"\/wtbu\/files\/2019\/11\/skegss-1-768x396.jpg\" alt=\"REVIEW: Skegss @ Brighton Music Hall 11\/17\" class=\"hp-article-img\"\/><\/a>\r\n     *   <\/div>\r\n     *   <div class=\"news-articles-info\">\r\n     *   <h6 class=\"news-heading-label\">Music Reviews<\/h6>\r\n     *   <h4><a class=\"news-articles-heading\" href=\"https:\/\/sites.bu.edu\/wtbu\/2019\/11\/19\/review-skegss-brighton-music-hall-11-17\/\">REVIEW: Skegss @ Brighton Music Hall 11\/17<\/a><\/h4>\r\n     *   <h6 class=\"news-byline\">Tuesday, November 19th, 2019<\/h6>\r\n     *   <a class=\"news-btn news-btn-action\" href=\"https:\/\/sites.bu.edu\/wtbu\/2019\/11\/19\/review-skegss-brighton-music-hall-11-17\/\">Read More<\/a>\r\n     *   <\/div>\r\n     *   <\/section>\r\n     * From the html that we get from BU's posts widget.\r\n     * @param {*} post Post html element from the BU Posts widget-- should be a article tag\r\n     *\/\r\n    let createCurrentPostHTMLFromWidgetPost = function (post) {\r\n        \/\/Create elements that we had before\r\n        let section = document.createElement('section')\r\n        section.setAttribute('class', 'news-articles')\r\n        let imagecontainer = document.createElement('div')\r\n        imagecontainer.setAttribute('class', 'news-articles-img')\r\n\r\n        let linksrc = post.getElementsByTagName('h1')[0].getElementsByTagName('a')[0].getAttribute('href')\r\n        let title = post.getElementsByTagName('h1')[0].textContent\r\n        let date = post.getElementsByTagName('p')[0].textContent\r\n        \/\/console.log(title)\r\n\r\n        let link = document.createElement('a')\r\n        link.setAttribute('href', linksrc)\r\n\r\n        let image = post.getElementsByTagName('img')[0]\r\n\r\n        if (image) {\r\n            image.parentNode.replaceChild(link, image)\r\n\r\n            image.removeAttribute('width')\r\n            image.removeAttribute('height')\r\n            let imagesrc = image.getAttribute('src')\r\n            imagesrc = `${imagesrc.substring(0, imagesrc.indexOf('-150x150'))}${imagesrc.substring(imagesrc.indexOf('.'), imagesrc.length)}`\/\/?w=400\r\n            image.setAttribute('src', '\/wtbu\/files\/2020\/01\/placeholder.png')\r\n            image.setAttribute('data-src', imagesrc)\r\n            image.setAttribute('class', 'hp-article-img lazy')\r\n            image.setAttribute('width', '350')\r\n            image.setAttribute('height', '240')\r\n            image.setAttribute('alt', title)\r\n\r\n            let imageLink = link.cloneNode(true)\r\n            imageLink.appendChild(image)\r\n            imagecontainer.appendChild(imageLink)\r\n            section.appendChild(imagecontainer)\r\n        }\r\n\r\n        let articleinfo = document.createElement('div')\r\n        articleinfo.setAttribute('class', 'news-articles-info')\r\n        let postLink = link.cloneNode(true)\r\n        postLink.setAttribute('class', 'news-articles-heading')\r\n        postLink.textContent = title\r\n\r\n        let postHeading = document.createElement('h4')\r\n        postHeading.appendChild(postLink)\r\n\r\n        let dateText = document.createElement('h6')\r\n        dateText.setAttribute('class', 'news-byline')\r\n        dateText.textContent = date\r\n\r\n        link.setAttribute('class', 'news-btn news-btn-action')\r\n        link.textContent = 'Read More'\r\n\r\n        articleinfo.appendChild(postHeading)\r\n        articleinfo.appendChild(dateText)\r\n        articleinfo.appendChild(link)\r\n\r\n        section.appendChild(articleinfo)\r\n\r\n        return section\r\n    }\r\n\r\n    let musicTargetID = 'bu-posts-5'\r\n\r\n    let musicObserver = new MutationObserver(function (mutations) {\r\n        if (document.getElementById(musicTargetID) !== null) {\r\n            let postsbox = document.getElementById(musicTargetID)\r\n            postsbox.remove()\r\n            let posts = postsbox.getElementsByTagName('article')\r\n            postsbox.getElementsByTagName('h3')[0].setAttribute('style', 'color: black;font-size: 2.5em;text-transform: none;')\r\n            for (i = 0; i < posts.length; i++) {\r\n                if (i < 3) {\r\n                    const post = posts[i]\r\n                    let newPost = createCurrentPostHTMLFromWidgetPost(post)\r\n                    document.getElementById('music-posts-container').appendChild(newPost)\r\n                }\r\n            }\r\n            \/\/Technically doesn't do anything since it should be hidden anyway. To check original widget, unhide it in the custom css and remove this line. \r\n            musicObserver.disconnect()\r\n        }\r\n    })\r\n\r\n    let sportsTargetID = 'bu-posts-6'\r\n\r\n    let sportsObserver = new MutationObserver(function (mutations) {\r\n        if (document.getElementById(sportsTargetID) !== null) {\r\n            let postsbox = document.getElementById(sportsTargetID)\r\n            postsbox.remove()\r\n            let posts = postsbox.getElementsByTagName('article')\r\n            postsbox.getElementsByTagName('h3')[0].setAttribute('style', 'color: black;font-size: 2.5em;text-transform: none;')\r\n            for (const post of posts) {\r\n                let newPost = createCurrentPostHTMLFromWidgetPost(post)\r\n                document.getElementById('sports-posts-container').appendChild(newPost)\r\n            }\r\n\r\n            sportsObserver.disconnect()\r\n        }\r\n    })\r\n\r\n    musicObserver.observe(document, { attributes: false, childList: true, characterData: false, subtree: true })\r\n    sportsObserver.observe(document, { attributes: false, childList: true, characterData: false, subtree: true })\r\n\r\n    \/\/Lazyloading images for main news feeds.\r\n    let doneloading = false\r\n\r\n    window.addEventListener('load', function () {\r\n        doneloading = true\r\n    })\r\n\r\n    document.addEventListener(\"DOMContentLoaded\", function () {\r\n        var lazyImages = [].slice.call(document.querySelectorAll(\"img.lazy\"));\r\n\r\n        if (\"IntersectionObserver\" in window) {\r\n            let lazyImageObserver = new IntersectionObserver(function (entries, observer) {\r\n                entries.forEach(function (entry) {\r\n                    if (entry.isIntersecting || doneloading) {\r\n                        let lazyImage = entry.target;\r\n                        lazyImage.src = lazyImage.dataset.src;\r\n                        lazyImage.classList.remove(\"lazy\");\r\n                        lazyImageObserver.unobserve(lazyImage);\r\n                    }\r\n                });\r\n            });\r\n\r\n            lazyImages.forEach(function (lazyImage) {\r\n                lazyImageObserver.observe(lazyImage);\r\n            });\r\n        } else {\r\n            \/\/ Possibly fall back to a more compatible method here (although every browser but Opera Mini supports the above)\r\n        }\r\n    });\r\n\r\n<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>LISTEN NOW Song History \/ Upcoming Past Shows On-Air Now: Music More Music Sports More Sports WTBU Sessions Boston&#8217;s own Axel &#038; Lolo came into WTBU to play some indie folk pop. More WTBU Sessions<\/p>\n","protected":false},"author":1654,"featured_media":0,"parent":0,"menu_order":15,"comment_status":"closed","ping_status":"open","template":"","meta":[],"_links":{"self":[{"href":"https:\/\/sites.bu.edu\/wtbu\/wp-json\/wp\/v2\/pages\/5"}],"collection":[{"href":"https:\/\/sites.bu.edu\/wtbu\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/sites.bu.edu\/wtbu\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/sites.bu.edu\/wtbu\/wp-json\/wp\/v2\/users\/1654"}],"replies":[{"embeddable":true,"href":"https:\/\/sites.bu.edu\/wtbu\/wp-json\/wp\/v2\/comments?post=5"}],"version-history":[{"count":56,"href":"https:\/\/sites.bu.edu\/wtbu\/wp-json\/wp\/v2\/pages\/5\/revisions"}],"predecessor-version":[{"id":52649,"href":"https:\/\/sites.bu.edu\/wtbu\/wp-json\/wp\/v2\/pages\/5\/revisions\/52649"}],"wp:attachment":[{"href":"https:\/\/sites.bu.edu\/wtbu\/wp-json\/wp\/v2\/media?parent=5"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}