diff --git a/data/external/cms.js b/data/external/cms.js index a51ea2a..c177da6 100755 --- a/data/external/cms.js +++ b/data/external/cms.js @@ -317,6 +317,7 @@ export const getAllGalleryImages = async () => { const { serverRuntimeConfig } = getConfig() const qs = require('qs') var query = qs.stringify({ + sort: ['createdAt:desc'], populate: '*' }) diff --git a/data/internal/feed-generator.js b/data/internal/feed-generator.js index b814d45..e931693 100755 --- a/data/internal/feed-generator.js +++ b/data/internal/feed-generator.js @@ -1,7 +1,7 @@ import { Feed } from "feed" import { Podcast } from 'podcast'; import getConfig from 'next/config' -import { getAllPodcastSeries, getAllPosts, getProjectDetails } from "../external/cms" +import { getAllGalleryImages, getAllPodcastSeries, getAllPosts, getProjectDetails } from "../external/cms" import fs from "fs" import config from './config' import htmlFindReplaceElementAttrs from "html-find-replace-element-attrs" @@ -31,7 +31,7 @@ export const generateRssFeed = async (filter) => { email: "james@angrybeanie.com", - link: "https://twitter.com/purserj", + link: "https://www.angrybeanie.com", }; @@ -235,3 +235,100 @@ export const generatePodcastFeeds = async () => { }) } +export const generateGalleryImageFeed = async () => { + const galleryImages = await getAllGalleryImages() + + const Title = "Angry Beanie Gallery Image feed" + + const Description = "A feed of the photos that I post" + + const feedTitle = "gallery-image-feed" + + const siteURL = config.siteURL; + + const date = new Date(); + + const author = { + + name: "James Purser", + + email: "james@angrybeanie.com", + + link: "https://www.angrybeanie.com", + + }; + + const feed = new Feed({ + + title: Title, + + description: Description, + + id: siteURL, + + link: siteURL, + + image: `${siteURL}/public/images/logo.png`, + + favicon: `${siteURL}/public/images/favicon.png`, + + copyright: `All rights reserved ${date.getFullYear()}, James Purser`, + + updated: date, + + generator: "Feed for Node.js", + + feedLinks: { + + rss2: `${siteURL}/feed/${feedTitle}-feed.xml`, + + json: `${siteURL}/feed/${feedTitle}-feed.json`, + + atom: `${siteURL}/feed/${feedTitle}-atom.xml`, + + }, + + author, + + }); + + galleryImages.data.forEach((post) => { + const siteURL = config.siteURL; + + const { serverRuntimeConfig, publicRuntimeConfig } = getConfig() + + const imgUrl = `${siteURL}${post.attributes.Image.data.attributes.url}?width=700` + + var postBody = `${post.attributes.Image.data.attributes.alternativeText}` + + const url = `${siteURL}/${post.attributes.galleries.data[0].attributes.Slug}/${post.attributes.Slug}` + + feed.addItem({ + + title: post.attributes.Title, + + id: url, + + link: url, + + description: postBody, + + content: postBody, + + author: [author], + + contributor: [author], + + date: new Date(post.attributes.publishedAt), + + }); + }) + + fs.writeFileSync(`./public/feed/${feedTitle}-feed.xml`, feed.rss2()); + + fs.writeFileSync(`./public/feed/${feedTitle}-atom.xml`, feed.atom1()); + + fs.writeFileSync(`./public/feed/${feedTitle}-feed.json`, feed.json1()); + +} + diff --git a/pages/index.js b/pages/index.js index 49d38e1..fe9fd61 100755 --- a/pages/index.js +++ b/pages/index.js @@ -4,15 +4,16 @@ import PublishedInfo from '../components/publishedinfo.js' import getConfig from 'next/config' import Head from 'next/head' import config from '../data/internal/config' -import { generatePodcastFeeds, generateRssFeed } from "../data/internal/feed-generator" +import { generateGalleryImageFeed, generatePodcastFeeds, generateRssFeed } from "../data/internal/feed-generator" import { generateSitemap } from "../data/internal/sitemap-generator" import { getLatestContent, getLatestPodcastEpisode } from "../data/external/cms" -import { getLatestGalleryImage } from "../data/external/cms" +//import { getLatestGalleryImage } from "../data/external/cms" export async function getStaticProps(context) { generateRssFeed() generateRssFeed('tech-and-disability') generatePodcastFeeds() + generateGalleryImageFeed() generateSitemap() const { serverRuntimeConfig } = getConfig()