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
|