|
@@ -187,7 +187,7 @@ router.get(/^\/(en|zh|es|pt|ja)$/, function (req, res, next) { // 限制严格
|
|
|
languages,
|
|
languages,
|
|
|
lang,
|
|
lang,
|
|
|
tags,
|
|
tags,
|
|
|
- uri: `/${lang}`,
|
|
|
|
|
|
|
+ uri: req.originalUrl,
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
// 渲染EJS模板到内存中
|
|
// 渲染EJS模板到内存中
|
|
@@ -271,7 +271,8 @@ router.get('/:lang/category/:tag?', function (req, res, next) {
|
|
|
languages,
|
|
languages,
|
|
|
lang,
|
|
lang,
|
|
|
tag,
|
|
tag,
|
|
|
- uri: `/${lang}/category/${tag}`,
|
|
|
|
|
|
|
+ uri: req.originalUrl,
|
|
|
|
|
+ pageUri: replaceUriParams,
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
// 渲染EJS模板到内存中
|
|
// 渲染EJS模板到内存中
|
|
@@ -344,7 +345,8 @@ router.get('/:lang/tag/:tag?', function (req, res, next) {
|
|
|
lang,
|
|
lang,
|
|
|
tag,
|
|
tag,
|
|
|
tags,
|
|
tags,
|
|
|
- uri: `/${lang}/tag/${tag}`,
|
|
|
|
|
|
|
+ uri: req.originalUrl,
|
|
|
|
|
+ pageUri: replaceUriParams,
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
// 渲染EJS模板到内存中
|
|
// 渲染EJS模板到内存中
|
|
@@ -415,7 +417,8 @@ router.get('/:lang/search', function (req, res, next) {
|
|
|
categories,
|
|
categories,
|
|
|
languages,
|
|
languages,
|
|
|
lang,
|
|
lang,
|
|
|
- uri: `/${lang}/search?search=${search}`,
|
|
|
|
|
|
|
+ uri: req.originalUrl,
|
|
|
|
|
+ pageUri: replaceUriParams,
|
|
|
};
|
|
};
|
|
|
// 渲染EJS模板到内存中
|
|
// 渲染EJS模板到内存中
|
|
|
res.render('search', data, async (err, html) => {
|
|
res.render('search', data, async (err, html) => {
|
|
@@ -484,7 +487,8 @@ router.get('/:lang/special', function (req, res, next) {
|
|
|
translate,
|
|
translate,
|
|
|
languages,
|
|
languages,
|
|
|
lang,
|
|
lang,
|
|
|
- uri: `/${lang}/special`,
|
|
|
|
|
|
|
+ uri: req.originalUrl,
|
|
|
|
|
+ pageUri: replaceUriParams,
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
// 渲染EJS模板到内存中
|
|
// 渲染EJS模板到内存中
|
|
@@ -554,7 +558,8 @@ router.get('/:lang/albums', function (req, res, next) {
|
|
|
translate,
|
|
translate,
|
|
|
languages,
|
|
languages,
|
|
|
lang,
|
|
lang,
|
|
|
- uri: `/${lang}/albums`,
|
|
|
|
|
|
|
+ uri: req.originalUrl,
|
|
|
|
|
+ pageUri: replaceUriParams,
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
// 渲染EJS模板到内存中
|
|
// 渲染EJS模板到内存中
|
|
@@ -636,7 +641,8 @@ router.get('/:lang/coloring-page-album/:id', function (req, res, next) {
|
|
|
translate,
|
|
translate,
|
|
|
languages,
|
|
languages,
|
|
|
lang,
|
|
lang,
|
|
|
- uri: `/${lang}/album/${id}`,
|
|
|
|
|
|
|
+ uri: req.originalUrl,
|
|
|
|
|
+ pageUri: replaceUriParams,
|
|
|
};
|
|
};
|
|
|
// 渲染EJS模板到内存中
|
|
// 渲染EJS模板到内存中
|
|
|
res.render('album', data, async (err, html) => {
|
|
res.render('album', data, async (err, html) => {
|
|
@@ -730,7 +736,8 @@ router.get('/:lang/artists', function (req, res, next) {
|
|
|
meta,
|
|
meta,
|
|
|
languages,
|
|
languages,
|
|
|
lang,
|
|
lang,
|
|
|
- uri: `/${lang}/artists`,
|
|
|
|
|
|
|
+ uri: req.originalUrl,
|
|
|
|
|
+ pageUri: replaceUriParams,
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
// 渲染EJS模板到内存中
|
|
// 渲染EJS模板到内存中
|
|
@@ -819,7 +826,8 @@ router.get('/:lang/artist/:id', function (req, res, next) {
|
|
|
meta,
|
|
meta,
|
|
|
lang,
|
|
lang,
|
|
|
languages,
|
|
languages,
|
|
|
- uri: `/${lang}/artist/${id}`,
|
|
|
|
|
|
|
+ uri: req.originalUrl,
|
|
|
|
|
+ pageUri: replaceUriParams,
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
// 渲染EJS模板到内存中
|
|
// 渲染EJS模板到内存中
|
|
@@ -910,10 +918,8 @@ router.get('/:lang/coloring-page/:str', function (req, res, next) {
|
|
|
|
|
|
|
|
|
|
|
|
|
let data = {
|
|
let data = {
|
|
|
- // title: `${doc.name.replace(/[_]+/g, '-')}`,
|
|
|
|
|
- title: `${doc.title} | ${translate.printableColoringPage[lang]}`,
|
|
|
|
|
|
|
+ title: `${doc.title}`,
|
|
|
description: `${doc.desc}`,
|
|
description: `${doc.desc}`,
|
|
|
- // description: `${meta.detailDescription[lang]}: ${doc.desc}`,
|
|
|
|
|
detail: doc,
|
|
detail: doc,
|
|
|
data: result.data,
|
|
data: result.data,
|
|
|
page: result.page,
|
|
page: result.page,
|
|
@@ -924,7 +930,8 @@ router.get('/:lang/coloring-page/:str', function (req, res, next) {
|
|
|
lang,
|
|
lang,
|
|
|
languages,
|
|
languages,
|
|
|
relates: result.data,
|
|
relates: result.data,
|
|
|
- uri: doc.uri,
|
|
|
|
|
|
|
+ uri: req.originalUrl,
|
|
|
|
|
+ pageUri: replaceUriParams,
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
// 渲染EJS模板到内存中
|
|
// 渲染EJS模板到内存中
|
|
@@ -1000,16 +1007,15 @@ router.get('/:lang/detail/:id', function (req, res, next) {
|
|
|
organizeData(result.data, lang, imageType);
|
|
organizeData(result.data, lang, imageType);
|
|
|
|
|
|
|
|
let data = {
|
|
let data = {
|
|
|
- // title: `${doc.name.replace(/[_]+/g, '-')}`,
|
|
|
|
|
- title: `${doc.title} | ${translate.printableColoringPage[lang]}`,
|
|
|
|
|
|
|
+ title: `${doc.title}`,
|
|
|
description: `${doc.desc}`,
|
|
description: `${doc.desc}`,
|
|
|
- // description: `${meta.detailDescription[lang]}: ${doc.desc}`,
|
|
|
|
|
data: doc,
|
|
data: doc,
|
|
|
translate,
|
|
translate,
|
|
|
lang,
|
|
lang,
|
|
|
languages,
|
|
languages,
|
|
|
relates,
|
|
relates,
|
|
|
- uri: `${lang}/detail/${id}`,
|
|
|
|
|
|
|
+ uri: req.originalUrl,
|
|
|
|
|
+ pageUri: replaceUriParams,
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
// 渲染EJS模板到内存中
|
|
// 渲染EJS模板到内存中
|
|
@@ -1101,7 +1107,7 @@ router.get('/:lang/info', function (req, res, next) {
|
|
|
lang,
|
|
lang,
|
|
|
languages,
|
|
languages,
|
|
|
translate,
|
|
translate,
|
|
|
- uri: `/${lang}/info`,
|
|
|
|
|
|
|
+ uri: req.originalUrl,
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
// 渲染EJS模板到内存中
|
|
// 渲染EJS模板到内存中
|
|
@@ -1203,9 +1209,6 @@ const organizeDetail = (doc, lang, imageType) => {
|
|
|
|
|
|
|
|
doc.tags = doc.tags.filter(str => !/[\u4e00-\u9fa5]/.test(str)); // 过滤掉tags中的中文
|
|
doc.tags = doc.tags.filter(str => !/[\u4e00-\u9fa5]/.test(str)); // 过滤掉tags中的中文
|
|
|
|
|
|
|
|
- let utf8name = encodeURIComponent(uriTitle.replace(/[\s_]+/g, '-')).toLowerCase();
|
|
|
|
|
- doc.uri = `/${lang}/coloring-page/${utf8name}-${doc._id}`;
|
|
|
|
|
-
|
|
|
|
|
doc.downlink = `${host}/thumbs/coloring-page/page/1200/${doc._id}.${imageType}`;
|
|
doc.downlink = `${host}/thumbs/coloring-page/page/1200/${doc._id}.${imageType}`;
|
|
|
|
|
|
|
|
delete doc.hasSpecial;
|
|
delete doc.hasSpecial;
|
|
@@ -1216,5 +1219,20 @@ const organizeDetail = (doc, lang, imageType) => {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+// 替换URI中的page和length参数
|
|
|
|
|
+function replaceUriParams(uri, newPage, newLength) {
|
|
|
|
|
+ if (!uri.includes('?')) {
|
|
|
|
|
+ return uri += `?page=${newPage}&length=${newLength}`;
|
|
|
|
|
+ }
|
|
|
|
|
+ // 使用正则表达式替换page参数
|
|
|
|
|
+ uri = uri.replace(/(page=)\d+/, `page=${newPage}`);
|
|
|
|
|
+ // 使用正则表达式替换length参数
|
|
|
|
|
+ uri = uri.replace(/(length=)\d+/, `length=${newLength}`);
|
|
|
|
|
+
|
|
|
|
|
+ // 返回替换后的URI
|
|
|
|
|
+ return uri;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
|
|
|
module.exports = router;
|
|
module.exports = router;
|