From f633d4e96c8f4f57060a7b75d98c53d2bff24a6c Mon Sep 17 00:00:00 2001
From: CTLifeHand <101992315@qq.com>
Date: Thu, 1 Nov 2018 19:04:27 +0800
Subject: [PATCH] =?UTF-8?q?Enhancement:=20=E5=A6=B9=E5=AD=90=E5=9B=BE?=
=?UTF-8?q?=E5=B8=96=E5=AD=90=E5=9B=BE=E7=89=87=E6=B1=87=E6=80=BB=20(#1024?=
=?UTF-8?q?)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Enhancement: 妹子图帖子图片汇总
---
routes/mzitu/category.js | 17 ++++++++++++-----
routes/mzitu/home.js | 27 +++++++++++++++------------
routes/mzitu/tag.js | 17 ++++++++++++-----
routes/mzitu/util.js | 14 ++++++++++++++
4 files changed, 53 insertions(+), 22 deletions(-)
create mode 100644 routes/mzitu/util.js
diff --git a/routes/mzitu/category.js b/routes/mzitu/category.js
index 5080c241e..7c9abba5e 100644
--- a/routes/mzitu/category.js
+++ b/routes/mzitu/category.js
@@ -1,4 +1,5 @@
const axios = require('../../utils/axios');
+const { getList } = require('./util');
module.exports = async (ctx) => {
const { category } = ctx.params;
@@ -31,10 +32,16 @@ module.exports = async (ctx) => {
ctx.state.data = {
title: `妹子图-${mapper[category].name}`,
link: `http://www.mzitu.com/${category}`,
- item: data.map((item) => ({
- title: item.title,
- description: `
`,
- link: `http://www.mzitu.com/${item.id}`,
- })),
+ item: await Promise.all(
+ data.map(async (item) => {
+ const list = await getList(item.id);
+ const listDescription = list.join('');
+ return {
+ title: `${item.title} ${list.length} pages`,
+ description: `
${listDescription}`,
+ link: `http://www.mzitu.com/${item.id}`,
+ };
+ })
+ ),
};
};
diff --git a/routes/mzitu/home.js b/routes/mzitu/home.js
index 321ffcda7..1d3894fe6 100644
--- a/routes/mzitu/home.js
+++ b/routes/mzitu/home.js
@@ -1,4 +1,5 @@
const axios = require('../../utils/axios');
+const { getList } = require('./util');
module.exports = async (ctx) => {
const { type = '' } = ctx.params;
@@ -15,20 +16,22 @@ module.exports = async (ctx) => {
url,
});
const data = response.data;
-
ctx.state.data = {
title: '妹子图',
link: `http://www.mzitu.com/${type}`,
- item: data.map((item) => {
- if (type === 'hot') {
- item.thumb_src = item.thumb_src_min;
- }
-
- return {
- title: item.title,
- description: `
`,
- link: `http://www.mzitu.com/${item.id}`,
- };
- }),
+ item: await Promise.all(
+ data.map(async (item) => {
+ if (type === 'hot') {
+ item.thumb_src = item.thumb_src_min;
+ }
+ const list = await getList(item.id);
+ const listDescription = list.join('');
+ return {
+ title: `${item.title} ${list.length} pages`,
+ description: `
${listDescription}`,
+ link: `http://www.mzitu.com/${item.id}`,
+ };
+ })
+ ),
};
};
diff --git a/routes/mzitu/tag.js b/routes/mzitu/tag.js
index bce06721b..5b264dde3 100644
--- a/routes/mzitu/tag.js
+++ b/routes/mzitu/tag.js
@@ -1,4 +1,5 @@
const axios = require('../../utils/axios');
+const { getList } = require('./util');
module.exports = async (ctx) => {
let tag = ctx.params.tag;
@@ -21,10 +22,16 @@ module.exports = async (ctx) => {
ctx.state.data = {
title: name,
link: `http://www.mzitu.com/tag/${tag}`,
- item: data.map((item) => ({
- title: item.title,
- description: `
`,
- link: `http://www.mzitu.com/${item.id}`,
- })),
+ item: await Promise.all(
+ data.map(async (item) => {
+ const list = await getList(item.id);
+ const listDescription = list.join('');
+ return {
+ title: `${item.title} ${list.length} pages`,
+ description: `
${listDescription}`,
+ link: `http://www.mzitu.com/${item.id}`,
+ };
+ })
+ ),
};
};
diff --git a/routes/mzitu/util.js b/routes/mzitu/util.js
new file mode 100644
index 000000000..68b14c1e5
--- /dev/null
+++ b/routes/mzitu/util.js
@@ -0,0 +1,14 @@
+const axios = require('../../utils/axios');
+
+exports.getList = async (id) => {
+ const contentUrl = `http://adr.meizitu.net/wp-json/wp/v2/i?id=${id}`;
+ const contentResponse = await axios({
+ method: 'get',
+ url: contentUrl,
+ });
+ const content = contentResponse.data.content.split(',');
+ return content.map((url) => {
+ url = url.replace(/"/g, '');
+ return `
`;
+ });
+};