Skip to content

Commit

Permalink
Overhaul podcast page (#74)
Browse files Browse the repository at this point in the history
* Draft

* Draft PoC

* Add episode placeholders

* Draft

* First draft

* Draft

* update

* Add new podcast embed

* Update dependencies

* Update most recent episodes
  • Loading branch information
ChrisChinchilla committed Dec 21, 2023
1 parent d2215ac commit ccb3d90
Show file tree
Hide file tree
Showing 11 changed files with 3,405 additions and 1,374 deletions.
4,617 changes: 3,293 additions & 1,324 deletions .astro/types.d.ts

Large diffs are not rendered by default.

8 changes: 1 addition & 7 deletions src/components/Podcast.astro
Original file line number Diff line number Diff line change
@@ -1,14 +1,12 @@
---
import { Image } from 'astro:assets';
import { type CollectionEntry } from 'astro:content';
import Markdown from '@astrojs/markdown-component';
import truncateMarkdown from 'markdown-truncate';
export interface Props {
podcast: CollectionEntry<'podcasts'>;
}
const { podcast, episodeData } = Astro.props;
const { podcast } = Astro.props;
var url = slugify(podcast.title[0]);
function slugify(str) {
str = str.replace(/^\s+|\s+$/g, '');
Expand Down Expand Up @@ -64,10 +62,6 @@ function slugify(str) {
</h2>
</header>
<div class="my-2" set:html={truncateMarkdown(podcast.description, { limit: 500, ellipsis: true })} />
<audio controls src={podcast.enclosure.att_url} preload="none">
<a href={podcast.enclosure.att_url}>Download audio</a>
</audio>
{episodeData ? episodeData.extra : ''}
</div>
</div>
</article>
4 changes: 3 additions & 1 deletion src/content/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,9 @@ const podcasts = defineCollection({
description: z.string().optional(),
image: z.string().optional(),
audio_preview_url: z.string().optional(),
embed: z.string().optional(),
player_embed: z.string().optional(),
descript_embed: z.string().optional(),
transcript: z.string().optional()
}),
});

Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
---
embed: 'https://share.descript.com/embed/5TlMYDO4PVP'
descript_embed: 'https://share.descript.com/embed/5TlMYDO4PVP'
player_embed: '800e0e5d-0bf9-47fd-9aa3-ef5939326b28'
---
1 change: 1 addition & 0 deletions src/content/podcasts/loris-degioanni-of-sysdig.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
---
player_embed: 'd7d77a5c-7aba-40d0-a10d-c482596f97b5'
---
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
---

player_embed: '960024eb-50bf-4234-ad88-1104ff52d76e'
descript_embed: 'https://share.descript.com/embed/4hmF5KImDyE'
---
Original file line number Diff line number Diff line change
@@ -1,38 +1,36 @@
---
embed: 'https://share.descript.com/embed/0mtNDXsXNmL'
descript_embed: 'https://share.descript.com/embed/0mtNDXsXNmL'
player_embed: '16a9bf6e-d5bf-4d99-8acb-426ec8d5bc57'
transcript: |
The script is a transcript of a podcast episode hosted by Chris Chinchilla, titled "IT Arena 2023". The episode is a compilation of his interviews at the IT Arena event in Ukraine, where he spoke with professionals from various tech companies about their businesses and their views on the present and future of the tech industry. Some of the people interviewed include Anastasia from Inputsoft, a digital platform for airports, Roman and Den from Sigma Software, and Chris from Wildcodes. Topics discussed ranged from the impact of Artificial Intelligence on hiring and education to the challenges of digitizing airport operations and tech entrepreneurship.
Chinchilla Squeaks: Innovation and Technology Insights from IT Arena
In this episode, I share interviews from the IT Arena event in Lviv, Ukraine. As I dive into conversations with tech innovators from around the world, we discusses a range of topics, from a digital platform for airports to remote hiring of developers and the future of education in tech. I also explores the state of the tech industry in Ukraine, the influence of artificial intelligence, and my own journey in the tech world.
00:00 Introduction and Overview
01:20 Interview with Anastasia from Inputsoft
01:41 Discussion with Dennis and Roman from Sigma Software
01:59 Conversation with Serge from Wildcodes
02:17 Chat with Alex Dantas on Education in Tech
02:33 Call to Action and Conclusion
03:01 Interview with Inputsoft on Digital Platform for Airports
17:09 Sigma Software Group Introduction
26:09 Wildcoast: Marketplace of Weta Developers
32:31 Discussing Business Risks and Distributed Teams
33:08 The Role of Social Media in Business
33:51 Future of Software Development and AI
34:16 Impact of AI on Job Market
35:18 Challenges for Junior Developers
37:31 Personal Journey and Career Path
38:50 The State of Education and Its Future
40:54 The Role of Universities in Modern Society
44:13 The Impact of AI on Future Workforce
44:31 The Future of Education and Work
49:00 The Business of Universities
56:53 The Future of Population and Work
59:21 Personal Motivation and Entrepreneurship
01:00:21 Closing Remarks and Future Plans
---




The script is a transcript of a podcast episode hosted by Chris Chinchilla, titled "IT Arena 2023". The episode is a compilation of his interviews at the IT Arena event in Ukraine, where he spoke with professionals from various tech companies about their businesses and their views on the present and future of the tech industry. Some of the people interviewed include Anastasia from Inputsoft, a digital platform for airports, Roman and Den from Sigma Software, and Chris from Wildcodes. Topics discussed ranged from the impact of Artificial Intelligence on hiring and education to the challenges of digitizing airport operations and tech entrepreneurship.



Chinchilla Squeaks: Innovation and Technology Insights from IT Arena

In this episode, I share interviews from the IT Arena event in Lviv, Ukraine. As I dive into conversations with tech innovators from around the world, we discusses a range of topics, from a digital platform for airports to remote hiring of developers and the future of education in tech. I also explores the state of the tech industry in Ukraine, the influence of artificial intelligence, and my own journey in the tech world.

00:00 Introduction and Overview
01:20 Interview with Anastasia from Inputsoft
01:41 Discussion with Dennis and Roman from Sigma Software
01:59 Conversation with Serge from Wildcodes
02:17 Chat with Alex Dantas on Education in Tech
02:33 Call to Action and Conclusion
03:01 Interview with Inputsoft on Digital Platform for Airports
17:09 Sigma Software Group Introduction
26:09 Wildcoast: Marketplace of Weta Developers
32:31 Discussing Business Risks and Distributed Teams
33:08 The Role of Social Media in Business
33:51 Future of Software Development and AI
34:16 Impact of AI on Job Market
35:18 Challenges for Junior Developers
37:31 Personal Journey and Career Path
38:50 The State of Education and Its Future
40:54 The Role of Universities in Modern Society
44:13 The Impact of AI on Future Workforce
44:31 The Future of Education and Work
49:00 The Business of Universities
56:53 The Future of Population and Work
59:21 Personal Motivation and Entrepreneurship
01:00:21 Closing Remarks and Future Plans
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
---
embed: 'https://share.descript.com/embed/pyeEecDaMYs'
descript_embed: 'https://share.descript.com/embed/pyeEecDaMYs'
player_embed: '97cb7287-fd50-4ef5-9040-426f06cf97a4'
---
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
---
embed: 'https://share.descript.com/embed/CMjM2PWxpl0'
descript_embed: 'https://share.descript.com/embed/CMjM2PWxpl0'
player_embed: 'a32b2c85-c87b-4e78-9ae2-e471327e31c4'
---
17 changes: 15 additions & 2 deletions src/layouts/PodcastLayout.astro
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import Footer from '~/components/widgets/Footer.astro';
import Announcement from '~/components/widgets/Announcement.astro';
import { Image } from 'astro:assets';
import { type CollectionEntry } from 'astro:content';
import Markdown from '@astrojs/markdown-component';
import truncateMarkdown from 'markdown-truncate';
import { MetaSEO } from '~/types';
Expand Down Expand Up @@ -72,17 +71,31 @@ function slugify(str) {
<div class="mt-2">
<div class="my-2" set:html={truncateMarkdown(podcast.description, { limit: 500, ellipsis: true })} />
<h2 class="text-xl sm:text-2xl leading-tight mb-2 font-heading dark:text-slate-300">Listen and download</h2>

{episodeData.player_embed ?

<iframe height="200px" width="100%" frameborder="no" scrolling="no" seamless src=`https://player.simplecast.com/${episodeData.player_embed}`></iframe>

:

<audio controls src={podcast.enclosure.att_url} preload="none">
<a href={podcast.enclosure.att_url}>Download audio</a>
</audio>

}

<h2 class="text-xl sm:text-2xl leading-tight mb-2 font-heading dark:text-slate-300">
Interactive transcript
</h2>
{episodeData ? <iframe src={episodeData.embed} width="100%" height="520" allowfullscreen /> : ''}
{episodeData ? <iframe src={episodeData.descript_embed} width="100%" height="520" allowfullscreen /> : ''}
</div>
<h2>Transcript</h2>
<div set:html={episodeData.transcript}></div>
{episodeData.transcript}
</article>
</div>
</section>

</main>

<Footer />
Expand Down
50 changes: 50 additions & 0 deletions src/pages/podcast/convert.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
var fs = require('fs');
const { XMLParser } = require('fast-xml-parser');

function slugify(str) {
str = str.replace(/^\s+|\s+$/g, '');

// Make the string lowercase
str = str.toLowerCase();

// Remove accents, swap ñ for n, etc
var from = 'ÁÄÂÀÃÅČÇĆĎÉĚËÈÊẼĔȆÍÌÎÏŇÑÓÖÒÔÕØŘŔŠŤÚŮÜÙÛÝŸŽáäâàãåčçćďéěëèêẽĕȇíìîïňñóöòôõøðřŕšťúůüùûýÿžþÞĐđßÆa·/_,:;';
var to = 'AAAAAACCCDEEEEEEEEIIIINNOOOOOORRSTUUUUUYYZaaaaaacccdeeeeeeeeiiiinnooooooorrstuuuuuyyzbBDdBAa------';
for (var i = 0, l = from.length; i < l; i++) {
str = str.replace(new RegExp(from.charAt(i), 'g'), to.charAt(i));
}

// Remove invalid chars
str = str
.replace(/[^a-z0-9 -]/g, '')
// Collapse whitespace and replace by -
.replace(/\s+/g, '-')
// Collapse dashes
.replace(/-+/g, '-');

return str;
}

const options = {
ignoreAttributes: false,
stopNodes: ['root.itunes:title'],
attributeNamePrefix: 'att_',
removeNSPrefix: true,
};
const parser = new XMLParser(options);

fetch('https://feeds.zencastr.com/f/h5h0nhAi.rss')
.then((feedTest) => {
feedTest.text().then((rssFeedData) => {
let parsedFeed = parser.parse(rssFeedData);
const allEpisodes = parsedFeed.rss.channel.item;
allEpisodes.forEach((episode) => {
let episodeTitle = slugify(episode.title[0]);
let createStream = fs.createWriteStream(`${episodeTitle}.md`);
createStream.end();
});
});
})
.catch(function (err) {
console.log('Unable to fetch -', err);
});

0 comments on commit ccb3d90

Please sign in to comment.