ge-volume-extractor
Version:
44 lines (36 loc) • 963 B
JavaScript
const Xray = require('x-ray')
const x = Xray()
const RE_VOLUME_DATA_POINT = /\[new Date\('([^']+)'\), (\d+)\]/
function extractTrendScript(html) {
return new Promise((resolve, reject) => {
x(html, 'div.stats+script')((err, data) => {
if (err) {
return reject(err)
}
return resolve(data)
})
})
}
function extractTrendData(body) {
return body
.split('\r\n')
.map(s => s.trimLeft())
.filter(s => /^trade180/.test(s))
.map(s => {
const [, date, volume] = RE_VOLUME_DATA_POINT.exec(s)
return { date, volume: +volume }
})
}
function getItemHtml(itemId) {
return axios.get(`http://services.runescape.com/m=itemdb_oldschool/Runescape/viewitem?obj=${itemId}`)
.then(({ data }) => data)
}
module.exports = {
// getItemHtml,
extractTrendData
// getItemVolume: itemId => {
// return getItemHtml(itemId)
// .then(extractTrendScript)
// .then(extractTrendData)
// }
}