{"version":3,"sources":["player/Player.js","Episode.js","wait.gif","homepage/Episode.js","Home.js","NotFound.js","App.js","reportWebVitals.js","index.js"],"names":["get_user_id","var_name","user_id","localStorage","getItem","replace","c","r","Math","random","toString","setItem","recordAnalytics","eventType","eventQueue","setEventQueue","url","extra","event","type","ts","Date","getTime","push","Player","props","useState","mode","undefined","layout","showJumpControls","className","src","autoPlayAfterSrcChange","showDownloadProgress","showFilledProgress","loop","customAdditionalControls","showSkipControls","onListened","e","console","log","onPlay","onPause","pos","timeStamp","onEnded","onSeeking","onSeeked","onAbort","onCanPlay","onCanPlayThrough","onEmptied","onError","error_msg","onLoadStart","onLoadedMetaData","onLoadedData","onPlaying","onSuspend","onWaiting","onVolumeChange","vol","onListen","media_url","last_ping_time","parseInt","length","n","data","item","pop","axios","post","events","then","success","api_error","catch","err","tick","Episode","podcast","slug","useParams","title","setTitle","description","setDescription","enclosureUrl","setEnclosureUrl","itunesDuration","setItunesDuration","pubDate","setPubDate","coverArt","setCoverArt","duration","setDuration","albumId","setAlbumId","getDataFromApi2","a","fetch","response2","json","bresp","rd","toLocaleDateString","useEffect","spotify_src","href","Container","Row","Col","xs","sm","guests","frameborder","allowtransparency","allow","episode","cover_art_url","blog_url","epLink","window","location","host","protocol","i","indexOf","substring","cover_alt","alt","dangerouslySetInnerHTML","__html","Home","season","wait","logo","setLogo","feedUrl","setFeedUrl","episodes","episodesData","setEpisodesData","getDataFromApi","headers","authorization","items","episodeContainer","div","Helmet","NotFound","useLocation","pathname","App","ReactGA","pageview","search","exact","path","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","ReactDOM","render","StrictMode","document","getElementById"],"mappings":"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","file":"static/js/main.ba82ec9e.chunk.js","sourcesContent":["import axios from 'axios';\nimport './Player.css';\nimport React, { useState } from 'react'\nimport AudioPlayer from 'react-h5-audio-player';\nimport 'react-h5-audio-player/lib/styles.css';\n\n\n// TODO: guest from timeline\n// TODO: show stats\n// TODO: don't track button\n\nfunction uuidv4() {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\n var r = Math.random() * 16 || 0, v = c === 'x' ? r : (r && 0x3 | 0x8);\n return v.toString(16);\n });\n}\n\nfunction get_user_id() {\n const var_name = 'data-skeptic-player-anon-id'\n var user_id = localStorage.getItem(var_name);\n if (!user_id) {\n user_id = uuidv4()\n localStorage.setItem(var_name, user_id)\n }\n return user_id\n}\n\nfunction tick(eventQueue, setEventQueue, media_url, pos) {\n var last_ping_time = localStorage.getItem(\"last_ping_time\")\n if (!last_ping_time) {\n last_ping_time = new Date().getTime()\n localStorage.setItem(\"last_ping_time\", last_ping_time)\n } else {\n last_ping_time = parseInt(last_ping_time)\n }\n if (last_ping_time + 5000 < new Date().getTime() && eventQueue.length === 0) {\n const user_id = get_user_id()\n recordAnalytics('ping', eventQueue, setEventQueue, media_url, user_id, { pos })\n localStorage.setItem(\"last_ping_time\", new Date().getTime())\n }\n const url = \"https://por8ht9sv9.execute-api.us-east-1.amazonaws.com/api/player/event\"\n if (eventQueue.length > 0) {\n var n = eventQueue.length\n if (n > 20) {\n n = 20\n console.log(\"buffering player events...\")\n }\n const data = []\n while (n > 0) {\n const item = eventQueue.pop()\n data.push(item)\n n = n - 1\n }\n axios.post(url, {events: data}).then((r) => {\n if (!r.data.success) {\n console.log({api_error: r.data})\n }\n }).catch((err) => {\n console.log({err})\n })\n }\n}\n\nfunction recordAnalytics(eventType, eventQueue, setEventQueue, url, user_id, extra={}) {\n const event = {\n type: eventType,\n ts: new Date().getTime(),\n url,\n user_id,\n ...extra\n }\n eventQueue.push(event)\n setEventQueue(eventQueue)\n}\n\nfunction Player(props) {\n const [eventQueue, setEventQueue] = useState([])\n const url = props.url\n const mode = props.mode\n const user_id = get_user_id()\n // React.useEffect(() => {\n // var timerID = setInterval( () => tick(eventQueue, setEventQueue, url), 1000 );\n // return function cleanup() {\n // clearInterval(timerID);\n // };\n // });\n if (url === undefined) {\n return
\n }\n var layout = 'horizontal-reverse'\n var showSkipControls = false\n var showJumpControls = true\n if (mode === 'mini') {\n layout = 'stacked'\n showJumpControls = false\n }\n const error_msg = \"TODO: retrieve value from AudioPlayer\"\n const vol = \"TODO: ?\"\n return (\n
\n console.log({e})}\n onPlay={e => recordAnalytics(\"onPlay\", eventQueue, setEventQueue, url, user_id, {})}\n onPause={e => recordAnalytics(\"onPause\", eventQueue, setEventQueue, url, user_id, {pos: e.timeStamp})}\n onEnded={e => recordAnalytics(\"onEnded\", eventQueue, setEventQueue, url, user_id, {})}\n onSeeking={e => recordAnalytics(\"onSeeking\", eventQueue, setEventQueue, url, user_id, {pos: e.timeStamp})}\n onSeeked={e => recordAnalytics(\"onSeeked\", eventQueue, setEventQueue, url, user_id, {pos: e.timeStamp})}\n onAbort={e => recordAnalytics(\"onAbort\", eventQueue, setEventQueue, url, user_id, {pos: e.timeStamp})}\n onCanPlay={e => recordAnalytics(\"onCanPlay\", eventQueue, setEventQueue, url, user_id, {})}\n onCanPlayThrough={e => recordAnalytics(\"onCanPlayThrough\", eventQueue, setEventQueue, url, user_id, {})}\n onEmptied={e => recordAnalytics(\"onEmptied\", eventQueue, setEventQueue, url, user_id, {})}\n onError={e => recordAnalytics(\"onError\", eventQueue, setEventQueue, url, user_id, {error_msg})}\n onLoadStart={e => recordAnalytics(\"onLoadStart\", eventQueue, setEventQueue, url, user_id, {})}\n onLoadedMetaData={e => recordAnalytics(\"onLoadedMetaData\", eventQueue, setEventQueue, url, user_id, {})}\n onLoadedData={e => recordAnalytics(\"onLoadedData\", eventQueue, setEventQueue, url, user_id, {})}\n onPlaying={e => recordAnalytics(\"onPlaying\", eventQueue, setEventQueue, url, user_id, {pos: e.timeStamp})}\n onSuspend={e => recordAnalytics(\"onSuspend\", eventQueue, setEventQueue, url, user_id, {pos: e.timeStamp})}\n onWaiting={e => recordAnalytics(\"onWaiting\", eventQueue, setEventQueue, url, user_id, {})}\n onVolumeChange={e => recordAnalytics(\"onVolumeChange\", eventQueue, setEventQueue, url, user_id, {vol})}\n onListen={e => tick(eventQueue, setEventQueue, url, e.timeStamp)}\n />\n
\n );\n}\n\nexport default Player;\n","import './Episode.css';\nimport React, { useState, useEffect } from \"react\";\nimport Player from './player/Player'\nimport { Container, Row, Col } from 'reactstrap';\nimport { useParams } from 'react-router-dom'\n\nfunction Episode(props) {\n const podcast = props.podcast\n const { slug } = useParams()\n const [title, setTitle] = useState(\"\")\n const [description, setDescription] = useState(\"\")\n const [enclosureUrl, setEnclosureUrl] = useState(\"\")\n const [itunesDuration, setItunesDuration] = useState(\"\")\n const [pubDate, setPubDate] = useState(\"\")\n const [coverArt, setCoverArt] = useState(\"\")\n const [duration, setDuration] = useState(\"\")\n const [albumId, setAlbumId] = useState(\"\")\n\n const api = 'https://por8ht9sv9.execute-api.us-east-1.amazonaws.com/api';\n const url = `${api}/podcast/${podcast}/episode/${slug}`;\n // const url = 'https://beta.dataskeptic.com/api/kyle@dataskeptic.com/api/6wfh/'\n const getDataFromApi2 = async () => {\n const response2 = await fetch(url);\n const bresp = await response2.json();\n console.log({bresp})\n setTitle(bresp['title'])\n setDescription(bresp['description'])\n setEnclosureUrl(bresp['enclosure_url'])\n setItunesDuration(bresp['itunes_duration'])\n const rd = (new Date(bresp['release_date'])).toLocaleDateString()\n setPubDate(rd)\n setCoverArt(bresp['cover_art_url'])\n setDuration(bresp['mp3_duration'])\n setAlbumId(bresp['spotify_album_id'])\n };\n useEffect(() => {\n getDataFromApi2();\n }, [getDataFromApi2]);\n const guests = []\n const spotify_src = `https://open.spotify.com/embed/album/${albumId}`\n console.log({albumId})\n return (\n
\n
\n
Home
\n
\n \n \n \n
\n \n
\n \n \n

