bibliogram/src/lib/utils/body.js

20 lines
589 B
JavaScript
Raw Normal View History

2020-01-27 06:03:28 +00:00
const constants = require("../constants")
2020-01-12 12:50:21 +00:00
const {Parser} = require("./parser/parser")
/**
* @param {string} text
*/
function extractSharedData(text) {
const parser = new Parser(text)
2020-01-27 06:03:28 +00:00
const index = parser.seek("window._sharedData = ", {moveToMatch: true, useEnd: true})
if (index === -1) throw constants.symbols.NO_SHARED_DATA
2020-01-12 12:50:21 +00:00
parser.store()
const end = parser.seek(";</script>")
parser.restore()
const sharedDataString = parser.slice(end - parser.cursor)
const sharedData = JSON.parse(sharedDataString)
return sharedData
}
module.exports.extractSharedData = extractSharedData