/** * 逛rss订阅models * @author: chenfeng<feng.chen@yoho.cn> * @date: 2016/09/13 */ 'use strict'; const serviceAPI = global.yoho.ServiceAPI; const mRoot = '../models'; const indexModel = require(`${mRoot}/index`); const infoModel = require(`${mRoot}/info`); const guangProcess = require(`${global.utils}/guang-process`); const htmlProcess = require(`${global.utils}/html-process`); const helpers = global.yoho.helpers; /** * [获取订阅的资讯文章列表] * @param {[int]} gender [性别参数(1,3表示男, 2,3表示女, 默认为所有)] * @return {[array]} */ const getRssArticle = (gender) => { let result = [], article = {}, articlePromise; switch (gender) { case '1,3': articlePromise = indexModel.getArticleList('1,3', 0, 0, '', 1, null, null, 100, false); break; case '2,3': articlePromise = indexModel.getArticleList('2,3', 0, 0, '', 1, null, null, 100, false); break; default: articlePromise = indexModel.getArticleList('1,2,3', 0, 0, '', 1, null, null, 100, false); break; } return articlePromise.then((article) => { // 内容列表 if (article.data.list.artList) { let build = {}; let artListFunc = (i, len, resolve) => { if (i < len) { let value = article.data.list.artList[i]; if (typeof value.id !== 'undefined') { build = guangProcess.formatArticle(value, false, false, true); build.author.name = build.author.name || ''; return _genIntro(value.id).then((intro) => { build.intro = intro; result.push(build); artListFunc(++i, len, resolve); }); } } else { resolve(result); } }; return new Promise((resolve) => { artListFunc(0, article.data.list.artList.length, resolve); }); } }); }; /** * [构建信息内容] * @param {[int]} id [资讯id] * @return {[string]} */ const _genIntro = (id) => { let result = ''; return infoModel.intro(id).then((resData) => { if (resData.data) { resData.data.forEach((value) => { if (value.text) { // 文字 result += htmlProcess.removeHtml(htmlProcess.escapeToHtml(value.text.data.text)) + '<br/>'; } else if (value.singleImage) { // 单张图 result += `<img src="${helpers.image(value.singleImage.data[0].src, 640, 640)}"/><br/>`; } else if (value.smallPic && value.smallPic.data) { // 多张小图 value.smallPic.data.forEach((small) => { result += `<img src="${helpers.image(small.src, 315, 420)}"/>`; }); result += '<br/>'; } }); return result; } }); }; module.exports = { getRssArticle };