Files
RSSHub/lib/routes/tencent/wechat/miniprogram/plugins.js
Henry Wang d09affa703 feat: add addNoReferrer in common-utils (#2571)
* fix: no-referrer tag

* chore: merge qdaily routes

* feat: add addNoReferrer in common-utils

This adds no-referrer attribute to images.
Parameters:

- add no-referrer attribute to images
- $: cheerio selector
- source: source selector, string
- target: target attribute name, typically for lazyload imgs, string
- srcPrefix: prefix for src, string
- removeAttr: attributes to remove, array: ['attrA','attrB']

* test: add test case

* doc: update
2019-07-08 11:45:02 +08:00

58 lines
1.9 KiB
JavaScript

const got = require('@/utils/got');
const cheerio = require('cheerio');
const { addNoReferrer } = require('@/utils/common-utils');
module.exports = async (ctx) => {
const link = 'https://developers.weixin.qq.com/community/plugins';
const response = await got({
method: 'post',
url: `https://developers.weixin.qq.com/community/ngi/plugins/cases?random=${Math.random()}`,
headers: {
Referer: link,
},
});
const { pluginCases } = response.data.data;
const resultItem = await Promise.all(
pluginCases.map(async (plugin) => {
const item = {
title: plugin.title,
description: '',
link: `https://developers.weixin.qq.com/community/develop/doc/${plugin.docid}`,
author: plugin.nickname,
pubDate: new Date(plugin.createTime * 1000).toUTCString(),
};
const url = `https://developers.weixin.qq.com/community/ngi/doc/detail/${plugin.docid}`;
const key = `miniprogram-plugin: ${url}`;
const value = await ctx.cache.get(key);
if (value) {
item.description = value;
} else {
const pluginDetail = await got({
method: 'get',
url: `${url}?random=${Math.random()}`,
headers: {
Referer: link,
},
});
const id = 'x-rsshub';
const $ = cheerio.load(`<div id="${id}">${pluginDetail.data.data.Content}</div>`);
addNoReferrer($, `#${id}`, 'data-src');
item.description = $(`#${id}`).html();
ctx.cache.set(key, item.description);
}
return Promise.resolve(item);
})
);
ctx.state.data = {
title: '微信小程序插件',
link,
item: resultItem,
};
};