|
|
@@ -0,0 +1,32 @@ |
|
|
|
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>` |