2016-06-24 01:26:01 +12:00
|
|
|
|
2016-06-28 19:39:31 +12:00
|
|
|
import isNode from 'detect-node'
|
|
|
|
|
|
|
|
function fetchNode (url, cb, responseType) {
|
|
|
|
process.request({
|
|
|
|
url: url,
|
|
|
|
encoding: responseType ? null : 'utf8',
|
|
|
|
headers: {
|
2016-06-29 06:26:04 +12:00
|
|
|
referer: 'http://www.fimfiction.net/',
|
|
|
|
cookie: 'view_mature=true'
|
2016-06-28 19:39:31 +12:00
|
|
|
}
|
|
|
|
}, (error, response, body) => {
|
|
|
|
if (error) {
|
|
|
|
console.error(error)
|
|
|
|
cb()
|
|
|
|
return
|
|
|
|
}
|
|
|
|
let type = response.headers['content-type']
|
|
|
|
cb(body, type)
|
|
|
|
})
|
|
|
|
}
|
|
|
|
|
|
|
|
export default function fetch (url, cb, responseType) {
|
2016-06-24 01:26:01 +12:00
|
|
|
if (url.indexOf('//') === 0) {
|
|
|
|
url = 'http:' + url
|
|
|
|
}
|
2016-06-28 19:39:31 +12:00
|
|
|
|
|
|
|
if (isNode) {
|
|
|
|
fetchNode(url, cb, responseType)
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
2016-06-24 01:26:01 +12:00
|
|
|
let x = new XMLHttpRequest()
|
|
|
|
x.open('get', url, true)
|
2016-06-28 19:39:31 +12:00
|
|
|
if (responseType) {
|
|
|
|
x.responseType = responseType
|
2016-06-24 01:26:01 +12:00
|
|
|
}
|
|
|
|
x.onload = function () {
|
|
|
|
cb(x.response, x.getResponseHeader('content-type'))
|
|
|
|
}
|
|
|
|
x.onerror = function () {
|
|
|
|
console.error('error')
|
|
|
|
cb(null)
|
|
|
|
}
|
|
|
|
x.send()
|
|
|
|
}
|