Skip to content

Commit fcd9149

Browse files
Try moving image optimization
1 parent 0688b27 commit fcd9149

3 files changed

Lines changed: 37 additions & 41 deletions

File tree

src/components/Player.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ export default function Player() {
2626
setProgress(percentage);
2727
const slider = document.querySelector('.slider');
2828
if (slider) {
29-
console.log(percentage);
3029
(slider as HTMLElement).style.setProperty(
3130
'--seek-before-width',
3231
`${percentage}%`

src/lib/optimize-episode-image.ts

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,15 @@
11
import { getImage } from 'astro:assets';
22

3-
import type { Episode } from './rss';
4-
5-
export async function optimizeEpisodeImage(episode: Episode) {
6-
if (episode.episodeImage) {
3+
export async function optimizeEpisodeImage(episodeImage?: string) {
4+
if (episodeImage) {
75
const optimizedImage = await getImage({
8-
src: episode.episodeImage,
6+
src: episodeImage,
97
format: 'avif',
108
height: 160,
119
width: 160,
1210
quality: 75
1311
});
14-
episode.episodeImage = optimizedImage.src;
12+
13+
return optimizedImage.src;
1514
}
1615
}

src/lib/rss.ts

Lines changed: 32 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -59,43 +59,41 @@ export async function getAllEpisodes() {
5959
let feed = (await parseFeed.parse(starpodConfig.rssFeed)) as Show;
6060
let items = parse(FeedSchema, feed).items;
6161

62-
let episodes: Array<Episode> = items
63-
.filter((item) => item.itunes_episodeType !== 'trailer')
64-
.map(
65-
({
66-
description,
67-
id,
68-
title,
69-
enclosures,
70-
published,
71-
itunes_episode,
72-
itunes_episodeType,
73-
itunes_image
74-
}) => {
75-
const episodeNumber =
76-
itunes_episodeType === 'bonus' ? 'Bonus' : `${itunes_episode}`;
77-
const episodeSlug = dasherize(title);
78-
79-
return {
62+
let episodes: Array<Episode> = await Promise.all(
63+
items
64+
.filter((item) => item.itunes_episodeType !== 'trailer')
65+
.map(
66+
async ({
67+
description,
8068
id,
81-
title: `${title}`,
82-
content: description,
83-
description: truncate(htmlToText(description), 260),
84-
episodeImage: itunes_image?.href,
85-
episodeNumber,
86-
episodeSlug,
69+
title,
70+
enclosures,
8771
published,
88-
audio: enclosures.map((enclosure) => ({
89-
src: enclosure.url,
90-
type: enclosure.type
91-
}))[0]
92-
};
93-
}
94-
);
72+
itunes_episode,
73+
itunes_episodeType,
74+
itunes_image
75+
}) => {
76+
const episodeNumber =
77+
itunes_episodeType === 'bonus' ? 'Bonus' : `${itunes_episode}`;
78+
const episodeSlug = dasherize(title);
9579

96-
for (const episode of episodes) {
97-
await optimizeEpisodeImage(episode);
98-
}
80+
return {
81+
id,
82+
title: `${title}`,
83+
content: description,
84+
description: truncate(htmlToText(description), 260),
85+
episodeImage: await optimizeEpisodeImage(itunes_image?.href),
86+
episodeNumber,
87+
episodeSlug,
88+
published,
89+
audio: enclosures.map((enclosure) => ({
90+
src: enclosure.url,
91+
type: enclosure.type
92+
}))[0]
93+
};
94+
}
95+
)
96+
);
9997

10098
return episodes;
10199
}

0 commit comments

Comments
 (0)