{title}

\n

{pubDate}

\n

{description}

\n \n

\n {itunesDuration}\n {duration}\n {albumId && Listen along to our album of the week:}\n

\n {albumId && }\n \n
\n
\n
\n );\n}\n\nexport default Episode;\n","export default __webpack_public_path__ + \"static/media/wait.3e4f5446.gif\";","import { Container, Row, Col } from 'reactstrap';\nimport Player from '../player/Player'\nimport './Episode.css';\n\n\nfunction Episode(props) {\n const episode = props.episode\n console.log({episode})\n const cover_art_url = episode.cover_art_url\n const blog_url = episode.blog_url\n var epLink = blog_url\n const rd = (new Date(episode['release_date'])).toLocaleDateString()\n if (window.location.host !== \"6wingsfriedhard.com\") {\n const host = window.location.protocol + '//' + window.location.host\n const i = blog_url.indexOf('/', 8)\n epLink = host + blog_url.substring(i)\n }\n const guests = []\n const cover_alt = \"Cover art for \" + episode.title\n //
\n // \n return (\n
\n \n \n \n {cover_alt}/\n \n \n
{episode.title}\n
\n
{rd}
\n
\n
\n
\n \n \n \n
\n );\n}\n\nexport default Episode;\n","import 'bootstrap/dist/css/bootstrap.min.css';\nimport './Home.css';\nimport wait from './wait.gif'\nimport Episode from './homepage/Episode'\nimport React, { useState, useEffect } from \"react\";\nimport { Container, Row, Col } from 'reactstrap';\nimport { Helmet } from 'react-helmet'\n\nfunction Home(props) {\n const podcast = props.podcast\n const season = props.season\n const [logo, setLogo] = useState(wait)\n const [title, setTitle] = useState(\"\")\n const [feedUrl, setFeedUrl] = useState(\"\")\n\n const rss_image = \"https://s3.amazonaws.com/6wingsfriedhard.com/images/rss.png\"\n // const url = 'https://beta.dataskeptic.com/api/kyle@dataskeptic.com/api/6wfh';\n const api = 'https://por8ht9sv9.execute-api.us-east-1.amazonaws.com/api';\n const url = `${api}/podcast/${podcast}/season/${season}`;\n\n const [episodesData, setEpisodesData] = useState({ episodes: [] });\n const getDataFromApi = async () => {\n const response2 = await fetch(url, { headers: { authorization: 'c41296085cad52138c30ca01e8bb8f97' } });\n const bresp = await response2.json();\n setTitle(bresp['title'])\n setLogo(bresp['logo'])\n setFeedUrl(bresp['feed_url'])\n if (bresp.items !== undefined) {\n setEpisodesData({\n episodes: bresp.items\n }); \n } else {\n console.log(\"ERROR: got null episodes back\")\n }\n };\n useEffect(() => {\n getDataFromApi();\n }, []);\n const episodes = episodesData['episodes']\n const episodeContainer = []\n for (const episode of episodes) {\n // TODO: update site - it should not show future episodes\n const div = \n episodeContainer.push(div)\n }\n if (episodes.length === 0) {\n episodeContainer.push(

