UNPKG

rss2microblog

Version:

A Node.js application that automatically crossposts RSS feed items to multiple social media platforms

39 lines (35 loc) 1.1 kB
// src/contentPrep.js const axios = require('axios'); const cheerio = require('cheerio'); class ContentPrep { async extractMetadata(url) { try { const response = await axios.get(url); const $ = cheerio.load(response.data); return { title: $('meta[property="og:title"]').attr('content') || $('title').text(), description: $('meta[property="og:description"]').attr('content') || $('meta[name="description"]').attr('content'), image: $('meta[property="og:image"]').attr('content') || $('meta[name="twitter:image"]').attr('content'), url: url }; } catch (error) { console.error(`Error extracting metadata from ${url}:`, error); return null; } } preparePost(item, metadata) { return { text: `${item.title}\n\n${item.link}`, card: { url: item.link, title: metadata?.title || item.title, description: metadata?.description, imageUrl: metadata?.image } }; } } module.exports = new ContentPrep();