diff --git a/components/episodepager.js b/components/episodepager.js index eb0a5b6..df99ef8 100755 --- a/components/episodepager.js +++ b/components/episodepager.js @@ -18,7 +18,7 @@ const EpisodePager = ({ episodedata, config, showdata }) => { return (
- {episodedata.map((episode) => ( + {episodedata.data.map((episode) => (
{episode.attributes.Title} @@ -37,8 +37,8 @@ const EpisodePager = ({ episodedata, config, showdata }) => { previousLabel={"previous"} nextLabel={"next"} breakLabel={"..."} - initialPage={1} //{episodedata.curPage - 1} - pageCount={2} + initialPage={episodedata.page} + pageCount={episodedata.meta.pagination.pageCount} onPageChange={handlePagination} />
diff --git a/components/episodesidebar.js b/components/episodesidebar.js index 735ab58..fa1403e 100755 --- a/components/episodesidebar.js +++ b/components/episodesidebar.js @@ -1,17 +1,18 @@ import Link from 'next/link' -const EpisodeSideBar = (epdata) => ( -
+const EpisodeSideBar = (epdata) => { + console.log(epdata.epdata.data[0].attributes) + return (

Latest Episodes


- {epdata.map((episode) => ( -
-

{episode.title}

-
+ {epdata.epdata.data.map((episode) => ( +
+

{episode.attributes.Title}

+

))} -
- ); +
) +}; export default EpisodeSideBar \ No newline at end of file diff --git a/components/navbar.js b/components/navbar.js index b3e27b5..3b6ae72 100755 --- a/components/navbar.js +++ b/components/navbar.js @@ -20,6 +20,9 @@ const NavBar = (props, sections) => { News and such + + Podcasts + Tech and Disability diff --git a/components/storypager.js b/components/storypager.js index 3878f37..d04c355 100755 --- a/components/storypager.js +++ b/components/storypager.js @@ -4,7 +4,7 @@ import Link from 'next/link' const StoryPager = ({ storydata }) => { const router = useRouter() - console.log(storydata.meta) + console.log(storydata) const handlePagination = page => { const path = router.pathname diff --git a/data/external/cms.js b/data/external/cms.js index 30c5d2f..a58c18b 100755 --- a/data/external/cms.js +++ b/data/external/cms.js @@ -70,7 +70,7 @@ export const getAllPodcastSeries = async () => { const query = qs.stringify({ populate: { podcast_episodes: { - populate:['Audio'] + populate:['Audio_MP3'] } } }, { @@ -112,5 +112,78 @@ export const getProjectDetails = async (projectId) => { } export const getPodcastEpisode = async (episodeId) => { + const { serverRuntimeConfig} = getConfig() + const qs = require('qs') + const query = qs.stringify({ + filters: { + Slug: { + $eq: episodeId + } + }, + populate: '*' + }, { + encodeValuesOnly: true, + }) + const epres = await fetch(serverRuntimeConfig.base_path + `podcast-episodes?${query}`, { + headers: new Headers({ + 'Authorization':serverRuntimeConfig.strapi_token, + 'Content-Type': 'application/x-www-form-urlencoded' + }) + }) + + return await epres.json() +} + +export const getPodcastSeries = async (podcastId) => { + const { serverRuntimeConfig} = getConfig() + const qs = require('qs') + const query = qs.stringify({ + filters: { + Slug: { + $eq: podcastId + } + }, + populate: '*' + }, { + encodeValuesOnly: true, + }) + const url = serverRuntimeConfig.base_path + `/api/podcast-serie?${query}`; + const showres = await fetch(url, { + headers: new Headers({ + 'Authorization': serverRuntimeConfig.strapi_token, + 'Content-Type': 'application/x-www-form-urlencoded' + }) + }) + return await showres.json() +} + +export const getPodcastSeriesEpisodes = async (podcastId, limit, page) => { + const { serverRuntimeConfig} = getConfig() + const qs = require('qs') + const query = qs.stringify({ + filters: { + podcast_sery: { + Slug: { + $eq: podcastId + } + } + }, + pagination: { + page: page, + pageSize: limit + }, + sort: ['publishedAt:desc'], + populate: '*' + }, { + encodeValuesOnly: true, + }) + const epres = await fetch(serverRuntimeConfig.base_path + `podcast-episodes?${query}`, { + headers: new Headers({ + 'Authorization': serverRuntimeConfig.strapi_token, + 'Content-Type': 'application/x-www-form-urlencoded' + }) + }) + + return await epres.json(); } \ No newline at end of file diff --git a/data/internal/feed-generator.js b/data/internal/feed-generator.js index 92f4b81..870f123 100755 --- a/data/internal/feed-generator.js +++ b/data/internal/feed-generator.js @@ -173,13 +173,13 @@ export const generatePodcastFeeds = async () => { const url = `${siteURL}/shows/${series.attributes.Slug}/${episode.attributes.Slug}`; - const media_url = `${siteURL}${episode.attributes.Audio.data.attributes.url}` + const media_url = `${siteURL}${episode.attributes.Audio_MP3.data.attributes.url}` const media = { url: media_url, - type: episode.attributes.Audio.data.attributes.mime, + type: episode.attributes.Audio_MP3.data.attributes.mime, length: 0, - title: episode.attributes.Audio.data.attributes.name, + title: episode.attributes.Audio_MP3.data.attributes.name, duration: 0, } diff --git a/pages/podcasts.js b/pages/podcasts.js index 9f5d049..26f3c57 100755 --- a/pages/podcasts.js +++ b/pages/podcasts.js @@ -9,7 +9,7 @@ export async function getServerSideProps(context) { const secres = await fetch(serverRuntimeConfig.base_path + `/api/sections`) const secdata = await secres.json() - const currpodcastres = await fetch(serverRuntimeConfig.base_path + `podcast-series?filters[PodcastSeriesStatus][$eq]=Current`, { + const currpodcastres = await fetch(serverRuntimeConfig.base_path + `podcast-series?filters[status][$eq]=true`, { headers: new Headers({ 'Authorization': serverRuntimeConfig.strapi_token, 'Content-Type': 'application/x-www-form-urlencoded' @@ -20,7 +20,7 @@ export async function getServerSideProps(context) { console.log(currpodcastlist) - const archpodcastres = await fetch(serverRuntimeConfig.base_path + `podcast-series?filters[PodcastSeriesStatus][$eq]=Archived`, { + const archpodcastres = await fetch(serverRuntimeConfig.base_path + `podcast-series?filters[status][$eq]=false`, { headers: new Headers({ 'Authorization': serverRuntimeConfig.strapi_token, 'Content-Type': 'application/x-www-form-urlencoded' diff --git a/pages/podcasts/shows/[...episode].js b/pages/podcasts/shows/[...episode].js index 20a5601..7f08d07 100755 --- a/pages/podcasts/shows/[...episode].js +++ b/pages/podcasts/shows/[...episode].js @@ -5,6 +5,7 @@ import * as gtag from "../../../lib/gtag" import AudioPlayer from "react-h5-audio-player"; import 'react-h5-audio-player/lib/styles.css'; import EpisodeSideBar from "../../../components/episodesidebar" +import { getPodcastEpisode, getPodcastSeriesEpisodes } from '../../../data/external/cms.js'; export async function getServerSideProps(context) { @@ -14,32 +15,17 @@ export async function getServerSideProps(context) { const secres = await fetch(serverRuntimeConfig.base_path + '/api/sections') const secdata = await secres.json() - const epres = await fetch(serverRuntimeConfig.base_path + 'podcast-episodes?filters[Slug][$eq]='+slug[1]+'&populate=*', { - headers: new Headers({ - 'Authorization': 'Bearer 77df3f9be0a33ee3e91e4314e99fe649348fe15e66348fa53cc335e936345661bea7eb3c826475bc8605037d9753e334061f579aa864a5c5a7436dc3b6853ee4712c822b462156d445cebe08b3e298967829ceccb4c4aa7c61c674527ddf66514a9879b36b15732fc4f505945fbe9e23e65c0525fce834b3858936ab2ab671b7', - 'Content-Type': 'application/x-www-form-urlencoded' - }) - }) - const epdata = await epres.json() - const episode = epdata.data[0] - console.log(epdata.data[0].attributes.Audio.data.attributes) - - const sepres = await fetch(serverRuntimeConfig.base_path + 'podcast-episodes?filters[podcast_sery][slug][$eq]='+slug[0], { - headers: new Headers({ - 'Authorization': 'Bearer 77df3f9be0a33ee3e91e4314e99fe649348fe15e66348fa53cc335e936345661bea7eb3c826475bc8605037d9753e334061f579aa864a5c5a7436dc3b6853ee4712c822b462156d445cebe08b3e298967829ceccb4c4aa7c61c674527ddf66514a9879b36b15732fc4f505945fbe9e23e65c0525fce834b3858936ab2ab671b7', - 'Content-Type': 'application/x-www-form-urlencoded' - }) - }) - const sepdata = await sepres.json() - const sepisodes = sepdata.data + const episode = await getPodcastEpisode(slug) + + const sepisodes = await getPodcastSeriesEpisodes(slug[0], 5, 0) const audiodata = { audio_path: serverRuntimeConfig.audio_path, - audio_mp3: epdata.data[0].attributes.Audio.data.attributes + audio_mp3: episode.data[0].attributes.Audio_MP3.data.attributes } const pagedata = { - 'title': 'Angry Beanie - ' + episode.attributes.Title + 'title': 'Angry Beanie - ' + episode.data[0].attributes.Title } return { @@ -54,7 +40,7 @@ const Episode = ( props ) => { episode={props.episode} audiodata={props.audiodata} sepdata={props.sepisodes}> -

{props.episode.attributes.Title}

+

{props.episode.data[0].attributes.Title}

{ onPause={e => gtag.event({action: "pause", category:"audio", label: "audio paused", value: props.audiodata.audio_mp3})} onEnded={e => gtag.event({action: "end", category:"audio", label: "audio ended", value: props.audiodata.audio_mp3})} /> -
+
+

Transcript

+
- {/* */} + ) } diff --git a/pages/podcasts/shows/[podcast].js b/pages/podcasts/shows/[podcast].js index 054fa16..0e79663 100755 --- a/pages/podcasts/shows/[podcast].js +++ b/pages/podcasts/shows/[podcast].js @@ -2,31 +2,20 @@ import getConfig from 'next/config' import "../../../components/main.js" import Layout from "../../../components/main.js" import EpisodePager from "../../../components/episodepager.js" +import { getPodcastSeries, getPodcastSeriesEpisodes } from '../../../data/external/cms.js' export async function getServerSideProps(context) { const { serverRuntimeConfig, publicRuntimeConfig } = getConfig() const slug = context.params.podcast - const url = serverRuntimeConfig.base_path + '/api/podcast-serie?filters[Slug][$eq]=' + slug - const showres = await fetch(url, { - headers: new Headers({ - 'Authorization': 'Bearer 77df3f9be0a33ee3e91e4314e99fe649348fe15e66348fa53cc335e936345661bea7eb3c826475bc8605037d9753e334061f579aa864a5c5a7436dc3b6853ee4712c822b462156d445cebe08b3e298967829ceccb4c4aa7c61c674527ddf66514a9879b36b15732fc4f505945fbe9e23e65c0525fce834b3858936ab2ab671b7', - 'Content-Type': 'application/x-www-form-urlencoded' - }) - }) - const showdata = await showres.json() + const showdata = await getPodcastSeries(slug) if(context.query.page == null || context.query.page == '0') { var page = 0; } else { - var page = Number(context.query.page) - 1 + var page = Number(context.query.page) } - const epres = await fetch(serverRuntimeConfig.base_path + "podcast-episodes?filters[podcast_sery][slug][$eq]="+slug+"&populate=*", { - headers: new Headers({ - 'Authorization': 'Bearer 77df3f9be0a33ee3e91e4314e99fe649348fe15e66348fa53cc335e936345661bea7eb3c826475bc8605037d9753e334061f579aa864a5c5a7436dc3b6853ee4712c822b462156d445cebe08b3e298967829ceccb4c4aa7c61c674527ddf66514a9879b36b15732fc4f505945fbe9e23e65c0525fce834b3858936ab2ab671b7', - 'Content-Type': 'application/x-www-form-urlencoded' - }) - }) - const epdata = await epres.json() + + const epdata = await getPodcastSeriesEpisodes(slug, 5, page) console.log(epdata.data) const secres = await fetch(serverRuntimeConfig.base_path + '/api/sections') @@ -42,7 +31,7 @@ export async function getServerSideProps(context) { const Podcast = (props) => (

{props.showdata.title}

- +
)