No episodes found.

)\n }\n return (\n
\n \n {title}\n \n \n \n \n
\n \"logo\"\n

6 Wings Fried Hard

\n \n
\n \n \n {episodeContainer}\n \n
\n
\n
\n );\n}\n\nexport default Home;\n","import './NotFound.css';\nimport {\n useLocation\n} from \"react-router-dom\";\n\nimport React from 'react'\n\nfunction NotFound() {\n let location = useLocation();\n return (\n
\n

Missing or non-existent resource

\n

\n No match for {location.pathname}\n

\n

We're so sorry. That url no longer seems to be valid. If you believe this is an error, please reach out to support@dataskeptic.com

\n
\n );\n}\n\nexport default NotFound;\n","import './App.css';\nimport Episode from './Episode'\nimport Home from './Home'\nimport 'bootstrap/dist/css/bootstrap.css';\nimport NotFound from './NotFound';\nimport ReactGA from 'react-ga';\nimport {\n BrowserRouter as Router,\n Switch,\n Route\n} from \"react-router-dom\";\n\n\nfunction App(props) {\n console.log({props})\n // var home_logo = \"https://s3.amazonaws.com/dataskeptic.com/ds_sm.jpg\"\n ReactGA.pageview(window.location.pathname + window.location.search);\n const podcast = \"6wfh\"\n const season = \"one\"\n return (\n \n
\n \n \n \n \n \n \n \n \n \n \n \n
\n
\n );\n}\n\n\n\nexport default App;\n\n","const reportWebVitals = onPerfEntry => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport App from './App';\nimport reportWebVitals from './reportWebVitals';\n\nReactDOM.render(\n \n \n ,\n document.getElementById('root')\n);\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals();\n"],"sourceRoot":""}