chore: swap out feed parser dep

This commit is contained in:
Cory Dransfeldt 2023-07-24 13:37:36 -07:00
parent a158e1a3ef
commit db1730b752
No known key found for this signature in database
3 changed files with 25 additions and 53 deletions

View file

@ -1,24 +1,23 @@
const { extract } = require('@extractus/feed-extractor')
const Parser = require('rss-parser')
const { AssetCache } = require('@11ty/eleventy-fetch')
module.exports = async function () {
const parser = new Parser()
const url = 'https://letterboxd.com/cdme/rss'
// noinspection JSCheckFunctionSignatures
const asset = new AssetCache('movies_data')
if (asset.isCacheValid('1h')) return await asset.getCachedValue()
const res = await extract(url, {
getExtraEntryFields: (feedEntry) => {
const images = feedEntry['description']?.match(/<img [^>]*src="[^"]*"[^>]*>/gm) || []
return {
image: images.length
? images.map((image) => image.replace(/.*src="([^"]*)".*/, '$1'))[0]
: '',
}
},
}).catch((error) => {
const res = await parser.parseURL(url).catch((error) => {
console.log(error.message)
})
const data = res.entries.splice(0, 6)
const data = res.items
.map((item) => {
const images = item['content']?.match(/<img [^>]*src="[^"]*"[^>]*>/gm) || []
item.image = images.length
? images.map((image) => image.replace(/.*src="([^"]*)".*/, '$1'))[0]
: 'https://cdn.coryd.dev/movies/missing-movie.jpg'
return item
})
.splice(0, 6)
await asset.save(data, 'json')
return data
}