mirror of
https://github.com/BradNut/personal-website-sveltekit
synced 2025-09-08 23:20:18 +00:00
Fix bandcamp source and images on about.
This commit is contained in:
parent
dead3073f5
commit
1ef2acba4b
2 changed files with 26 additions and 29 deletions
|
|
@ -1,6 +1,6 @@
|
||||||
import { BANDCAMP_USERNAME, USE_REDIS_CACHE } from '$env/static/private';
|
import { BANDCAMP_USERNAME, USE_REDIS_CACHE } from '$env/static/private';
|
||||||
import scrapeIt from 'scrape-it';
|
import scrapeIt from 'scrape-it';
|
||||||
import type { ScrapeResult, ScrapeOptions } from 'scrape-it';
|
import type { ScrapeResult } from 'scrape-it';
|
||||||
import { redis } from '../server/redis';
|
import { redis } from '../server/redis';
|
||||||
import type { Album } from '../types/album';
|
import type { Album } from '../types/album';
|
||||||
|
|
||||||
|
|
@ -14,36 +14,33 @@ export async function fetchBandcampAlbums() {
|
||||||
console.log(`Cache hit!`);
|
console.log(`Cache hit!`);
|
||||||
const ttl = await redis.ttl('bandcampAlbums');
|
const ttl = await redis.ttl('bandcampAlbums');
|
||||||
|
|
||||||
return { ttl, response };
|
return response;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const scrapeItOptions: ScrapeOptions = {
|
const { data }: ScrapeResult<Album[]> = await scrapeIt(
|
||||||
collectionItems: {
|
`https://bandcamp.com/${BANDCAMP_USERNAME}`,
|
||||||
listItem: '.collection-item-container',
|
{
|
||||||
data: {
|
collectionItems: {
|
||||||
url: {
|
listItem: '.collection-item-container',
|
||||||
selector: '.collection-title-details > a.item-link',
|
data: {
|
||||||
attr: 'href'
|
url: {
|
||||||
},
|
selector: '.collection-title-details > a.item-link',
|
||||||
artwork: {
|
attr: 'href'
|
||||||
selector: 'div.collection-item-art-container a img',
|
},
|
||||||
attr: 'src'
|
artwork: {
|
||||||
},
|
selector: 'div.collection-item-art-container a img',
|
||||||
title: {
|
attr: 'src'
|
||||||
selector: 'span.item-link-alt > div.collection-item-title'
|
},
|
||||||
},
|
title: {
|
||||||
artist: {
|
selector: 'span.item-link-alt > div.collection-item-title'
|
||||||
selector: 'span.item-link-alt > div.collection-item-artist'
|
},
|
||||||
|
artist: {
|
||||||
|
selector: 'span.item-link-alt > div.collection-item-artist'
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
|
||||||
|
|
||||||
// TODO: Add cache for results
|
|
||||||
const { data }: ScrapeResult<Album[]> = await scrapeIt(
|
|
||||||
`https://bandcamp.com/${BANDCAMP_USERNAME}`,
|
|
||||||
scrapeItOptions
|
|
||||||
);
|
);
|
||||||
|
|
||||||
const albums: Album[] = data?.collectionItems || [];
|
const albums: Album[] = data?.collectionItems || [];
|
||||||
|
|
@ -55,7 +52,7 @@ export async function fetchBandcampAlbums() {
|
||||||
}
|
}
|
||||||
return albums;
|
return albums;
|
||||||
} else {
|
} else {
|
||||||
return []; // TODO: Add ttl for cache
|
return [];
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error(error);
|
console.error(error);
|
||||||
|
|
|
||||||
|
|
@ -9,9 +9,9 @@
|
||||||
import Remix from '@iconify-icons/simple-icons/remix';
|
import Remix from '@iconify-icons/simple-icons/remix';
|
||||||
import Svelte from '@iconify-icons/simple-icons/svelte';
|
import Svelte from '@iconify-icons/simple-icons/svelte';
|
||||||
import TypeScript from '@iconify-icons/simple-icons/typescript';
|
import TypeScript from '@iconify-icons/simple-icons/typescript';
|
||||||
import space_needle from '$lib/assets/images/space-needle.png?format=webp;avif;png&metadata?run';
|
import space_needle from '$lib/assets/images/space-needle.png?run';
|
||||||
import tortie_derp from '$lib/assets/images/tortie_derp.jpg?format=webp;avif;jpg&metadata?run';
|
import tortie_derp from '$lib/assets/images/tortie_derp.jpg?run';
|
||||||
import orange_derp from '$lib/assets/images/orange_derp.jpg?format=webp;avif;jpg&metadata?run';
|
import orange_derp from '$lib/assets/images/orange_derp.jpg?run';
|
||||||
import Tag from '$root/lib/components/Tag.svelte';
|
import Tag from '$root/lib/components/Tag.svelte';
|
||||||
import ExternalLink from '$root/lib/components/ExternalLink.svelte';
|
import ExternalLink from '$root/lib/components/ExternalLink.svelte';
|
||||||
</script>
|
</script>
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue