CINXE.COM
The Hustle Daily Show
<!DOCTYPE html> <html> <head> <meta content='text/html; charset=UTF-8' http-equiv='Content-Type'> <meta content='width=device-width, initial-scale=1.0' name='viewport'> <meta content='noindex' name='robots'> <title>The Hustle Daily Show</title> <meta name="description" content="A daily dose of irreverent, offbeat, and informative takes on business & tech news. Hosted by Jon Weigell, Juliet Bennett Rylah, Mark Dent, Ben Berkley, Sara Friedman, Matthew Brown, and Rob Litterst from The Hustle."> <meta property="og:title" content="The Hustle Daily Show"> <meta property="og:description" content="A daily dose of irreverent, offbeat, and informative takes on business & tech news. Hosted by Jon Weigell, Juliet Bennett Rylah, Mark Dent, Ben Berkley, Sara Friedman, Matthew Brown, and Rob Litterst from The Hustle."> <meta name="twitter:card" content="summary_large_image"> <meta name="twitter:site" content="@ChartableDotCom"> <meta name="twitter:title" content="The Hustle Daily Show"> <meta name="twitter:description" content="A daily dose of irreverent, offbeat, and informative takes on business & tech news. Hosted by Jon Weigell, Juliet Bennett Rylah, Mark Dent, Ben Berkley, Sara Friedman, Matthew Brown, and Rob Litterst from The Hustle."> <link rel="shortcut icon" type="image/x-icon" href="/assets/chartable-favicon-147fa2a780e77ea3bc97719e343e8d733b2e8487f7c8a78b3d496aae5555dd05.png" /> <meta name="csrf-param" content="authenticity_token" /> <meta name="csrf-token" content="3z1nfH0oPzPXWhBnJFu5a9by/xE82Y8ykFINenNAoJeh8sZSId0v0uGg+89vTmO0ElhrNPzecACq8jM3Mr2SmQ==" /> <link rel="stylesheet" media="all" href="/assets/application-e6e1be4b0c45d8370f449baa0ce082ab5ebb54dca77b6f98a462fff73a0e4037.css" /> <link href='https://fonts.gstatic.com' rel='preconnect'> <script src="/assets/application-e14f81bc94951128bb2d2dc4f233fd48cdc83e337ef2a6de694aeb11401a7c70.js"></script> <link href='//cdnjs.cloudflare.com/ajax/libs/tachyons/4.11.1/tachyons.min.css' rel='stylesheet' type='text/css'> <link href='https://fonts.googleapis.com/css?family=Cabin:500|Open+Sans&display=swap' rel='stylesheet'><link href='https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&display=swap' rel='stylesheet'><script src='https://unpkg.com/axios@1.0.0/dist/axios.min.js'></script> </head> <body style='background: #FFFFFF'> <div class='w-100 flex justify-center' style='background: #FFFFFF'> <div class='content-container inline-flex w7' style='gap: 2rem;'> <div> <img class="br4 cover-art" src="https://megaphone.imgix.net/podcasts/cab36112-749c-11ec-9974-57a8480b9bef/image/THDS_Final_Tile.png?ixlib=rails-4.3.1&max-w=3000&max-h=3000&fit=crop&auto=format,compress" /> <div class='tc h2 mb2 current-episode-title ph2 mt4 f3 b' style='color: #333333; width: 300px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis'> - </div> <div class='webview-audio-player-controls'> <div class='mt3 relative'> <div class='progress-bar pointer'> <div class='w-100 bg-moon-gray br3 o-50' style='height: 6px'></div> <div class='percent-complete pointer absolute top-0 br3 bg-dark-gray' style='height: 6px;'></div> </div> <div class='flex justify-between w-100 mt2'> <div class='f6 current-time' style='color: #333333'> 0:00 </div> <div class='f6 total-duration' style='color: #333333'> -:-- </div> </div> </div> <div class='flex flex-row items-center mt2 justify-around'> <img class="dim pointer skip-back" style="height: 2.75rem; width: 2.75rem;" src="/assets/back15-dark-b158f49dddc83bc68d2c14ab3d7b42385c6daa4b734144f47713fe9448e8d454.svg" /> <img class="dim pointer play-pause-button" style="height: 3rem; width: 3rem" src="/assets/play-dark-56667b8f98046775503abb0472cd646104248c49d9dd4d8ab6389d63b8faadca.svg" /> <img class="dim pointer skip-forward" style="height: 2.75rem; width: 2.75rem;" src="/assets/forward30-dark-8b3e55d318fbad3cdb2985e11b65e725b1613b4fb73bf81bc142d7411968667d.svg" /> </div> </div> <audio id='player' preload='none'></audio> </div> <div class='w-100' style='flex: 1'> <div class='fw-700 lh-title title ph4' style='color: #333333; font-family: Inter, sans-serif;'>The Hustle Daily Show</div> <div class='content flex'> <div class='pt4 links'> <div class='f6 fw-700 o-80 lh-title mb3 tl-ns ph4 ttu tracked link-header' style='color: #333333; font-family: Inter'>Listen now on</div> <div class='flex flex-wrap player-list'> <a class='no-underline player-list-item flex flex-row items-center' href='https://link.chtbl.com/D_hLI7EZ?id=D_hLI7EZ&platform=itunes'> <div class='relative flex items-center justify-center' style='height: 60px; width: 60px; padding: 4px;'> <div class='br4 absolute bg-white top-0 right-0 left-0 bottom-0' style='opacity: 0.15;'></div> <img class="relative grow-large" src="/assets/itunes-73427b4e2f5057e639ad354810c97669b18463e9fef23d6a96e6b0760d853069.svg" /> </div> <div class='hidden-player-content flex-row items-center justify-between ml3' style='flex: 1; font-family: Inter'> <div class='dark-gray o-80 fw-600'> Apple Podcasts </div> <div class='ph3 pv2 br2 ba fw-700' style='border-color: #282828'> <div class='mid-gray o-80'>Play</div> </div> </div> </a> <a class='no-underline player-list-item flex flex-row items-center' href='https://link.chtbl.com/D_hLI7EZ?id=D_hLI7EZ&platform=spotify'> <div class='relative flex items-center justify-center' style='height: 60px; width: 60px; padding: 4px;'> <div class='br4 absolute bg-white top-0 right-0 left-0 bottom-0' style='opacity: 0.15;'></div> <img class="relative grow-large" src="/assets/spotify-ec5bca5b8fbca78b5b0acb04314c079a40240c9b57370518f83ac1e56302c933.svg" /> </div> <div class='hidden-player-content flex-row items-center justify-between ml3' style='flex: 1; font-family: Inter'> <div class='dark-gray o-80 fw-600'> Spotify </div> <div class='ph3 pv2 br2 ba fw-700' style='border-color: #282828'> <div class='mid-gray o-80'>Play</div> </div> </div> </a> <a class='no-underline player-list-item flex flex-row items-center' href='https://link.chtbl.com/D_hLI7EZ?id=D_hLI7EZ&platform=google_podcasts'> <div class='relative flex items-center justify-center' style='height: 60px; width: 60px; padding: 4px;'> <div class='br4 absolute bg-white top-0 right-0 left-0 bottom-0' style='opacity: 0.15;'></div> <img class="relative grow-large" src="/assets/google_podcasts-73950d24121a87af14f1dafd8e89dd61ba0ded991e0b9d4807a9a135b70b0548.svg" /> </div> <div class='hidden-player-content flex-row items-center justify-between ml3' style='flex: 1; font-family: Inter'> <div class='dark-gray o-80 fw-600'> Google Podcasts </div> <div class='ph3 pv2 br2 ba fw-700' style='border-color: #282828'> <div class='mid-gray o-80'>Play</div> </div> </div> </a> <a class='no-underline player-list-item flex flex-row items-center' href='https://link.chtbl.com/D_hLI7EZ?id=D_hLI7EZ&platform=overcast'> <div class='relative flex items-center justify-center' style='height: 60px; width: 60px; padding: 4px;'> <div class='br4 absolute bg-white top-0 right-0 left-0 bottom-0' style='opacity: 0.15;'></div> <img class="relative grow-large" src="/assets/overcast-a72bc55e75006c4efbd9bc3562f3891a896c93373c671e8f2f72f0a76215837e.svg" /> </div> <div class='hidden-player-content flex-row items-center justify-between ml3' style='flex: 1; font-family: Inter'> <div class='dark-gray o-80 fw-600'> Overcast </div> <div class='ph3 pv2 br2 ba fw-700' style='border-color: #282828'> <div class='mid-gray o-80'>Play</div> </div> </div> </a> <a class='no-underline player-list-item flex flex-row items-center' href='https://link.chtbl.com/D_hLI7EZ?id=D_hLI7EZ&platform=castbox'> <div class='relative flex items-center justify-center' style='height: 60px; width: 60px; padding: 4px;'> <div class='br4 absolute bg-white top-0 right-0 left-0 bottom-0' style='opacity: 0.15;'></div> <img class="relative grow-large" src="/assets/castbox-92db9a5111905ddce5a40cc77185ec56f2acb50b623cb0e8dd91131c725c908f.svg" /> </div> <div class='hidden-player-content flex-row items-center justify-between ml3' style='flex: 1; font-family: Inter'> <div class='dark-gray o-80 fw-600'> Castbox </div> <div class='ph3 pv2 br2 ba fw-700' style='border-color: #282828'> <div class='mid-gray o-80'>Play</div> </div> </div> </a> <a class='no-underline player-list-item flex flex-row items-center' href='https://link.chtbl.com/D_hLI7EZ?id=D_hLI7EZ&platform=pocket_casts'> <div class='relative flex items-center justify-center' style='height: 60px; width: 60px; padding: 4px;'> <div class='br4 absolute bg-white top-0 right-0 left-0 bottom-0' style='opacity: 0.15;'></div> <img class="relative grow-large" src="/assets/pocket_casts-a6bbed9f96f0781fec812463802e5a727d13a73dd216d3452dfeb97f0709ca0b.svg" /> </div> <div class='hidden-player-content flex-row items-center justify-between ml3' style='flex: 1; font-family: Inter'> <div class='dark-gray o-80 fw-600'> Pocket Casts </div> <div class='ph3 pv2 br2 ba fw-700' style='border-color: #282828'> <div class='mid-gray o-80'>Play</div> </div> </div> </a> <a class='no-underline player-list-item flex flex-row items-center' href='https://link.chtbl.com/D_hLI7EZ?id=D_hLI7EZ&platform=podcast_addict'> <div class='relative flex items-center justify-center' style='height: 60px; width: 60px; padding: 4px;'> <div class='br4 absolute bg-white top-0 right-0 left-0 bottom-0' style='opacity: 0.15;'></div> <img class="relative grow-large" src="/assets/podcast_addict-a23951e6e490baab0a32a5221de08fe668daa9ef2159f300fc5d4aecc119b77c.png" /> </div> <div class='hidden-player-content flex-row items-center justify-between ml3' style='flex: 1; font-family: Inter'> <div class='dark-gray o-80 fw-600'> Podcast Addict </div> <div class='ph3 pv2 br2 ba fw-700' style='border-color: #282828'> <div class='mid-gray o-80'>Play</div> </div> </div> </a> <a class='no-underline player-list-item flex flex-row items-center' href='https://link.chtbl.com/D_hLI7EZ?id=D_hLI7EZ&platform=radio_public'> <div class='relative flex items-center justify-center' style='height: 60px; width: 60px; padding: 4px;'> <div class='br4 absolute bg-white top-0 right-0 left-0 bottom-0' style='opacity: 0.15;'></div> <img class="relative grow-large" src="/assets/radio_public-d9fd5d9abdea96007143dece5fd1153c9a445d2995a06025e238d4a1558c520b.svg" /> </div> <div class='hidden-player-content flex-row items-center justify-between ml3' style='flex: 1; font-family: Inter'> <div class='dark-gray o-80 fw-600'> RadioPublic </div> <div class='ph3 pv2 br2 ba fw-700' style='border-color: #282828'> <div class='mid-gray o-80'>Play</div> </div> </div> </a> <a class='no-underline player-list-item flex flex-row items-center' href='https://link.chtbl.com/D_hLI7EZ?id=D_hLI7EZ&platform=breaker'> <div class='relative flex items-center justify-center' style='height: 60px; width: 60px; padding: 4px;'> <div class='br4 absolute bg-white top-0 right-0 left-0 bottom-0' style='opacity: 0.15;'></div> <img class="relative grow-large" src="/assets/breaker-79c73c4e126f43f554361a74ebf12fd6889f6ef98681fea3cba9164f354e66a2.svg" /> </div> <div class='hidden-player-content flex-row items-center justify-between ml3' style='flex: 1; font-family: Inter'> <div class='dark-gray o-80 fw-600'> Breaker </div> <div class='ph3 pv2 br2 ba fw-700' style='border-color: #282828'> <div class='mid-gray o-80'>Play</div> </div> </div> </a> <a class='no-underline player-list-item flex flex-row items-center' href='https://link.chtbl.com/D_hLI7EZ?id=D_hLI7EZ&platform=rss'> <div class='relative flex items-center justify-center' style='height: 60px; width: 60px; padding: 4px;'> <div class='br4 absolute bg-white top-0 right-0 left-0 bottom-0' style='opacity: 0.15;'></div> <img class="relative grow-large" src="/assets/rss-5d61fa90548266c6296cb95aa758ef418ccf45deb59d2610a7d52cb4b4835c4f.svg" /> </div> <div class='hidden-player-content flex-row items-center justify-between ml3' style='flex: 1; font-family: Inter'> <div class='dark-gray o-80 fw-600'> RSS feed </div> <div class='ph3 pv2 br2 ba fw-700' style='border-color: #282828'> <div class='mid-gray o-80'>Play</div> </div> </div> </a> <a class='no-underline player-list-item flex flex-row items-center' href='https://link.chtbl.com/D_hLI7EZ?id=D_hLI7EZ&platform=amazon_music'> <div class='relative flex items-center justify-center' style='height: 60px; width: 60px; padding: 4px;'> <div class='br4 absolute bg-white top-0 right-0 left-0 bottom-0' style='opacity: 0.15;'></div> <img class="relative grow-large" src="/assets/amazon_music-c2fe6e0a34919c5d9ecb7cf6df43de6d6f9408a02120fb16d31d1ed5ffb7e19f.png" /> </div> <div class='hidden-player-content flex-row items-center justify-between ml3' style='flex: 1; font-family: Inter'> <div class='dark-gray o-80 fw-600'> Amazon Music </div> <div class='ph3 pv2 br2 ba fw-700' style='border-color: #282828'> <div class='mid-gray o-80'>Play</div> </div> </div> </a> <a class='no-underline player-list-item flex flex-row items-center' href='https://link.chtbl.com/D_hLI7EZ?id=D_hLI7EZ&platform=i_heart_radio'> <div class='relative flex items-center justify-center' style='height: 60px; width: 60px; padding: 4px;'> <div class='br4 absolute bg-white top-0 right-0 left-0 bottom-0' style='opacity: 0.15;'></div> <img class="relative grow-large" src="/assets/i_heart_radio-d724d69736a446bccabf06bea427873f06494225d42d038dfb6f4b2ef0cb5e5c.png" /> </div> <div class='hidden-player-content flex-row items-center justify-between ml3' style='flex: 1; font-family: Inter'> <div class='dark-gray o-80 fw-600'> iHeartRadio </div> <div class='ph3 pv2 br2 ba fw-700' style='border-color: #282828'> <div class='mid-gray o-80'>Play</div> </div> </div> </a> <a class='no-underline player-list-item flex flex-row items-center' href='https://link.chtbl.com/D_hLI7EZ?id=D_hLI7EZ&platform=radio_com'> <div class='relative flex items-center justify-center' style='height: 60px; width: 60px; padding: 4px;'> <div class='br4 absolute bg-white top-0 right-0 left-0 bottom-0' style='opacity: 0.15;'></div> <img class="relative grow-large" src="/assets/radio_com-86425b958abcdfe368fae8dbbbef8fd106157de3d950fdbab7e3b97f2b69e7dc.png" /> </div> <div class='hidden-player-content flex-row items-center justify-between ml3' style='flex: 1; font-family: Inter'> <div class='dark-gray o-80 fw-600'> Audacy </div> <div class='ph3 pv2 br2 ba fw-700' style='border-color: #282828'> <div class='mid-gray o-80'>Play</div> </div> </div> </a> <a class='no-underline player-list-item flex flex-row items-center' href='https://link.chtbl.com/D_hLI7EZ?id=D_hLI7EZ&platform=custom'> <div class='relative flex items-center justify-center' style='height: 60px; width: 60px; padding: 4px;'> <div class='br4 absolute bg-white top-0 right-0 left-0 bottom-0' style='opacity: 0.15;'></div> <div class='div br3 b--mid-gray bg-white bw1 relative grow-large ba flex items-center justify-center h-100 w-100'> <img style="height: 40px; width: 40px" alt="Homepage" src="/assets/custom-e7657cb18bfaf9a605f0960811f048f1abd8fbf574c0f424afcf516393fc864b.svg" /> </div> </div> <div class='hidden-player-content flex-row items-center justify-between ml3' style='flex: 1; font-family: Inter'> <div class='dark-gray o-80 fw-600'> Podcast Homepage </div> <div class='ph3 pv2 br2 ba fw-700' style='border-color: #282828'> <div class='mid-gray o-80'>Play</div> </div> </div> </a> </div> </div> <div class='mt4 ph4'> <div class='lh-copy mb4 w-100' style='color: #333333; font-weight: 400; font-family: Inter, sans-serif;'> <span class='description'> A daily dose of irreverent, offbeat, and informative takes on business & tech news. Hosted by Jon Weigell, Juliet Bennett Rylah, Mark Dent, Ben Berkley, Sara Friedman, Matthew Brown, and Rob Litterst from The Hustle. </span> <span class='link pointer dn no-underline text-button o-70' style='color: #333333'>Show more</span> <div class='mt5 f6 fw-700 o-80 lh-title tl-ns ttu tracked link-header web' style='color: #333333; font-family: Inter'>Episodes</div> <div class='episode-feed-container web' style='color: #333333'></div> </div> </div> </div> </div> </div> </div> <div class='f7 tc w-100 o-70 mt5 out-links pb5' style='color: #333333'> <div class='pb4'> Powered by <a class="link underline" style="color: inherit" href="https://chartable.com/smartlinks?utm_source=smartlink">Chartable SmartLinks</a> · <a class="link" style="color: inherit" href="https://chartable.com/privacy?utm_source=smartlink">Privacy & Terms</a> </div> </div> <div class='w-100 fixed bottom-0 mobile-player'> <div class='maximized-content' style='display: none;'> <div class='w-100 flex justify-center pt2 pointer minimize-button' style='height: 60px'> <div class='bg-moon-gray w2 br3' style='width: 40px; height: 5px'></div> </div> <div class='h-100 w-100 center tc' style='max-width: 550px'> <img class="w-70 br4" style="max-width: 270px; box-shadow: rgba(100, 100, 111, 0.2) 0px 7px 29px 0px;" src="https://megaphone.imgix.net/podcasts/cab36112-749c-11ec-9974-57a8480b9bef/image/THDS_Final_Tile.png?ixlib=rails-4.3.1&max-w=3000&max-h=3000&fit=crop&auto=format,compress" /> <p class='ph4 mt4 f3 b dark-gray current-episode-title-2' style='width: 100%; text-overflow: ellipsis; white-space: nowrap; overflow: hidden; font-family: Inter;'> </p> <div class='mobile-audio-player-controls ph4'> <div class='mt3 relative'> <div class='progress-bar-2 pointer'> <div class='w-100 bg-moon-gray br3 o-50' style='height: 6px'></div> <div class='percent-complete-2 bg-dark-gray pointer absolute top-0 br3' style='height: 6px;'></div> </div> <div class='flex justify-between w-100 mt2'> <div class='f6 current-time-2 dark-gray'> 0:00 </div> <div class='f6 total-duration-2 dark-gray'> </div> </div> </div> <div class='flex flex-row items-center justify-around w-60 center mt2'> <img class="dim pointer skip-back-2" style="height: 2.75rem; width: 2.75rem;" src="/assets/back15-dark-b158f49dddc83bc68d2c14ab3d7b42385c6daa4b734144f47713fe9448e8d454.svg" /> <img class="dim pointer play-pause-button-3" style="height: 2.85rem; width: 2.75rem" src="/assets/play-dark-56667b8f98046775503abb0472cd646104248c49d9dd4d8ab6389d63b8faadca.svg" /> <img class="dim pointer skip-forward-2" style="height: 2.75rem; width: 2.75rem;" src="/assets/forward30-dark-8b3e55d318fbad3cdb2985e11b65e725b1613b4fb73bf81bc142d7411968667d.svg" /> </div> <div class='description-container mt5'> <div class='f5 fw-700 o-80 lh-title mb2 tl-ns ttu tracked link-header dark-gray' style='font-family: Inter'> Description </div> <div class='f6 mid-gray tl lh-copy current-episode-description' style='font-family: Inter'> - </div> </div> <div class='mt5 f6 fw-700 o-80 lh-title tl-ns ttu tracked link-header mobile dark-gray' style='font-family: Inter'>Episodes</div> <div class='episode-feed-container mobile' style='color: #333; font-family: Inter;'></div> </div> </div> </div> <div class='pointer minimized-content relative' style='height: 55px;'> <div class='flex flex-row justify-between w-100 fade-display items-center blurred-content'> <div class='w3 pa2'> <img class="" style="width: 100%;" src="https://megaphone.imgix.net/podcasts/cab36112-749c-11ec-9974-57a8480b9bef/image/THDS_Final_Tile.png?ixlib=rails-4.3.1&max-w=3000&max-h=3000&fit=crop&auto=format,compress" /> </div> <div class='w-100 f5 dark-gray current-episode-title-3' style='flex: 1; text-overflow: ellipsis; font-family: Inter; overflow: hidden; white-space: nowrap;'> </div> <img class="dim ph2 pv2 pointer play-pause-button-2" style="height: 1.5rem; width: 1.5rem;" src="/assets/play-dark-56667b8f98046775503abb0472cd646104248c49d9dd4d8ab6389d63b8faadca.svg" /> <img class="dim ph2 pv2 pointer skip-forward-3" style="height: 1.8rem; width: 1.8rem;" src="/assets/forward30-dark-8b3e55d318fbad3cdb2985e11b65e725b1613b4fb73bf81bc142d7411968667d.svg" /> </div> <div class='absolute top-0 bottom-0 left-0 right-0 o-40 bg-white' style='z-index: -1;'></div> <div class='maximize-button absolute left-0 bottom-0 top-0' style='width: calc(100% - 5.5rem);'></div> </div> </div> <noscript> <a href="">Click here if you are not automatically redirected</a> </noscript> </body> <script> var mobilePlayerIsShowing = false; let loadingIndicator = document.createElement("div"); loadingIndicator.classList = "lds-ellipsis"; for (let i = 0; i < 4; i++) { loadingIndicator.appendChild(document.createElement("div")); } let playDarkImagePath = "/assets/play-dark-56667b8f98046775503abb0472cd646104248c49d9dd4d8ab6389d63b8faadca.svg"; let playLightImagePath = "/assets/play-light-44e957ca417b16db805a9b7a569bf6a9baf0864fda92660c48999eadb06a21b7.svg"; let pauseDarkImagePath = "/assets/pause-dark-2b02da7a704af33108488e4b734d012a19b77f0bf542639284667225e353e59c.svg"; let pauseLightImagePath = "/assets/pause-light-5f6c22366e0556614d5ba30a0531b92b569fd9b8bd83146c384ff77c81c55855.svg"; let lightMode = true; if (!lightMode) { loadingIndicator.classList += " dark-mode"; } // MARKER - Description Text toggle let descriptionTextLimit = 150; let description = document.querySelector('.description'); let descriptionText = description.innerText; let button = document.querySelector('.text-button'); var textIsHidden = true; function hideDescription() { let truncatedText = descriptionText.substr(0, descriptionTextLimit) + '...'; description.innerText = truncatedText; } function toggleText() { if (textIsHidden) { button.innerHTML = 'Show Less'; description.innerText = descriptionText; } else { button.innerHTML = 'Show More'; hideDescription(); } textIsHidden = !textIsHidden; } if (descriptionText.length > descriptionTextLimit) { button.style.display = "inline"; button.addEventListener('click', toggleText); hideDescription(); } let player = document.getElementById('player'); let聽source = document.getElementById('source'); // MARKER - Audio controls var playPauseButton = document.querySelector('.play-pause-button'); var playPauseButton2 = document.querySelector('.play-pause-button-2'); var playPauseButton3 = document.querySelector('.play-pause-button-3'); var isPlaying = false; function togglePlayPause() { if (!currentEpisode) { return; } if (isPlaying) { player.pause(); playPauseButton.src = lightMode ? playDarkImagePath : playLightImagePath; playPauseButton2.src = playDarkImagePath; playPauseButton3.src = playDarkImagePath; } else { player.play(); playPauseButton.src = lightMode ? pauseDarkImagePath : pauseLightImagePath; playPauseButton2.src = pauseDarkImagePath; playPauseButton3.src = pauseDarkImagePath; } isPlaying = !isPlaying; renderEpisodeFeed(); } // MARKER - Audio time management let totalDuration = document.querySelector('.total-duration'); let currentTime = document.querySelector('.current-time'); let totalDuration2 = document.querySelector('.total-duration-2'); let currentTime2 = document.querySelector('.current-time-2'); let percentComplete = document.querySelector('.percent-complete'); let percentComplete2 = document.querySelector('.percent-complete-2'); let progressBar = document.querySelector('.progress-bar'); let progressBar2 = document.querySelector('.progress-bar-2'); let skipBack = document.querySelector('.skip-back'); let skipBack2 = document.querySelector('.skip-back-2'); let skipForward = document.querySelector('.skip-forward'); let skipForward2 = document.querySelector('.skip-forward-2'); let skipForward3 = document.querySelector('.skip-forward-3'); function secondsToHHMMSS(s) { var h = Math.floor(s / 3600); var m = Math.floor(s % 3600 / 60); var s = Math.floor(s % 3600 % 60); var hours = h > 0 ? `${h}:` : ""; var minutes = h > 0 && m > 9 ? `0${m}` : `${m}`; var seconds = s > 9 ? `${s}` : `0${s}`; return `${hours}${minutes}:${seconds}`; } function percentAudioComplete(curr) { return (curr / player.duration) * 100; } function onTimeUpdate(e) { curr = player.currentTime; currentTime.innerHTML = secondsToHHMMSS(curr); currentTime2.innerHTML = secondsToHHMMSS(curr); percentComplete.style.width = `${percentAudioComplete(curr)}%`; percentComplete2.style.width = `${percentAudioComplete(curr)}%`; } function seek(e) { var percent = e.offsetX / this.offsetWidth; var time = percent * player.duration; currentTime.innerHTML = secondsToHHMMSS(time); currentTime2.innerHTML = secondsToHHMMSS(time); percentComplete.style.width = `${percent * 100}%`; percentComplete2.style.width = `${percent * 100}%`; player.currentTime = time; } function handleSkipBack() { player.currentTime -= 15; } function handleSkipForward() { player.currentTime += 30; } // MARKER - Bottom player let mobilePlayer = document.querySelector('.mobile-player'); let minimizedContent = document.querySelector('.minimized-content'); let maximizedContent = document.querySelector('.maximized-content'); let maximizeButton = document.querySelector('.maximize-button'); let minimizeButton = document.querySelector('.minimize-button'); function showMobilePlayer() { mobilePlayerIsShowing = true; mobilePlayer.classList.add("maximized"); minimizedContent.classList.add("maximized"); maximizedContent.style.display = "block"; document.querySelector('body').style.overflow = "hidden"; renderEpisodeFeed(); loadingIndicator.classList.remove("dark-mode"); } function hideMobilePlayer() { mobilePlayerIsShowing = false; mobilePlayer.classList.remove("maximized"); minimizedContent.classList.remove("maximized"); maximizedContent.style.display = "none"; document.querySelector('body').style.overflow = "auto"; if (!lightMode) { loadingIndicator.classList += " dark-mode"; } } // Setting Episode var currentEpisode = null; if (JSON.stringify({"cid":"88f82d41-9b8d-4381-8209-8b9fb665a62f","id":198088290,"title":"Drake鈥檚 lawsuit against UMG \u0026 Spotify, explained","description":null,"url":"https://pdst.fm/e/chrt.fm/track/28555/pdrl.fm/9693cc/tracking.swap.fm/track/AwSmAF8PeQlxyS7Q0R8T/traffic.megaphone.fm/HS3350108222.mp3?updated=1732670781","published_at":"2024-11-27T06:00:00.000Z"}) !== JSON.stringify({})) { currentEpisode = {"cid":"88f82d41-9b8d-4381-8209-8b9fb665a62f","id":198088290,"title":"Drake鈥檚 lawsuit against UMG \u0026 Spotify, explained","description":null,"url":"https://pdst.fm/e/chrt.fm/track/28555/pdrl.fm/9693cc/tracking.swap.fm/track/AwSmAF8PeQlxyS7Q0R8T/traffic.megaphone.fm/HS3350108222.mp3?updated=1732670781","published_at":"2024-11-27T06:00:00.000Z"}; } let currentEpisodeTitleLabel = document.querySelector('.current-episode-title'); let currentEpisodeTitleLabel2 = document.querySelector('.current-episode-title-2'); let currentEpisodeTitleLabel3 = document.querySelector('.current-episode-title-3'); let currentEpisodeDescriptionLabel = document.querySelector('.current-episode-description'); let descriptionContainer = document.querySelector('.description-container'); function setEpisode(newEpisode) { if (newEpisode) { currentEpisodeTitleLabel.innerText = newEpisode.title; currentEpisodeTitleLabel2.innerText = newEpisode.title; currentEpisodeTitleLabel3.innerText = newEpisode.title; if (newEpisode.description) { descriptionContainer.style.display = "block"; currentEpisodeDescriptionLabel.innerText = newEpisode.description; } else { descriptionContainer.style.display = "none"; } player.src = encodeURI(newEpisode.url); currentEpisode = newEpisode; } } // MARK - Episode feed var loadMoreButton = document.createElement("div"); loadMoreButton.classList = `br2 pa2 f5 ba tc pointer dim mw4 mt4 center ${lightMode ? 'b--dark-gray' : 'bg--white'}`; loadMoreButton.addEventListener('click', getEpisodes); var mobileLoadMoreButton = document.createElement("div"); mobileLoadMoreButton.classList = "br2 pa2 f5 ba tc pointer dim mw4 mt4 center b--dark-gray" mobileLoadMoreButton.addEventListener('click', getEpisodes); var episodeFeedContainer = document.querySelector('.episode-feed-container.web'); var mobileEpisodeFeedContainer = document.querySelector('.episode-feed-container.mobile'); var page = 1; var episodes = []; var requestInProgress = false; function handleEpisodeFeedShowMoreClick(i) { episodes[i].expanded = !episodes[i].expanded; renderEpisodeFeed(); } function handleEpisodeFeedPlayClick(i) { if (!!currentEpisode && currentEpisode.url === episodes[i].url) { togglePlayPause(); } else { currentTime.innerHTML = secondsToHHMMSS(0); currentTime2.innerHTML = secondsToHHMMSS(0); percentComplete.style.width = `${percentAudioComplete(0)}%`; percentComplete2.style.width = `${percentAudioComplete(0)}%`; setEpisode(episodes[i]); if (!isPlaying) { togglePlayPause(); } else { player.play(); renderEpisodeFeed(); } } } function generateEpisodeDiv(episode, index, isMobile) { if (!episode.url || !episode.title) { return null; } var episodeDiv = document.createElement("div"); episodeDiv.classList = "flex flex-row pv4 bb b--light-gray items-start"; let pauseImage = isMobile || lightMode ? pauseDarkImagePath : pauseLightImagePath; let playImage = isMobile || lightMode ? playDarkImagePath : playLightImagePath; var imageTag = document.createElement("img"); imageTag.src = !!currentEpisode && episode.url === currentEpisode.url && isPlaying ? pauseImage : playImage; imageTag.style.width = "1.5rem"; imageTag.classList = "mr3 pointer dim"; imageTag.addEventListener('click', function() { handleEpisodeFeedPlayClick(index); }); var titleDiv = document.createElement("div"); titleDiv.classList = "f5 b mb1 tl"; titleDiv.innerText = episode.title; var textContainerDiv = document.createElement("div"); var descriptionDiv = document.createElement("div"); var showMoreSpan = document.createElement("div"); if (episode.description) { descriptionDiv.classList = "f5 lh-copy tl"; descriptionDiv.innerText = !episode.expanded && episode.description.length > descriptionTextLimit ? episode.description.substr(0, descriptionTextLimit) + '...' : episode.description; showMoreSpan.classList = `${episode.description.length > descriptionTextLimit ? '' : 'dn'} tl no-underline text-button o-70 pointer mt1`; showMoreSpan.innerHTML = `Show ${episode.expanded ? 'less' : 'more'}`; showMoreSpan.addEventListener("click", function() { handleEpisodeFeedShowMoreClick(index); }); } textContainerDiv.appendChild(titleDiv); textContainerDiv.appendChild(descriptionDiv); textContainerDiv.appendChild(showMoreSpan); episodeDiv.appendChild(imageTag); episodeDiv.appendChild(textContainerDiv); return episodeDiv; } function getEpisodes() { if (requestInProgress) { return; } requestInProgress = true; loadMoreButton.innerHTML = ""; loadMoreButton.appendChild(loadingIndicator); mobileLoadMoreButton.innerHTML = loadMoreButton.innerHTML; let host = "https://chartable.com"; axios(`${host}/api/episodes/feed?podcast_id=the-hustle-daily-show&page=${page}&token=ab5d92470d76c4d03776`) .then(res => { res.data.forEach(episode => { episode.expanded = false; episodes.push(episode); }); loadMoreButton.innerHTML = "Load more"; mobileLoadMoreButton.innerHTML = loadMoreButton.innerHTML page += 1; renderEpisodeFeed(); }) .catch(err => { loadMoreButton.innerHTML = "Retry" mobileLoadMoreButton.innerHTML = loadMoreButton.innerHTML }) .finally(() => requestInProgress = false); } function renderEpisodeFeed() { episodeFeedContainer.innerHTML = ''; mobileEpisodeFeedContainer.innerHTML = ''; for (let i = 0; i < episodes.length; i++) { let episodeDiv = generateEpisodeDiv(episodes[i], i, false); if (episodeDiv) { episodeFeedContainer.appendChild(episodeDiv); } if (mobilePlayerIsShowing && episodeDiv) { mobileEpisodeFeedContainer.appendChild(generateEpisodeDiv(episodes[i], i, true)); } } loadMoreButton.innerHTML = "Load more"; mobileLoadMoreButton.innerHTML = loadMoreButton.innerHTML; episodeFeedContainer.appendChild(loadMoreButton); mobileEpisodeFeedContainer.appendChild(mobileLoadMoreButton) } if (true) { minimizeButton.addEventListener("click", hideMobilePlayer); maximizeButton.addEventListener("click", showMobilePlayer); player.addEventListener('timeupdate', onTimeUpdate); progressBar.addEventListener("click", seek); progressBar2.addEventListener("click", seek); skipBack.addEventListener("click", handleSkipBack); skipBack2.addEventListener("click", handleSkipBack); skipForward.addEventListener("click", handleSkipForward); skipForward2.addEventListener("click", handleSkipForward); skipForward3.addEventListener("click", handleSkipForward); playPauseButton.addEventListener('click', togglePlayPause); playPauseButton2.addEventListener('click', togglePlayPause); playPauseButton3.addEventListener('click', togglePlayPause); player.onloadedmetadata = function() { let time = player.duration; totalDuration.innerHTML = secondsToHHMMSS(time); totalDuration2.innerHTML = secondsToHHMMSS(time); } if (currentEpisode) { setEpisode(currentEpisode); } episodeFeedContainer.classList += lightMode ? " dark-gray" : " white"; renderEpisodeFeed(); } getEpisodes(); </script> </html>