Shallie/src/lib/content/contentApi.ts

68 lines
2.0 KiB
TypeScript

import GhostContentAPI from '@tryghost/content-api';
export const GHOST_URL = 'https://admin.blog.nanao.moe';
const GHOST_KEY = '8c86e852c31b39b9d4148b2088';
const GHOST_VERSION = 'v5.0';
const api = GhostContentAPI({
url: GHOST_URL,
key: GHOST_KEY,
version: GHOST_VERSION
})
export const browsePost = async (page = 1) => {
const posts = await api.posts.browse({ page: page, limit: 10, include: ['tags', 'authors'] });
return posts
}
export const browseAllPost = async (page = 1) => {
const posts = await api.posts.browse({ limit: 'all' });
return posts
}
export const browsePostWithTag = async (slug: string, page = 1) => {
const posts = await api.posts.browse({ page: page, limit: 10, include: ['tags', 'authors'], filter: [`tag:${slug}`] });
return posts
}
export const browsePostWithAuthor = async (slug: string, page = 1) => {
const posts = await api.posts.browse({ page: page, limit: 10, include: ['tags', 'authors'], filter: [`author:${slug}`] });
return posts
}
export const readPost = async (slug: string) => {
const post = await api.posts.read({ slug }, { include: ['tags', 'authors'] });
return post;
}
export const readTag = async (slug: string) => {
const tag = await api.tags.read({ slug });
return tag;
}
export const readAuthor = async (slug: string) => {
const author = await api.authors.read({ slug });
return author;
}
export const browseLatestPost = async () => {
const post = await api.posts.browse({ limit: 1 });
return post[0];
}
export const browseLatestTag = async () => {
const tag = await api.tags.browse({ limit: 1, order: 'updated_at DESC' })
}
export const browseLatestAuthor = async () => {
const tag = await api.authors.browse({ limit: 1, order: 'updated_at DESC' })
}
export const browseSettings = async () => {
return {
codeinjection_head: `<script async defer data-domain="blog.nanao.moe" src="https://stats.nanao.moe/js/plausible.js"></script>`,
codeinjection_foot: ``,
};
}