|
- import axios from 'axios'
- import fs from 'fs'
- import path from 'path'
-
- const DOMAIN = 'https://hub.nizika.monster'
- const API_BASE_URL = 'https://hub.nizika.monster/api'
-
- const fetchPostIds =
- async () => (await axios.get (`${ API_BASE_URL }/posts`)).data.posts.map (post => post.id)
-
- const fetchTagNames =
- async () => (await axios.get (`${ API_BASE_URL }/tags`)).data.map (tag => tag.name)
-
- const fetchWikiTitles =
- async () => (await axios.get (`${ API_BASE_URL }/wiki`)).data.map (page => page.title)
-
- const routes = [
- '/',
- ...(await fetchTagNames ()).map (tags => `/posts?${ (new URLSearchParams ({ tags })).toString () }`),
- ...(await fetchPostIds ()).map (id => `/posts/${ id }`),
- '/tags',
- '/tags/nico',
- '/wiki',
- '/wiki/changes',
- ...(await fetchWikiTitles ()).map (title => `/wiki/${ encodeURIComponent (title) }`),
- '/users',
- '/users/settings']
-
- const xml = `<?xml version="1.0" encoding="UTF-8"?>
- <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
- ${ routes.map (route => ` <url><loc>${ DOMAIN }${ route }</loc></url>`).join ('\n') }
- </urlset>`
|