Files
Hengyu 9be1b1ea03 feat(route): add MacMenuBar (#12258)
* feat(route): MacMenuBar

* Update: Change to WordPress API; Combine two routes together; Move related documentation to blog.md

* Fix: add maintainer.js

* Update: filter categories by API; support multiple categories

* Update lib/v2/macmenubar/recently.js

* Update: update rss link; fix doc

---------
2023-04-09 22:07:42 +08:00

48 lines
1.4 KiB
JavaScript

const got = require('@/utils/got');
async function getCategoryId(categories) {
const baseUrl = `https://macmenubar.com/wp-json/wp/v2/categories`;
const { data: response } = await got(baseUrl, {
method: 'GET',
searchParams: {
slug: categories,
},
});
return response.reduce((queryString, item) => queryString + item.id + ',', '');
}
module.exports = async (ctx) => {
const baseUrl = 'https://macmenubar.com/wp-json/wp/v2/posts';
const categories = ctx.params.category;
const searchParams = {
per_page: 100,
};
if (categories) {
searchParams.categories = await getCategoryId(categories);
}
const response = await got(baseUrl, {
method: 'GET',
searchParams,
});
const items = response.data.map((post) => {
const title = post.title.rendered;
const link = post.link;
const pubDate = post.date_gmt;
const description = post.content.rendered;
const tags = post.tag_info.map((tag) => tag.name);
const categories = post.category_info.map((category) => category.name);
return {
title,
link,
pubDate,
description,
category: tags.concat(categories),
};
});
ctx.state.data = {
title: 'Recent Posts | MacMenuBar.com',
link: 'https://macmenubar.com/recently-added/',
item: items,
};
};