-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.js
More file actions
54 lines (45 loc) · 1.47 KB
/
Copy pathindex.js
File metadata and controls
54 lines (45 loc) · 1.47 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
const loaderUtils = require('loader-utils')
const path = require('path')
const request = require('request')
const parse = require('./lib/parse.js')
let data = null
let channels = []
module.exports = function(source) {
let callback = this.async()
const options = loaderUtils.getOptions(this)
let { data = {}, channels = [] } = options
if (!data) {
return callback(null, source)
}
let parseRender = parse(source, true, channels)
parseRender.then(parseFunction => {
let matches = /https?:\/\/(.*[a-z0-9]*)\.163\.com(\/(?:\w+\/)?\d{2}\/\d{4}\/\d{2}\/([A-Z0-9]{16})(?:_\w+)?\.html)/.exec(data)
if (typeof data === 'string' && matches) {
let domain = matches[1]
let uri = matches[2]
let docid = matches[3]
request({
url: `http://cmsapi.ws.netease.com/articles/pageData/${docid}?productKey=0b34d08a430a93c5d0e1b425fcc29012&domain=${domain}.163.com&uri=${uri}`
}, (err, response, body) => {
if (err) {
console.log('请求出错:')
console.log(JSON.stringify(err))
return false
}
body = JSON.parse(body)
if (body.resultcode !== 200) {
console.log('请求文章数据出错:')
console.log(JSON.stringify(body))
return false
}
let output = parseFunction(body.data)
callback(null, output)
})
} else {
let output = parseFunction(data)
callback(null, output)
}
}).catch(e => {
callback(e)
})
}