{"id":31,"date":"2023-07-04T22:49:19","date_gmt":"2023-07-05T02:49:19","guid":{"rendered":"https:\/\/realrockrevival.com\/?page_id=31"},"modified":"2026-09-22T11:39:57","modified_gmt":"2026-09-22T15:39:57","slug":"show-times","status":"publish","type":"page","link":"https:\/\/realrockrevival.com\/index.php\/show-times\/","title":{"rendered":"Show Times"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"31\" class=\"elementor elementor-31\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e9a1b70 e-flex e-con-boxed e-con e-parent\" data-id=\"e9a1b70\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-02e2d97 elementor-widget elementor-widget-html\" data-id=\"02e2d97\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\n\/* ==========================================================\n   REAL ROCK REVIVAL \u2014 SHOW TIMES GRID\n   ========================================================== *\/\n\n#rrr-show-times {\n    width: 100%;\n    box-sizing: border-box;\n    padding: 18px 0 65px;\n    background: #0b0b0b;\n    color: #ffffff;\n}\n\n.rrr-schedule-inner {\n    width: calc(100% - 56px);\n    max-width: 1400px;\n    margin: 0 auto;\n}\n\n\/* ==========================================================\n   HEADER\n   ========================================================== *\/\n\n.rrr-schedule-heading {\n    text-align: center;\n    margin-bottom: 34px;\n}\n\n.rrr-schedule-kicker {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    gap: 14px;\n    margin-bottom: 9px;\n    color: #ef2428;\n    font-size: 13px;\n    font-weight: 900;\n    letter-spacing: 3px;\n    text-transform: uppercase;\n}\n\n.rrr-schedule-kicker::before,\n.rrr-schedule-kicker::after {\n    content: \"\";\n    width: 55px;\n    height: 2px;\n    background:\n        linear-gradient(\n            90deg,\n            transparent,\n            #ef2428,\n            #ff8a00\n        );\n}\n\n.rrr-schedule-kicker::after {\n    background:\n        linear-gradient(\n            90deg,\n            #ff8a00,\n            #ef2428,\n            transparent\n        );\n}\n\n.rrr-schedule-title {\n    display: inline-block;\n    margin: 0;\n    color: #ffffff;\n    font-size: 46px;\n    line-height: 1;\n    font-weight: 900;\n    letter-spacing: 1px;\n    text-transform: uppercase;\n}\n\n.rrr-schedule-title::after {\n    content: \"\";\n    display: block;\n    width: 115px;\n    height: 3px;\n    margin: 15px auto 0;\n    border-radius: 10px;\n    background:\n        linear-gradient(\n            90deg,\n            #ef2428 0%,\n            #ff4a00 48%,\n            #ffc20e 100%\n        );\n}\n\n.rrr-schedule-intro {\n    max-width: 760px;\n    margin: 23px auto 0;\n    color: #aaa;\n    font-size: 16px;\n    line-height: 1.55;\n}\n\n\/* ==========================================================\n   DAY BUTTONS\n   ========================================================== *\/\n\n.rrr-day-buttons {\n    display: flex;\n    flex-wrap: wrap;\n    justify-content: center;\n    gap: 8px;\n    margin-bottom: 26px;\n}\n\n.rrr-day-button {\n    min-width: 130px;\n    padding: 13px 18px;\n    border: 1px solid #ef2428;\n    border-radius: 8px;\n    background: #111111;\n    color: #ffffff;\n    font-family: inherit;\n    font-size: 14px;\n    font-weight: 900;\n    letter-spacing: .8px;\n    text-transform: uppercase;\n    cursor: pointer;\n    transition:\n        background .18s ease,\n        box-shadow .18s ease,\n        transform .18s ease;\n}\n\n.rrr-day-button:hover {\n    transform: translateY(-1px);\n    background: #181818;\n}\n\n.rrr-day-button.active {\n    background: #ef2428;\n    box-shadow:\n        0 0 16px rgba(239,36,40,.38);\n}\n\n\/* ==========================================================\n   SHOW GRID\n   ========================================================== *\/\n\n.rrr-schedule-list {\n    display: grid;\n    grid-template-columns:\n        repeat(3, minmax(0, 1fr));\n    gap: 22px;\n}\n\n\/* ==========================================================\n   SHOW CARD\n   ========================================================== *\/\n\n.rrr-show-card {\n    position: relative;\n    overflow: hidden;\n\n    min-width: 0;\n\n    border-radius: 15px;\n\n    background:\n        linear-gradient(\n            145deg,\n            rgba(255,255,255,.055),\n            rgba(255,255,255,.018)\n        );\n\n    border:\n        1px solid rgba(255,255,255,.09);\n\n    box-shadow:\n        0 14px 34px rgba(0,0,0,.32);\n\n    transition:\n        transform .18s ease,\n        border-color .18s ease,\n        box-shadow .18s ease;\n}\n\n.rrr-show-card::before {\n    content: \"\";\n    position: absolute;\n    top: 0;\n    left: 0;\n\n    width: 100%;\n    height: 4px;\n\n    background:\n        linear-gradient(\n            90deg,\n            #ef2428,\n            #ff7200 55%,\n            #ffc20e\n        );\n}\n\n.rrr-show-card:hover {\n    transform: translateY(-4px);\n\n    border-color:\n        rgba(239,36,40,.40);\n\n    box-shadow:\n        0 20px 42px rgba(0,0,0,.42),\n        0 0 18px rgba(239,36,40,.08);\n}\n\n\/* LIVE CARD *\/\n\n.rrr-show-card.is-live {\n    border-color:\n        rgba(239,36,40,.60);\n\n    box-shadow:\n        0 14px 34px rgba(0,0,0,.32),\n        0 0 22px rgba(239,36,40,.18);\n}\n\n\/* ==========================================================\n   SHOW IMAGE\n   ========================================================== *\/\n\n.rrr-show-image-wrap {\n    width: 100%;\n    aspect-ratio: 16 \/ 9;\n    overflow: hidden;\n    background: #080808;\n}\n\n.rrr-show-image {\n    display: block;\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n}\n\n\/* ==========================================================\n   SHOW CONTENT\n   ========================================================== *\/\n\n.rrr-show-info {\n    padding: 20px 20px 22px;\n}\n\n.rrr-live-badge {\n    display: none;\n\n    width: fit-content;\n    margin-bottom: 11px;\n\n    padding: 6px 11px;\n\n    border-radius: 999px;\n\n    background: #ef2428;\n    color: #ffffff;\n\n    font-size: 11px;\n    font-weight: 900;\n\n    letter-spacing: 1px;\n    text-transform: uppercase;\n\n    box-shadow:\n        0 0 15px rgba(239,36,40,.42);\n}\n\n.rrr-show-card.is-live .rrr-live-badge {\n    display: inline-block;\n}\n\n.rrr-show-time {\n    margin-bottom: 8px;\n\n    color: #ffc20e;\n\n    font-size: 15px;\n    font-weight: 900;\n}\n\n.rrr-show-name {\n    margin-bottom: 8px;\n\n    color: #ffffff;\n\n    font-size: 24px;\n    line-height: 1.08;\n\n    font-weight: 900;\n}\n\n.rrr-show-dj {\n    color: #dddddd;\n\n    font-size: 16px;\n    line-height: 1.3;\n}\n\n.rrr-show-description {\n    margin-top: 10px;\n\n    color: #999;\n\n    font-size: 13px;\n    line-height: 1.45;\n}\n\n\/* ==========================================================\n   NO SHOWS \/ TRIPLE R\n   ========================================================== *\/\n\n.rrr-no-shows {\n    grid-column: 1 \/ -1;\n\n    display: flex;\n    align-items: center;\n\n    gap: 26px;\n\n    min-height: 160px;\n\n    padding: 24px;\n\n    box-sizing: border-box;\n\n    border-radius: 15px;\n\n    background:\n        linear-gradient(\n            145deg,\n            rgba(255,255,255,.055),\n            rgba(255,255,255,.018)\n        );\n\n    border:\n        1px solid rgba(255,255,255,.08);\n\n    border-left:\n        5px solid #ffc20e;\n\n    box-shadow:\n        0 14px 34px rgba(0,0,0,.30);\n}\n\n.rrr-no-shows-logo {\n    width: 125px;\n    height: 125px;\n\n    flex: 0 0 125px;\n\n    object-fit: contain;\n}\n\n.rrr-no-shows-title {\n    margin-bottom: 7px;\n\n    color: #ef2428;\n\n    font-size: 23px;\n    font-weight: 900;\n}\n\n.rrr-no-shows-copy {\n    color: #ffffff;\n\n    font-size: 17px;\n    line-height: 1.45;\n}\n\n\/* ==========================================================\n   LOADING\n   ========================================================== *\/\n\n.rrr-schedule-loading {\n    grid-column: 1 \/ -1;\n\n    padding: 40px;\n\n    text-align: center;\n\n    color: #777;\n\n    font-size: 13px;\n    font-weight: 800;\n\n    letter-spacing: 1px;\n    text-transform: uppercase;\n}\n\n\/* ==========================================================\n   RESPONSIVE\n   ========================================================== *\/\n\n@media (max-width: 1050px) {\n\n    .rrr-schedule-list {\n        grid-template-columns:\n            repeat(2, minmax(0, 1fr));\n    }\n}\n\n@media (max-width: 700px) {\n\n    .rrr-schedule-list {\n        grid-template-columns: 1fr;\n    }\n}\n\n@media (max-width: 650px) {\n\n    #rrr-show-times {\n        padding: 18px 0 48px;\n    }\n\n    .rrr-schedule-inner {\n        width: calc(100% - 30px);\n    }\n\n    .rrr-schedule-title {\n        font-size: 35px;\n    }\n\n    .rrr-schedule-kicker::before,\n    .rrr-schedule-kicker::after {\n        width: 30px;\n    }\n\n    .rrr-day-buttons {\n        display: grid;\n        grid-template-columns:\n            repeat(2, minmax(0,1fr));\n    }\n\n    .rrr-day-button {\n        min-width: 0;\n        width: 100%;\n    }\n\n    .rrr-no-shows {\n        gap: 18px;\n        padding: 18px;\n    }\n\n    .rrr-no-shows-logo {\n        width: 90px;\n        height: 90px;\n\n        flex-basis: 90px;\n    }\n}\n<\/style>\n\n\n<section id=\"rrr-show-times\">\n\n    <div class=\"rrr-schedule-inner\">\n\n        <div class=\"rrr-schedule-heading\">\n\n            <div class=\"rrr-schedule-kicker\">\n                Real Rock Revival\n            <\/div>\n\n            <h1 class=\"rrr-schedule-title\">\n                Show Times\n            <\/h1>\n\n            <div class=\"rrr-schedule-intro\">\n                Live personalities, real shows, and Triple R rocking around the clock.\n                Pick a day to see what's on.\n            <\/div>\n\n        <\/div>\n\n\n        <div\n            id=\"rrr-day-buttons\"\n            class=\"rrr-day-buttons\"\n        ><\/div>\n\n\n        <div\n            id=\"rrr-schedule-list\"\n            class=\"rrr-schedule-list\"\n        >\n\n            <div class=\"rrr-schedule-loading\">\n                Loading the Triple R schedule...\n            <\/div>\n\n        <\/div>\n\n    <\/div>\n\n<\/section>\n\n\n<script>\n(function () {\n\n    const SHEET_URL =\n        'https:\/\/docs.google.com\/spreadsheets\/d\/e\/2PACX-1vTvHBjY3UxaIACrY-U5KE4zjD8qAyeQ0v49tiRH4E2zIy2Ip4jswdb7kSARs86uZQzzmzDOsKT1zdn9\/pub?gid=497415043&single=true&output=csv';\n\n    const TRIPLE_R_LOGO =\n        'https:\/\/realrockrevival.com\/wp-content\/uploads\/2026\/08\/c8eb6030-cd3f-4b78-ac61-8a1c9b2f6da7.png';\n\n    const DAYS = [\n        'Monday',\n        'Tuesday',\n        'Wednesday',\n        'Thursday',\n        'Friday',\n        'Saturday',\n        'Sunday'\n    ];\n\n    const buttons =\n        document.getElementById(\n            'rrr-day-buttons'\n        );\n\n    const list =\n        document.getElementById(\n            'rrr-schedule-list'\n        );\n\n    if (!buttons || !list) {\n        return;\n    }\n\n\n    function parseCSV(text) {\n\n        const rows = [];\n\n        let row = [];\n        let field = '';\n        let quoted = false;\n\n        for (let i = 0; i < text.length; i++) {\n\n            const char = text[i];\n\n            if (char === '\"') {\n\n                if (\n                    quoted &&\n                    text[i + 1] === '\"'\n                ) {\n\n                    field += '\"';\n                    i++;\n\n                } else {\n\n                    quoted = !quoted;\n\n                }\n\n            }\n\n            else if (\n                char === ',' &&\n                !quoted\n            ) {\n\n                row.push(field);\n                field = '';\n\n            }\n\n            else if (\n                (\n                    char === '\\n' ||\n                    char === '\\r'\n                ) &&\n                !quoted\n            ) {\n\n                if (\n                    char === '\\r' &&\n                    text[i + 1] === '\\n'\n                ) {\n                    i++;\n                }\n\n                row.push(field);\n                rows.push(row);\n\n                row = [];\n                field = '';\n\n            }\n\n            else {\n\n                field += char;\n\n            }\n        }\n\n        if (\n            field.length ||\n            row.length\n        ) {\n\n            row.push(field);\n            rows.push(row);\n\n        }\n\n        return rows;\n    }\n\n\n    function timeToMinutes(value) {\n\n        const match =\n            String(value || '')\n                .trim()\n                .match(\n                    \/^(\\d{1,2}):(\\d{2})\\s*(AM|PM)$\/i\n                );\n\n        if (!match) {\n            return null;\n        }\n\n        let hour =\n            parseInt(\n                match[1],\n                10\n            );\n\n        const minute =\n            parseInt(\n                match[2],\n                10\n            );\n\n        const ampm =\n            match[3]\n                .toUpperCase();\n\n        if (\n            ampm === 'PM' &&\n            hour !== 12\n        ) {\n            hour += 12;\n        }\n\n        if (\n            ampm === 'AM' &&\n            hour === 12\n        ) {\n            hour = 0;\n        }\n\n        return (\n            hour * 60 +\n            minute\n        );\n    }\n\n\n    function easternNow() {\n\n        const parts =\n            new Intl.DateTimeFormat(\n                'en-US',\n                {\n                    timeZone:\n                        'America\/New_York',\n\n                    weekday:\n                        'long',\n\n                    hour:\n                        'numeric',\n\n                    minute:\n                        '2-digit',\n\n                    hour12:\n                        false\n                }\n            )\n            .formatToParts(\n                new Date()\n            );\n\n        const data = {};\n\n        parts.forEach(\n            function(part) {\n                data[part.type] =\n                    part.value;\n            }\n        );\n\n        return {\n            day:\n                data.weekday,\n\n            minute:\n                (\n                    parseInt(\n                        data.hour,\n                        10\n                    ) * 60\n                ) +\n                parseInt(\n                    data.minute,\n                    10\n                )\n        };\n    }\n\n\n    function showIsLive(show) {\n\n        const now =\n            easternNow();\n\n        if (\n            show.day !==\n            now.day\n        ) {\n            return false;\n        }\n\n        const start =\n            timeToMinutes(\n                show.start\n            );\n\n        const end =\n            timeToMinutes(\n                show.end\n            );\n\n        if (\n            start === null ||\n            end === null\n        ) {\n            return false;\n        }\n\n        if (end > start) {\n\n            return (\n                now.minute >= start &&\n                now.minute < end\n            );\n\n        }\n\n        return (\n            now.minute >= start ||\n            now.minute < end\n        );\n    }\n\n\n    function createShowCard(show) {\n\n        const card =\n            document.createElement(\n                'article'\n            );\n\n        card.className =\n            'rrr-show-card';\n\n        if (\n            showIsLive(show)\n        ) {\n\n            card.classList.add(\n                'is-live'\n            );\n        }\n\n\n        const imageWrap =\n            document.createElement(\n                'div'\n            );\n\n        imageWrap.className =\n            'rrr-show-image-wrap';\n\n\n        const image =\n            document.createElement(\n                'img'\n            );\n\n        image.className =\n            'rrr-show-image';\n\n        image.src =\n            show.showImage ||\n            show.djImage ||\n            TRIPLE_R_LOGO;\n\n        image.onerror =\n            function () {\n                this.onerror = null;\n                this.src =\n                    show.djImage ||\n                    TRIPLE_R_LOGO;\n            };\n\n        image.alt =\n            show.name;\n\n\n        imageWrap.appendChild(\n            image\n        );\n\n\n        const info =\n            document.createElement(\n                'div'\n            );\n\n        info.className =\n            'rrr-show-info';\n\n\n        const live =\n            document.createElement(\n                'div'\n            );\n\n        live.className =\n            'rrr-live-badge';\n\n        live.textContent =\n            '\u25cf ON AIR NOW';\n\n\n        const time =\n            document.createElement(\n                'div'\n            );\n\n        time.className =\n            'rrr-show-time';\n\n        time.textContent =\n            show.start +\n            ' \u2013 ' +\n            show.end +\n            ' ET';\n\n\n        const title =\n            document.createElement(\n                'div'\n            );\n\n        title.className =\n            'rrr-show-name';\n\n        title.textContent =\n            show.name ||\n            show.dj;\n\n\n        const dj =\n            document.createElement(\n                'div'\n            );\n\n        dj.className =\n            'rrr-show-dj';\n\n        dj.textContent =\n            show.dj;\n\n\n        info.appendChild(\n            live\n        );\n\n        info.appendChild(\n            time\n        );\n\n        info.appendChild(\n            title\n        );\n\n        info.appendChild(\n            dj\n        );\n\n\n        if (\n            show.description\n        ) {\n\n            const description =\n                document.createElement(\n                    'div'\n                );\n\n            description.className =\n                'rrr-show-description';\n\n            description.textContent =\n                show.description;\n\n            info.appendChild(\n                description\n            );\n        }\n\n\n        card.appendChild(\n            imageWrap\n        );\n\n        card.appendChild(\n            info\n        );\n\n\n        return card;\n    }\n\n\n    function showNoShows() {\n\n        list.innerHTML = '';\n\n        const box =\n            document.createElement(\n                'div'\n            );\n\n        box.className =\n            'rrr-no-shows';\n\n\n        const logo =\n            document.createElement(\n                'img'\n            );\n\n        logo.className =\n            'rrr-no-shows-logo';\n\n        logo.src =\n            TRIPLE_R_LOGO;\n\n        logo.alt =\n            'Triple R';\n\n\n        const info =\n            document.createElement(\n                'div'\n            );\n\n\n        const title =\n            document.createElement(\n                'div'\n            );\n\n        title.className =\n            'rrr-no-shows-title';\n\n        title.textContent =\n            'No scheduled shows.';\n\n\n        const copy =\n            document.createElement(\n                'div'\n            );\n\n        copy.className =\n            'rrr-no-shows-copy';\n\n        copy.textContent =\n            'Triple R Rocks 24\/7.';\n\n\n        info.appendChild(\n            title\n        );\n\n        info.appendChild(\n            copy\n        );\n\n\n        box.appendChild(\n            logo\n        );\n\n        box.appendChild(\n            info\n        );\n\n\n        list.appendChild(\n            box\n        );\n    }\n\n\n    function displayDay(\n        selectedDay,\n        shows\n    ) {\n\n        document\n            .querySelectorAll(\n                '.rrr-day-button'\n            )\n            .forEach(\n                function(button) {\n\n                    button.classList\n                        .toggle(\n                            'active',\n                            button.dataset.day ===\n                                selectedDay\n                        );\n                }\n            );\n\n\n        const matching =\n            shows.filter(\n                function(show) {\n\n                    return (\n                        show.day ===\n                        selectedDay\n                    );\n                }\n            );\n\n\n        if (!matching.length) {\n\n            showNoShows();\n            return;\n        }\n\n\n        list.innerHTML = '';\n\n\n        matching\n            .sort(\n                function(a, b) {\n\n                    return (\n                        timeToMinutes(\n                            a.start\n                        ) -\n                        timeToMinutes(\n                            b.start\n                        )\n                    );\n                }\n            )\n            .forEach(\n                function(show) {\n\n                    list.appendChild(\n                        createShowCard(\n                            show\n                        )\n                    );\n                }\n            );\n    }\n\n\n    function processSchedule(rows) {\n\n        if (!rows.length) {\n            return;\n        }\n\n        rows.shift();\n\n\n        const shows =\n            rows\n                .filter(\n                    function(row) {\n\n                        return (\n                            row.length >= 6\n                        );\n                    }\n                )\n\n                .map(\n                    function(row) {\n\n                        return {\n\n                            active:\n                                (row[0] || '')\n                                    .trim()\n                                    .toLowerCase(),\n\n                            name:\n                                (row[1] || '')\n                                    .trim(),\n\n                            dj:\n                                (row[2] || '')\n                                    .trim(),\n\n                            day:\n                                (row[3] || '')\n                                    .trim(),\n\n                            start:\n                                (row[4] || '')\n                                    .trim(),\n\n                            end:\n                                (row[5] || '')\n                                    .trim(),\n\n                            djImage:\n                                (row[6] || '')\n                                    .trim(),\n\n                            showImage:\n                                (row[7] || '')\n                                    .trim(),\n\n                            description:\n                                ''\n                        };\n                    }\n                )\n\n                .filter(\n                    function(show) {\n\n                        return (\n                            show.active === 'yes' &&\n                            DAYS.includes(\n                                show.day\n                            )\n                        );\n                    }\n                );\n\n\n        buttons.innerHTML = '';\n\n\n        DAYS.forEach(\n            function(day) {\n\n                const button =\n                    document.createElement(\n                        'button'\n                    );\n\n                button.type =\n                    'button';\n\n                button.className =\n                    'rrr-day-button';\n\n                button.dataset.day =\n                    day;\n\n                button.textContent =\n                    day;\n\n\n                button.addEventListener(\n                    'click',\n                    function() {\n\n                        displayDay(\n                            day,\n                            shows\n                        );\n\n                    }\n                );\n\n\n                buttons.appendChild(\n                    button\n                );\n            }\n        );\n\n\n        const today =\n            easternNow()\n                .day;\n\n\n        displayDay(\n            DAYS.includes(today)\n                ? today\n                : 'Monday',\n            shows\n        );\n    }\n\n\n    fetch(\n        SHEET_URL +\n        '&cache=' +\n        Date.now()\n    )\n\n    .then(\n        function(response) {\n            return response.text();\n        }\n    )\n\n    .then(\n        function(text) {\n\n            processSchedule(\n                parseCSV(text)\n            );\n\n        }\n    )\n\n    .catch(\n        function() {\n\n            list.innerHTML =\n                '<div class=\"rrr-schedule-loading\">' +\n                'Unable to load the Triple R schedule.' +\n                '<\/div>';\n\n        }\n    );\n\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Real Rock Revival Show Times Live personalities, real shows, and Triple R rocking around the clock. Pick a day to see what&#8217;s on. Loading the Triple R schedule&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-31","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/realrockrevival.com\/index.php\/wp-json\/wp\/v2\/pages\/31","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/realrockrevival.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/realrockrevival.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/realrockrevival.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/realrockrevival.com\/index.php\/wp-json\/wp\/v2\/comments?post=31"}],"version-history":[{"count":36,"href":"https:\/\/realrockrevival.com\/index.php\/wp-json\/wp\/v2\/pages\/31\/revisions"}],"predecessor-version":[{"id":1409,"href":"https:\/\/realrockrevival.com\/index.php\/wp-json\/wp\/v2\/pages\/31\/revisions\/1409"}],"wp:attachment":[{"href":"https:\/\/realrockrevival.com\/index.php\/wp-json\/wp\/v2\/media?parent=31"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}