summaryrefslogtreecommitdiff
path: root/src/pages/sitemap/searchkey.xml.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/pages/sitemap/searchkey.xml.js')
-rw-r--r--src/pages/sitemap/searchkey.xml.js37
1 files changed, 37 insertions, 0 deletions
diff --git a/src/pages/sitemap/searchkey.xml.js b/src/pages/sitemap/searchkey.xml.js
new file mode 100644
index 00000000..b34baa8b
--- /dev/null
+++ b/src/pages/sitemap/searchkey.xml.js
@@ -0,0 +1,37 @@
+import productSearchApi from '@/lib/product/api/productSearchApi';
+import { create } from 'xmlbuilder';
+import _ from 'lodash-contrib';
+import axios from 'axios';
+
+export async function getServerSideProps({ res }) {
+ const baseUrl = process.env.SELF_HOST + '/sitemap/searchkey';
+ const limit = 5000;
+ const keywords = await axios(
+ `${process.env.NEXT_PUBLIC_SELF_HOST}/api/shop/searchkey?limit=${limit}&all=1`,
+ );
+ // console.log(keywords);
+ const pageCount = Math.ceil(keywords.data.response.numFound / limit);
+ const pages = Array.from({ length: pageCount }, (_, i) => i + 1);
+ const sitemapIndex = create('sitemapindex', { encoding: 'UTF-8' }).att(
+ 'xmlns',
+ 'http://www.sitemaps.org/schemas/sitemap/0.9',
+ );
+
+ const date = new Date();
+ // const date = '2025-10-30';
+ pages.forEach((page) => {
+ const sitemap = sitemapIndex.ele('sitemap');
+ sitemap.ele('loc', `${baseUrl}/${page}.xml`);
+ sitemap.ele('lastmod', date.toISOString().slice(0, 10));
+ });
+
+ res.setHeader('Content-Type', 'text/xml');
+ res.write(sitemapIndex.end());
+ res.end();
+
+ return { props: {} };
+}
+
+export default function SitemapProducts() {
+ return null;
+}